private AdapterCapabilitiesBase.RenderQualityTypes GetExistingRenderQuality(GraphicsProfile selectedGraphicsProfile)
        {
            var allRenderQualities = (AdapterCapabilitiesBase.RenderQualityTypes[])QualityComboBox.ItemsSource;

            var existingRenderQuality = AdapterCapabilitiesBase.RenderQualityTypes.Custom;

            foreach (var renderQuality in allRenderQualities)
            {
                if (renderQuality == AdapterCapabilitiesBase.RenderQualityTypes.Custom) // Skip Custom quality
                {
                    continue;
                }

                var graphicsProfile = _selectedAdapterCapabilities.GetGraphicsProfileForQuality(renderQuality);

                if (graphicsProfile.PreferedMultisampleCount == selectedGraphicsProfile.PreferedMultisampleCount &&
                    graphicsProfile.SupersamplingCount == selectedGraphicsProfile.SupersamplingCount &&
                    graphicsProfile.ShaderQuality == selectedGraphicsProfile.ShaderQuality &&
                    graphicsProfile.TextureFiltering == selectedGraphicsProfile.TextureFiltering)
                {
                    existingRenderQuality = renderQuality;
                    break;
                }
            }

            return(existingRenderQuality);
        }
        private bool IsCustomRenderQuality()
        {
            var renderQuality   = AdapterCapabilitiesBase.GetGraphicsProfileQuality(_selectedGraphicsProfile);
            var graphicsProfile = _selectedAdapterCapabilities.GetGraphicsProfileForQuality(renderQuality);

            var isCustomRenderQuality = !(graphicsProfile.PreferedMultisampleCount == _selectedGraphicsProfile.PreferedMultisampleCount &&
                                          graphicsProfile.ShaderQuality == _selectedGraphicsProfile.ShaderQuality &&
                                          graphicsProfile.TextureFiltering == _selectedGraphicsProfile.TextureFiltering);

            return(isCustomRenderQuality);
        }
        private void ChangeSelectedAdapter(AdapterCapabilitiesBase newSelectedAdapter)
        {
            _selectedAdapterCapabilities = newSelectedAdapter;

            if (_selectedRenderQuality == AdapterCapabilitiesBase.RenderQualityTypes.Custom)
            {
                _selectedRenderQuality = AdapterCapabilitiesBase.RenderQualityTypes.Normal;
            }

            _selectedGraphicsProfile = newSelectedAdapter.GetGraphicsProfileForQuality(_selectedRenderQuality);

            UpdateCustomSettingsComboBoxes();
        }
        private void ChangeSelectedAdapter(AdapterCapabilitiesBase newSelectedAdapter)
        {
            if (_selectedGraphicsProfile.DriverType == GraphicsProfile.DriverTypes.Wpf3D && _selectedRenderQuality == AdapterCapabilitiesBase.RenderQualityTypes.Low)
            {
                _selectedRenderQuality = AdapterCapabilitiesBase.RenderQualityTypes.Normal;
            }

            _selectedAdapterCapabilities = newSelectedAdapter;

            if (_selectedRenderQuality == AdapterCapabilitiesBase.RenderQualityTypes.Custom)
            {
                _selectedRenderQuality = AdapterCapabilitiesBase.RenderQualityTypes.Normal;
            }

            _selectedGraphicsProfile = newSelectedAdapter.GetGraphicsProfileForQuality(_selectedRenderQuality);

            UpdateCustomSettingsComboBoxes();

            QualityComboBox.SelectedItem = _selectedRenderQuality;
        }