예제 #1
0
        protected void OnLoaded(object sender, RoutedEventArgs e)
        {
            if (_loaded)
            {
                return;
            }

            _graphicsDeviceService = new GraphicsDeviceService();
            _renderWindow          = new RenderWindow((int)ActualWidth, (int)ActualHeight, _graphicsDeviceService.Device);
            _backBufferPointer     = _renderWindow.GetBackBufferComPointer();

            _trackball.TransformUpdated += OnTrackballTransformUpdated;
            _trackball.EventSource       = this;

            _renderer = new Renderer(_graphicsDeviceService.Device, GetModel(),
                                     _graphicsDeviceService.Device.Viewport.Width, _graphicsDeviceService.Device.Viewport.Height,
                                     _trackball.Transform);

            ModelEditorViewModel vm = (ModelEditorViewModel)DataContext;

            vm.RenderParametersChanged += (sender2, e2) => Refresh();

            Refresh();

            _loaded = true;
        }