/// <summary> /// Adds a new screen to the screen manager. /// </summary> public void AddScreen( GameScreen screen ) { screen.ScreenManager = this; screen.IsExiting = false; // If we have a graphics device, tell the screen to load content. if ( _isInitialized ) { screen.LoadContent(); } _screens.Add( screen ); // update the TouchPanel to respond to gestures this screen is interested in TouchPanel.EnabledGestures = screen.EnabledGestures; }
/// <summary> /// Removes a screen from the screen manager. You should normally /// use GameScreen.ExitScreen instead of calling this directly, so /// the screen can gradually transition off rather than just being /// instantly removed. /// </summary> public void RemoveScreen( GameScreen screen ) { // If we have a graphics device, tell the screen to unload content. if ( _isInitialized ) { screen.UnloadContent(); } _screens.Remove( screen ); _screensToUpdate.Remove( screen ); // if there is a screen still in the manager, update TouchPanel // to respond to gestures that screen is interested in. if ( _screens.Count > 0 ) { TouchPanel.EnabledGestures = _screens[ _screens.Count - 1 ].EnabledGestures; } }