public static void FillTextureFilteringComboBox(ComboBox comboBox, TextureFilteringTypes textureFiltering, int maxAnisotropicLevel = 16)
        {
            comboBox.BeginInit();
            comboBox.Items.Clear();

            comboBox.Items.Add(new ComboBoxItem {
                Content = "Point", Tag = TextureFilteringTypes.Point, ToolTip = "Uses the color of the nearest neighboring pixel (produces square pixels when zoomed in)."
            });
            comboBox.Items.Add(new ComboBoxItem {
                Content = "Bilinear", Tag = TextureFilteringTypes.Bilinear, ToolTip = "Uses the color that is linearly interpolated from the nearest colors from the texture."
            });
            comboBox.Items.Add(new ComboBoxItem {
                Content = "Trilinear", Tag = TextureFilteringTypes.Trilinear, ToolTip = "Uses the color that is linearly interpolated from the nearest colors from the two nearest mip map textures."
            });

            if (maxAnisotropicLevel >= 2)
            {
                comboBox.Items.Add(new ComboBoxItem {
                    Content = "Anisotropic 2x", Tag = TextureFilteringTypes.Anisotropic_x2, ToolTip = "Anisotropic filtering with level 2 (compared to linear interpolation Anisotropic filtering improves details when camera angle is low)."
                });

                if (maxAnisotropicLevel >= 4)
                {
                    comboBox.Items.Add(new ComboBoxItem {
                        Content = "Anisotropic 4x", Tag = TextureFilteringTypes.Anisotropic_x4, ToolTip = "Anisotropic filtering with level 4 (compared to linear interpolation Anisotropic filtering improves details when camera angle is low)."
                    });

                    if (maxAnisotropicLevel >= 8)
                    {
                        comboBox.Items.Add(new ComboBoxItem {
                            Content = "Anisotropic 8x", Tag = TextureFilteringTypes.Anisotropic_x8, ToolTip = "Anisotropic filtering with level 8 (compared to linear interpolation Anisotropic filtering improves details when camera angle is low)."
                        });

                        if (maxAnisotropicLevel >= 8)
                        {
                            comboBox.Items.Add(new ComboBoxItem {
                                Content = "Anisotropic 16x", Tag = TextureFilteringTypes.Anisotropic_x16, ToolTip = "Anisotropic filtering with level 16 (compared to linear interpolation Anisotropic filtering improves details when camera angle is low)."
                            });
                        }
                    }
                }
            }

            comboBox.EndInit();


            for (int i = 0; i < comboBox.Items.Count; i++)
            {
                if ((TextureFilteringTypes)((ComboBoxItem)comboBox.Items[i]).Tag == textureFiltering)
                {
                    comboBox.SelectedIndex = i;
                    break;
                }
            }
        }
        private void TextureFilteringComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (!this.IsLoaded || _isInternalChange)
            {
                return;
            }

            TextureFilteringTypes selectedTextureFiltering = GetSelectedComboBoxItemTagValue <TextureFilteringTypes>(TextureFilteringComboBox);

            _selectedGraphicsProfile.TextureFiltering = selectedTextureFiltering;

            CheckIfCustomRenderQuality();
        }
Ejemplo n.º 3
0
 /// <summary>
 /// GetCustomGraphicsProfile in WpfAdapterCapabilities always returns the Wpf3D GraphicsProfile.
 /// </summary>
 /// <param name="multisampleCount">multisampleCount</param>
 /// <param name="superSamplingCount"></param>
 /// <param name="shaderQuality">shaderQuality</param>
 /// <param name="textureFiltering">textureFiltering</param>
 /// <returns>Wpf3D GraphicsProfile</returns>
 public override GraphicsProfile GetCustomGraphicsProfile(int multisampleCount, int superSamplingCount, ShaderQuality shaderQuality, TextureFilteringTypes textureFiltering)
 {
     return(GraphicsProfile.Wpf3D);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// GetCustomGraphicsProfile returns a custom quality GraphicsProfile with settings provided as method parameters.
 /// </summary>
 /// <param name="multisampleCount">multisampleCount</param>
 /// <param name="superSamplingCount">superSamplingCount</param>
 /// <param name="shaderQuality">shaderQuality</param>
 /// <param name="textureFiltering">textureFiltering</param>
 /// <returns>GraphicsProfile</returns>
 public abstract GraphicsProfile GetCustomGraphicsProfile(int multisampleCount, int superSamplingCount, ShaderQuality shaderQuality, TextureFilteringTypes textureFiltering);
 /// <summary>
 /// GetCustomGraphicsProfile returns a custom quality GraphicsProfile with settings provided as method parameters.
 /// </summary>
 /// <param name="multisampleCount">multisampleCount</param>
 /// <param name="superSamplingCount">superSamplingCount</param>
 /// <param name="shaderQuality">shaderQuality</param>
 /// <param name="textureFiltering">textureFiltering</param>
 /// <returns>GraphicsProfile</returns>
 public override GraphicsProfile GetCustomGraphicsProfile(int multisampleCount, int superSamplingCount, ShaderQuality shaderQuality, TextureFilteringTypes textureFiltering)
 {
     return(new GraphicsProfile("CustomHardwareRendering", GraphicsProfile.DriverTypes.DirectXHardware, shaderQuality, multisampleCount, superSamplingCount, textureFiltering, this.Adapter));
 }
 /// <summary>
 /// GetCustomGraphicsProfile returns a custom quality GraphicsProfile with settings provided as method parameters.
 /// </summary>
 /// <param name="multisampleCount">multisampleCount</param>
 /// <param name="shaderQuality">shaderQuality</param>
 /// <param name="textureFiltering">textureFiltering</param>
 /// <returns>GraphicsProfile</returns>
 public override GraphicsProfile GetCustomGraphicsProfile(int multisampleCount, ShaderQuality shaderQuality, TextureFilteringTypes textureFiltering)
 {
     return(new GraphicsProfile("CustomSoftwareRendering", GraphicsProfile.DriverTypes.DirectXSoftware, shaderQuality, multisampleCount, textureFiltering));
 }