public virtual void Draw(SpriteBatch spritebatch) { foreach (IStateElement state in states) { if (state.State != ScreenState.Hidden) { /* * Piirretään juttuja ennen transitionia */ state.PreRender(); // piirretään early transition if (state.State == ScreenState.TransitionOn || state.State == ScreenState.TransitionOff) { if (leaveTransition != null) { leaveTransition.PreRender(spritebatch); } else if (enterTransition != null) { enterTransition.PreRender(spritebatch); } } // piirretään itse ruutu state.Draw(); // piiretään late transition if (state.State == ScreenState.TransitionOn || state.State == ScreenState.TransitionOff) { if (leaveTransition != null) { leaveTransition.PostRender(spritebatch); } else if (enterTransition != null) { enterTransition.PostRender(spritebatch); } } // piirretään late ruutu state.PostRender(); } } }