//--------------------------------------------------------------
        #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;
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        //--------------------------------------------------------------
        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();
              }
        }