private void DisposeCurrentVirtualRealityProvider() { if (_splitScreenVirtualRealityProvider != null) { _splitScreenVirtualRealityProvider.Dispose(); _splitScreenVirtualRealityProvider = null; } if (_anaglyphVirtualRealityProvider != null) { _anaglyphVirtualRealityProvider.Dispose(); _anaglyphVirtualRealityProvider = null; } }
private void InitializeAnaglyphVirtualRealityProvider() { DisposeCurrentVirtualRealityProvider(); _anaglyphVirtualRealityProvider = new AnaglyphVirtualRealityProvider(eyeSeparation: 0.07f, // 70 mm parallax: 0.6f, anaglyphColorTransformation: AnaglyphVirtualRealityProvider.OptimizedAnaglyph); TitleTextBlock.Text = "Anaglyph stereoscopic rendering for red and cyan glasses"; ProviderSettingsTextBlock.Text = "Anaglyph type:"; // AnaglyphVirtualRealityProvider defines some predefined types of anaglyph rendering - so called ColorTransformations // Use reflection to read all possible types and fill the ColorTransformTypeComboBox with them FillAvailableColorTransformTypes(ProviderSettingsComboBox); _currentVirtualRealityProvider = _anaglyphVirtualRealityProvider; if (MainDXViewportView.DXScene != null && MainDXViewportView.UsedGraphicsProfile.DriverType != GraphicsProfile.DriverTypes.Wpf3D) { MainDXViewportView.DXScene.InitializeVirtualRealityRendering(_currentVirtualRealityProvider); } _providerSettingsChangedAction = delegate(ComboBoxItem selectedItem) { var anaglyphColorTransformation = selectedItem.Tag as AnaglyphVirtualRealityProvider.AnaglyphColorTransformation; if (anaglyphColorTransformation != null) { _anaglyphVirtualRealityProvider.ColorTransformation = anaglyphColorTransformation; } }; SeparationDistancePanel.Visibility = Visibility.Collapsed; }