//-------------------------------------------------------------- #region Methods //-------------------------------------------------------------- private void OnLoaded(object sender, RoutedEventArgs eventArgs) { var game = ServiceLocator.Current.GetInstance <MyGame>(); // Important: If the game loop is executed in a parallel thread, all accesses to game services // must be synchronized using a lock provided by the game: Lock = game.Lock; lock (Lock) { // Register the presentation target in the graphics service. var graphicsService = ServiceLocator.Current.GetInstance <IGraphicsService>(); graphicsService.PresentationTargets.Add(this); // Create graphics screen. _graphicsScreen = new MyGraphicsScreen(GraphicsService); GraphicsService.Screens.Add(_graphicsScreen); GraphicsScreens.Add(_graphicsScreen); // Add a few models. CreateLevel(); // Initialize the camera's projection matrix. UpdateCamera(); } }
private void OnUnloaded(object sender, RoutedEventArgs eventArgs) { lock (Lock) { // Dispose scene objects. _graphicsScreen.Scene.Dispose(false); // Remove graphics screen. GraphicsScreens.Remove(_graphicsScreen); GraphicsService.Screens.Remove(_graphicsScreen); _graphicsScreen = null; // Unregister the presentation target from the graphics service. var graphicsService = ServiceLocator.Current.GetInstance <IGraphicsService>(); graphicsService.PresentationTargets.Remove(this); } Lock = null; }
private void OnUnloaded(object sender, RoutedEventArgs eventArgs) { lock (Lock) { // Dispose scene objects. _graphicsScreen.Scene.Dispose(false); // Remove graphics screen. GraphicsScreens.Remove(_graphicsScreen); GraphicsService.Screens.Remove(_graphicsScreen); _graphicsScreen = null; // Unregister the presentation target from the graphics service. var graphicsService = ServiceLocator.Current.GetInstance<IGraphicsService>(); graphicsService.PresentationTargets.Remove(this); } Lock = null; }
//-------------------------------------------------------------- private void OnLoaded(object sender, RoutedEventArgs eventArgs) { var game = ServiceLocator.Current.GetInstance<MyGame>(); // Important: If the game loop is executed in a parallel thread, all accesses to game services // must be synchronized using a lock provided by the game: Lock = game.Lock; lock (Lock) { // Register the presentation target in the graphics service. var graphicsService = ServiceLocator.Current.GetInstance<IGraphicsService>(); graphicsService.PresentationTargets.Add(this); // Create graphics screen. _graphicsScreen = new MyGraphicsScreen(GraphicsService); GraphicsService.Screens.Add(_graphicsScreen); GraphicsScreens.Add(_graphicsScreen); // Add a few models. CreateLevel(); // Initialize the camera's projection matrix. UpdateCamera(); } }