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;
        }