private void WriteSettingsToControls(MyGraphicsSettings graphicsSettings) { m_writingSettings = true; int selectedRender = Math.Max(0, Array.IndexOf(m_renderers, graphicsSettings.GraphicsRenderer)); m_comboRenderer.SelectItemByKey(selectedRender); m_checkboxHardwareCursor.IsChecked = graphicsSettings.HardwareCursor; m_sliderFov.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_comboFoliageDetails.SelectItemByKey((long)graphicsSettings.Render.FoliageDetails, sendEvent: false); m_comboVoxelQuality.SelectItemByKey((long)graphicsSettings.Render.VoxelQuality, sendEvent: false); m_grassDensitySlider.Value = graphicsSettings.Render.GrassDensityFactor; m_vegetationViewDistance.Value = graphicsSettings.VegetationDrawDistance; m_checkboxEnableDamageEffects.IsChecked = graphicsSettings.EnableDamageEffects; m_checkboxRenderInterpolation.IsChecked = graphicsSettings.Render.InterpolationEnabled; // m_checkboxMultithreadedRender.IsChecked = graphicsSettings.Render.MultithreadingEnabled; //m_checkboxTonemapping.IsChecked = graphicsSettings.Render.TonemappingEnabled; m_comboAntialiasing.SelectItemByKey((long)graphicsSettings.Render.AntialiasingMode, sendEvent: false); m_comboAmbientOcclusionHBAO.IsChecked = graphicsSettings.Render.AmbientOcclusionEnabled; m_comboShadowMapResolution.SelectItemByKey((long)graphicsSettings.Render.ShadowQuality, sendEvent: false); m_comboTextureQuality.SelectItemByKey((long)graphicsSettings.Render.TextureQuality, sendEvent: false); m_comboAnisotropicFiltering.SelectItemByKey((long)graphicsSettings.Render.AnisotropicFiltering, sendEvent: false); m_writingSettings = false; }
/// <returns>Bool indicating a game restart is required</returns> private bool ReadSettingsFromControls(ref MyGraphicsSettings graphicsSettings) { bool restartIsNeeded; { MyGraphicsSettings read = new MyGraphicsSettings(); read.GraphicsRenderer = m_renderers[(int)m_comboRenderer.GetSelectedKey()]; read.FieldOfView = MathHelper.ToRadians(m_sliderFov.Value); read.HardwareCursor = m_checkboxHardwareCursor.IsChecked; read.EnableDamageEffects = m_checkboxEnableDamageEffects.IsChecked; read.Render.AntialiasingMode = (MyAntialiasingMode)m_comboAntialiasing.GetSelectedKey(); read.Render.ShadowQuality = (MyShadowsQuality)m_comboShadowMapResolution.GetSelectedKey(); read.Render.InterpolationEnabled = m_checkboxRenderInterpolation.IsChecked; read.Render.MultithreadingEnabled = m_checkboxMultithreadedRender.IsChecked; read.Render.TextureQuality = (MyTextureQuality)m_comboTextureQuality.GetSelectedKey(); read.Render.AnisotropicFiltering = (MyTextureAnisoFiltering)m_comboAnisotropicFiltering.GetSelectedKey(); read.Render.FoliageDetails = (MyFoliageDetails)m_comboFoliageDetails.GetSelectedKey(); read.Render.Dx9Quality = (MyRenderQualityEnum)m_comboDx9RenderQuality.GetSelectedKey(); restartIsNeeded = read.GraphicsRenderer != graphicsSettings.GraphicsRenderer; graphicsSettings = read; } return(restartIsNeeded); }
private void WriteSettingsToControls(MyGraphicsSettings graphicsSettings) { m_comboRenderer.SelectItemByKey(Array.IndexOf(m_renderers, graphicsSettings.GraphicsRenderer)); m_checkboxHardwareCursor.IsChecked = graphicsSettings.HardwareCursor; m_sliderFov.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_comboFoliageDetails.SelectItemByKey((long)graphicsSettings.Render.FoliageDetails, sendEvent: false); m_comboVoxelQuality.SelectItemByKey((long)graphicsSettings.Render.VoxelQuality, sendEvent: false); m_grassDensitySlider.Value = graphicsSettings.Render.GrassDensityFactor; m_checkboxEnableDamageEffects.IsChecked = graphicsSettings.EnableDamageEffects; m_checkboxRenderInterpolation.IsChecked = graphicsSettings.Render.InterpolationEnabled; // m_checkboxMultithreadedRender.IsChecked = graphicsSettings.Render.MultithreadingEnabled; //m_checkboxTonemapping.IsChecked = graphicsSettings.Render.TonemappingEnabled; m_comboAntialiasing.SelectItemByKey((long)graphicsSettings.Render.AntialiasingMode, sendEvent: false); m_comboShadowMapResolution.SelectItemByKey((long)graphicsSettings.Render.ShadowQuality, sendEvent: false); m_comboTextureQuality.SelectItemByKey((long)graphicsSettings.Render.TextureQuality, sendEvent: false); m_comboAnisotropicFiltering.SelectItemByKey((long)graphicsSettings.Render.AnisotropicFiltering, sendEvent: false); m_comboDx9RenderQuality.SelectItemByKey((int)graphicsSettings.Render.Dx9Quality, sendEvent: false); if (m_comboDx9RenderQuality.GetSelectedKey() == -1) { m_comboDx9RenderQuality.SelectItemByIndex(0); } }
/// <returns>Bool indicating a game restart is required</returns> private bool ReadSettingsFromControls(ref MyGraphicsSettings graphicsSettings) { if (m_writingSettings) { return(false); } bool restartIsNeeded; { MyGraphicsSettings read = new MyGraphicsSettings(); read.GraphicsRenderer = m_renderers[(int)m_comboRenderer.GetSelectedKey()]; read.FieldOfView = MathHelper.ToRadians(m_sliderFov.Value); read.HardwareCursor = m_checkboxHardwareCursor.IsChecked; read.EnableDamageEffects = m_checkboxEnableDamageEffects.IsChecked; read.Render.AntialiasingMode = (MyAntialiasingMode)m_comboAntialiasing.GetSelectedKey(); read.Render.AmbientOcclusionEnabled = m_comboAmbientOcclusionHBAO.IsChecked; read.Render.ShadowQuality = (MyShadowsQuality)m_comboShadowMapResolution.GetSelectedKey(); read.Render.InterpolationEnabled = m_checkboxRenderInterpolation.IsChecked; //read.Render.MultithreadingEnabled = m_checkboxMultithreadedRender.IsChecked; //read.Render.TonemappingEnabled = m_checkboxTonemapping.IsChecked; read.Render.TextureQuality = (MyTextureQuality)m_comboTextureQuality.GetSelectedKey(); read.Render.AnisotropicFiltering = (MyTextureAnisoFiltering)m_comboAnisotropicFiltering.GetSelectedKey(); read.Render.Dx9Quality = graphicsSettings.Render.Dx9Quality; read.Render.FoliageDetails = (MyFoliageDetails)m_comboFoliageDetails.GetSelectedKey(); read.Render.VoxelQuality = (MyRenderQualityEnum)m_comboVoxelQuality.GetSelectedKey(); read.Render.GrassDensityFactor = m_grassDensitySlider.Value; read.VegetationDrawDistance = m_vegetationViewDistance.Value; restartIsNeeded = read.GraphicsRenderer != graphicsSettings.GraphicsRenderer; graphicsSettings = read; } return(restartIsNeeded); }
internal void SetToMediumQuality() { MyPerformanceSettings settings3 = new MyPerformanceSettings(); MyRenderSettings1 settings4 = new MyRenderSettings1 { AnisotropicFiltering = MyTextureAnisoFiltering.NONE, AntialiasingMode = MyAntialiasingMode.FXAA, ShadowQuality = MyShadowsQuality.MEDIUM, AmbientOcclusionEnabled = true, TextureQuality = MyTextureQuality.MEDIUM, ModelQuality = MyRenderQualityEnum.NORMAL, VoxelQuality = MyRenderQualityEnum.NORMAL, GrassDrawDistance = 160f, GrassDensityFactor = 1f, HqDepth = true, VoxelShaderQuality = MyRenderQualityEnum.NORMAL, AlphaMaskedShaderQuality = MyRenderQualityEnum.NORMAL, AtmosphereShaderQuality = MyRenderQualityEnum.NORMAL, DistanceFade = 100f }; settings3.RenderSettings = settings4; settings3.EnableDamageEffects = true; MyGraphicsSettings currentGraphicsSettings = MyVideoSettingsManager.CurrentGraphicsSettings; currentGraphicsSettings.PerformanceSettings = settings3; MyVideoSettingsManager.Apply(currentGraphicsSettings); MyVideoSettingsManager.SaveCurrentSettings(); }
void WriteSettingsToControls(MyRenderDeviceSettings deviceSettings, MyGraphicsSettings graphicsSettings) { m_videoAdapterCombobox.SelectItemByKey(deviceSettings.AdapterOrdinal); m_resolutionCombobox.SelectItemByKey(m_resolutionsForAdapter.FindIndex( (res) => res.X == deviceSettings.BackBufferWidth && res.Y == deviceSettings.BackBufferHeight)); m_windowModeCombobox.SelectItemByKey((int)deviceSettings.WindowMode); m_verticalSyncCheckbox.IsChecked = deviceSettings.VSync; m_hardwareCursorCheckbox.IsChecked = graphicsSettings.HardwareCursor; m_enableDamageEffectsCheckbox.IsChecked = graphicsSettings.EnableDamageEffects; m_renderQualityCombobox.SelectItemByKey((int)graphicsSettings.RenderQuality); if (m_renderQualityCombobox.GetSelectedKey() == -1) { m_renderQualityCombobox.SelectItemByIndex(0); } m_fieldOfViewSlider.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_renderInterpolationCheckbox.IsChecked = graphicsSettings.RenderInterpolation; }
/// <returns>Bool indicating a game restart is required</returns> private bool ReadSettingsFromControls(ref MyGraphicsSettings graphicsSettings) { bool restartIsNeeded; { MyGraphicsSettings read = new MyGraphicsSettings(); read.GraphicsRenderer = m_renderers[(int)m_comboRenderer.GetSelectedKey()]; read.FieldOfView = MathHelper.ToRadians(m_sliderFov.Value); read.HardwareCursor = m_checkboxHardwareCursor.IsChecked; read.EnableDamageEffects = m_checkboxEnableDamageEffects.IsChecked; read.Render.AntialiasingMode = (MyAntialiasingMode)m_comboAntialiasing.GetSelectedKey(); read.Render.ShadowQuality = (MyShadowsQuality)m_comboShadowMapResolution.GetSelectedKey(); read.Render.InterpolationEnabled = m_checkboxRenderInterpolation.IsChecked; //read.Render.MultithreadingEnabled = m_checkboxMultithreadedRender.IsChecked; //read.Render.TonemappingEnabled = m_checkboxTonemapping.IsChecked; read.Render.TextureQuality = (MyTextureQuality)m_comboTextureQuality.GetSelectedKey(); read.Render.AnisotropicFiltering = (MyTextureAnisoFiltering)m_comboAnisotropicFiltering.GetSelectedKey(); MyRenderProxy.Settings.EnableShadows = (read.Render.ShadowQuality != MyShadowsQuality.DISABLED); if (MyVideoSettingsManager.RunningGraphicsRenderer != MySandboxGame.DirectX11RendererKey) { read.Render.Dx9Quality = (MyRenderQualityEnum)m_comboDx9RenderQuality.GetSelectedKey(); } else { read.Render.Dx9Quality = graphicsSettings.Render.Dx9Quality; } read.Render.FoliageDetails = (MyFoliageDetails)m_comboFoliageDetails.GetSelectedKey(); read.Render.VoxelQuality = (MyRenderQualityEnum)m_comboVoxelQuality.GetSelectedKey(); read.Render.GrassDensityFactor = m_grassDensitySlider.Value; restartIsNeeded = read.GraphicsRenderer != graphicsSettings.GraphicsRenderer; graphicsSettings = read; } return(restartIsNeeded); }
void WriteSettingsToControls(MyRenderDeviceSettings deviceSettings, MyGraphicsSettings graphicsSettings) { m_videoAdapterCombobox.SelectItemByKey(deviceSettings.AdapterOrdinal); m_resolutionCombobox.SelectItemByKey(m_resolutionsForAdapter.FindIndex( (res) => res.X == deviceSettings.BackBufferWidth && res.Y == deviceSettings.BackBufferHeight)); m_windowModeCombobox.SelectItemByKey((int)deviceSettings.WindowMode); m_verticalSyncCheckbox.IsChecked = deviceSettings.VSync; m_hardwareCursorCheckbox.IsChecked = graphicsSettings.HardwareCursor; m_enableDamageEffectsCheckbox.IsChecked = graphicsSettings.EnableDamageEffects; m_renderQualityCombobox.SelectItemByKey((int)graphicsSettings.Render.Dx9Quality); if (m_renderQualityCombobox.GetSelectedKey() == -1) m_renderQualityCombobox.SelectItemByIndex(0); m_fieldOfViewSlider.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_renderInterpolationCheckbox.IsChecked = graphicsSettings.Render.InterpolationEnabled; }
public override void RecreateControls(bool constructor) { if (!constructor) return; base.RecreateControls(constructor); AddCaption(MySpaceTexts.ScreenCaptionVideoOptions); Vector2 controlsOriginLeft = new Vector2(-m_size.Value.X / 2.0f + 0.05f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.02f, 0f); Vector2 controlsOriginRight = new Vector2(-m_size.Value.X / 2.0f + 0.225f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.043f, 0f); const float TEXT_SCALE = MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f; var labelVideoAdapter = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoAdapter)); var labelVideoMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoMode)); var labelWindowMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenOptionsVideo_WindowMode)); var labelVSync = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VerticalSync)); var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.HardwareCursor)); var labelRenderQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderQuality)); var labelFoV = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.FieldOfView)); m_fieldOfViewDefaultLabel = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.DefaultFOV)); var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderIterpolation)); var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects)); m_videoAdapterCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoAdapter)); m_resolutionCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoMode)); m_windowModeCombobox = new MyGuiControlCombobox(); m_verticalSyncCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVerticalSync)); m_hardwareCursorCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsHardwareCursor)); m_enableDamageEffectsCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects)); m_renderQualityCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderQuality)); m_fieldOfViewSlider = new MyGuiControlSlider(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsFieldOfView), labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue, minValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MIN), maxValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MAX), defaultValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); m_renderInterpolationCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionRenderIterpolation)); m_unsupportedAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f); m_recommendAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f); var hintLineOffset = new Vector2(0f, m_unsupportedAspectRatioLabel.Size.Y); var hintOffset = new Vector2(0.01f, -0.35f * MyGuiConstants.CONTROLS_DELTA.Y); labelVideoAdapter.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_videoAdapterCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelVideoMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_resolutionCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; m_unsupportedAspectRatioLabel.Position = controlsOriginRight + hintOffset; m_recommendAspectRatioLabel.Position = controlsOriginRight + hintOffset + hintLineOffset; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelWindowMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_windowModeCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelVSync.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_verticalSyncCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelHwCursor.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_hardwareCursorCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelRenderQuality.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_renderQualityCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelRenderInterpolation.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_renderInterpolationCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelEnableDamageEffects.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_enableDamageEffectsCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelFoV.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_fieldOfViewSlider.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; m_fieldOfViewDefaultLabel.Position = controlsOriginRight + hintOffset; Controls.Add(labelVideoAdapter); Controls.Add(m_videoAdapterCombobox); Controls.Add(labelVideoMode); Controls.Add(m_resolutionCombobox); Controls.Add(m_unsupportedAspectRatioLabel); Controls.Add(m_recommendAspectRatioLabel); Controls.Add(labelWindowMode); Controls.Add(m_windowModeCombobox); Controls.Add(labelVSync); Controls.Add(m_verticalSyncCheckbox); Controls.Add(labelHwCursor); Controls.Add(m_hardwareCursorCheckbox); Controls.Add(labelRenderQuality); Controls.Add(m_renderQualityCombobox); Controls.Add(labelRenderInterpolation); Controls.Add(m_renderInterpolationCheckbox); Controls.Add(labelEnableDamageEffects); Controls.Add(m_enableDamageEffectsCheckbox); Controls.Add(labelFoV); Controls.Add(m_fieldOfViewSlider); Controls.Add(m_fieldOfViewDefaultLabel); foreach (var control in Controls) control.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER; m_unsupportedAspectRatioLabel.Text = string.Format("* {0}", MyTexts.Get(MySpaceTexts.UnsupportedAspectRatio)); AddAdaptersToComboBox(); AddRenderQualitiesToComboBox(); AddWindowModesToComboBox(); m_fieldOfViewDefaultLabel.UpdateFormatParams(MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); m_videoAdapterCombobox.ItemSelected += OnVideoAdapterSelected; m_resolutionCombobox.ItemSelected += OnResolutionSelected; m_windowModeCombobox.ItemSelected += OnWindowModeSelected; // Buttons APPLY and BACK Controls.Add(new MyGuiControlButton( position: new Vector2(-0.05f, 0.31f), size: MyGuiConstants.OK_BUTTON_SIZE, text: MyTexts.Get(MySpaceTexts.Ok), onButtonClick: OnOkClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER)); Controls.Add(new MyGuiControlButton( position: new Vector2(0.05f, 0.31f), size: MyGuiConstants.OK_BUTTON_SIZE, text: MyTexts.Get(MySpaceTexts.Cancel), onButtonClick: OnCancelClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER)); // Update controls with values from config file m_deviceSettingsOld = MyVideoSettingsManager.CurrentDeviceSettings; m_graphicsSettingsOld = MyVideoSettingsManager.CurrentGraphicsSettings; m_deviceSettingsNew = m_deviceSettingsOld; m_graphicsSettingsNew = m_graphicsSettingsOld; WriteSettingsToControls(m_deviceSettingsOld, m_graphicsSettingsOld); // Update OLD settings ReadSettingsFromControls(ref m_deviceSettingsOld, ref m_graphicsSettingsOld); ReadSettingsFromControls(ref m_deviceSettingsNew, ref m_graphicsSettingsNew); CloseButtonEnabled = true; }
private void WriteSettingsToControls(MyGraphicsSettings graphicsSettings) { m_writingSettings = true; int selectedRender = Math.Max(0, Array.IndexOf(m_renderers, graphicsSettings.GraphicsRenderer)); m_comboRenderer.SelectItemByKey(selectedRender); m_checkboxHardwareCursor.IsChecked = graphicsSettings.HardwareCursor; m_sliderFov.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_comboFoliageDetails.SelectItemByKey((long)graphicsSettings.Render.FoliageDetails, sendEvent: false); m_comboVoxelQuality.SelectItemByKey((long)graphicsSettings.Render.VoxelQuality, sendEvent: false); m_grassDensitySlider.Value = graphicsSettings.Render.GrassDensityFactor; m_vegetationViewDistance.Value = graphicsSettings.VegetationDrawDistance; m_checkboxEnableDamageEffects.IsChecked = graphicsSettings.EnableDamageEffects; m_checkboxRenderInterpolation.IsChecked = graphicsSettings.Render.InterpolationEnabled; // m_checkboxMultithreadedRender.IsChecked = graphicsSettings.Render.MultithreadingEnabled; //m_checkboxTonemapping.IsChecked = graphicsSettings.Render.TonemappingEnabled; m_comboAntialiasing.SelectItemByKey((long)graphicsSettings.Render.AntialiasingMode, sendEvent: false); m_comboShadowMapResolution.SelectItemByKey((long)graphicsSettings.Render.ShadowQuality, sendEvent: false); m_comboTextureQuality.SelectItemByKey((long)graphicsSettings.Render.TextureQuality, sendEvent: false); m_comboAnisotropicFiltering.SelectItemByKey((long)graphicsSettings.Render.AnisotropicFiltering, sendEvent: false); m_writingSettings = false; }
private bool ReadSettingsFromControls(ref MyRenderDeviceSettings deviceSettings, ref MyGraphicsSettings graphicsSettings) { bool changed; changed = deviceSettings.AdapterOrdinal != (int)m_videoAdapterCombobox.GetSelectedKey(); deviceSettings.AdapterOrdinal = (int)m_videoAdapterCombobox.GetSelectedKey(); var resolution = m_resolutionsForAdapter[(int)m_resolutionCombobox.GetSelectedKey()]; changed = changed || deviceSettings.BackBufferWidth != resolution.X; deviceSettings.BackBufferWidth = resolution.X; changed = changed || deviceSettings.BackBufferHeight != resolution.Y; deviceSettings.BackBufferHeight = resolution.Y; int refreshRate = 0; foreach (var displayMode in MyVideoSettingsManager.Adapters[deviceSettings.AdapterOrdinal].SupportedDisplayModes) { // Pick the highest refresh rate available (although it might be better to add combobox for refresh rates as well) if (displayMode.Width == resolution.X && displayMode.Height == resolution.Y && refreshRate < displayMode.RefreshRate) refreshRate = displayMode.RefreshRate; } changed = changed || deviceSettings.RefreshRate != refreshRate; deviceSettings.RefreshRate = refreshRate; changed = changed || deviceSettings.VSync != m_verticalSyncCheckbox.IsChecked; deviceSettings.VSync = m_verticalSyncCheckbox.IsChecked; changed = changed || deviceSettings.WindowMode != (MyWindowModeEnum)m_windowModeCombobox.GetSelectedKey(); deviceSettings.WindowMode = (MyWindowModeEnum)m_windowModeCombobox.GetSelectedKey(); var fov = MathHelper.ToRadians(m_fieldOfViewSlider.Value); changed = changed || graphicsSettings.FieldOfView != fov; graphicsSettings.FieldOfView = fov; changed = changed || graphicsSettings.HardwareCursor != m_hardwareCursorCheckbox.IsChecked; graphicsSettings.HardwareCursor = m_hardwareCursorCheckbox.IsChecked; changed = changed || graphicsSettings.EnableDamageEffects != m_enableDamageEffectsCheckbox.IsChecked; graphicsSettings.EnableDamageEffects = m_enableDamageEffectsCheckbox.IsChecked; changed = changed || graphicsSettings.Render.InterpolationEnabled != m_renderInterpolationCheckbox.IsChecked; graphicsSettings.Render.InterpolationEnabled = m_renderInterpolationCheckbox.IsChecked; changed = changed || graphicsSettings.Render.Dx9Quality != (MyRenderQualityEnum)m_renderQualityCombobox.GetSelectedKey(); graphicsSettings.Render.Dx9Quality = (MyRenderQualityEnum)m_renderQualityCombobox.GetSelectedKey(); return changed; }
public override void RecreateControls(bool constructor) { if (!constructor) return; base.RecreateControls(constructor); AddCaption(MyTexts.GetString(MyCommonTexts.ScreenCaptionGraphicsOptions)); const float TEXT_SCALE = Sandbox.Graphics.GUI.MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f; var labelRenderer = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_Renderer)); var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.HardwareCursor)); var labelFov = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.FieldOfView)); var labelFovDefault = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.DefaultFOV)); var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.RenderIterpolation)); var labelAntiAliasing = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing)); var labelShadowMapResolution = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution)); var labelMultithreadedRendering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_MultiThreadedRendering)); //var labelTonemapping = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_Tonemapping)); var labelTextureQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality)); var labelVoxelQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_VoxelQuality)); var labelAnisotropicFiltering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering)); var labelGraphicsPresets = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset)); var labelFoliageDetails = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails)); var labelGrassDensity = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.WorldSettings_GrassDensity)); var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects)); var labelVegetationDistance = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.WorldSettings_VegetationDistance)); m_comboRenderer = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderer)); m_comboGraphicsPresets = new MyGuiControlCombobox(); m_comboAntialiasing = new MyGuiControlCombobox(); m_comboShadowMapResolution = new MyGuiControlCombobox(); m_comboTextureQuality = new MyGuiControlCombobox(); m_comboAnisotropicFiltering = new MyGuiControlCombobox(); m_checkboxHardwareCursor = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsHardwareCursor)); m_checkboxRenderInterpolation = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionRenderIterpolation)); //m_checkboxMultithreadedRender = new MyGuiControlCheckbox(); //m_checkboxTonemapping = new MyGuiControlCheckbox(); m_checkboxEnableDamageEffects = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects)); m_sliderFov = new MyGuiControlSlider(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsFieldOfView), labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue, defaultValue: MathHelper.ToDegrees(MySandboxGame.Config.FieldOfView)); m_comboVoxelQuality = new MyGuiControlCombobox(); m_comboFoliageDetails = new MyGuiControlCombobox(); m_grassDensitySlider = new MyGuiControlSlider(minValue: 0f, maxValue: 10f, labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue, defaultValue: MySandboxGame.Config.GrassDensityFactor); /* Vegetation View Distance */ m_vegetationViewDistance = new MyGuiControlSliderBase( props: new MyGuiSliderPropertiesExponential(100, 10 * 1000, 10, true), labelSpaceWidth: 0.063f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue); m_vegetationViewDistance.DefaultRatio = m_vegetationViewDistance.Propeties.ValueToRatio(MySandboxGame.Config.VegetationDrawDistance); var okButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Ok), onButtonClick: OnOkClick); var cancelButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Cancel), onButtonClick: OnCancelClick); m_comboGraphicsPresets.AddItem((int)PresetEnum.Low, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Low)); m_comboGraphicsPresets.AddItem((int)PresetEnum.Medium, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Medium)); m_comboGraphicsPresets.AddItem((int)PresetEnum.High, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_High)); m_comboGraphicsPresets.AddItem((int)PresetEnum.Custom, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Custom)); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing_None)); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.FXAA, "FXAA"); //m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_2, "MSAA 2x"); //m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_4, "MSAA 4x"); //m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_8, "MSAA 8x"); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.DISABLED, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_Disabled)); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_Low)); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.MEDIUM, MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution_Medium)); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_High)); m_comboTextureQuality.AddItem((int)MyTextureQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Low)); m_comboTextureQuality.AddItem((int)MyTextureQuality.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Medium)); m_comboTextureQuality.AddItem((int)MyTextureQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_High)); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering_Off)); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_1, "1x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_4, "4x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_8, "8x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_16, "16x"); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.DISABLED, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Disabled)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Low)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Medium)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_High)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Low)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.NORMAL, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Medium)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_High)); for (int i = 0; i < m_renderers.Length; i++) m_comboRenderer.AddItem(i, m_renderers[i]); labelFovDefault.UpdateFormatParams(MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); var table = new MyLayoutTable(this); { const float h = 60f; table.SetColumnWidths(60f, 400f, 460f); table.SetRowHeights(100f, h, h, h, h, h, 40f, h, h, h, h, h, h, h, h, h, 120f); } int row = 1; const int leftCol = 1; const int rightCol = 2; const MyAlignH hAlign = MyAlignH.Left; const MyAlignV vAlign = MyAlignV.Center; table.Add(labelRenderer, hAlign, vAlign, row, leftCol); table.Add(m_comboRenderer, hAlign, vAlign, row++, rightCol); table.Add(labelHwCursor, hAlign, vAlign, row, leftCol); table.Add(m_checkboxHardwareCursor, hAlign, vAlign, row++, rightCol); table.Add(labelRenderInterpolation, hAlign, vAlign, row, leftCol); table.Add(m_checkboxRenderInterpolation, hAlign, vAlign, row++, rightCol); table.Add(labelEnableDamageEffects, hAlign, vAlign, row, leftCol); table.Add(m_checkboxEnableDamageEffects, hAlign, vAlign, row++, rightCol); table.Add(labelFov, hAlign, vAlign, row, leftCol); table.Add(m_sliderFov, hAlign, vAlign, row++, rightCol); table.Add(labelFovDefault, hAlign, MyAlignV.Top, row++, rightCol); if (MyVideoSettingsManager.RunningGraphicsRenderer == MySandboxGame.DirectX11RendererKey) { table.Add(labelGraphicsPresets, hAlign, vAlign, row, leftCol); table.Add(m_comboGraphicsPresets, hAlign, vAlign, row++, rightCol); table.Add(labelAntiAliasing, hAlign, vAlign, row, leftCol); table.Add(m_comboAntialiasing, hAlign, vAlign, row++, rightCol); table.Add(labelShadowMapResolution, hAlign, vAlign, row, leftCol); table.Add(m_comboShadowMapResolution, hAlign, vAlign, row++, rightCol); table.Add(labelTextureQuality, hAlign, vAlign, row, leftCol); table.Add(m_comboTextureQuality, hAlign, vAlign, row++, rightCol); table.Add(labelVoxelQuality, hAlign, vAlign, row, leftCol); table.Add(m_comboVoxelQuality, hAlign, vAlign, row++, rightCol); table.Add(labelAnisotropicFiltering, hAlign, vAlign, row, leftCol); table.Add(m_comboAnisotropicFiltering, hAlign, vAlign, row++, rightCol); //table.Add(labelMultithreadedRendering, hAlign, vAlign, row, leftCol); //table.Add(m_checkboxMultithreadedRender, hAlign, vAlign, row++, rightCol); //table.Add(labelTonemapping, hAlign, vAlign, row, leftCol); //table.Add(m_checkboxTonemapping, hAlign, vAlign, row++, rightCol); if (MyFakes.ENABLE_PLANETS) { table.Add(labelFoliageDetails, hAlign, vAlign, row, leftCol); table.Add(m_comboFoliageDetails, hAlign, vAlign, row++, rightCol); table.Add(labelGrassDensity, hAlign, vAlign, row, leftCol); table.Add(m_grassDensitySlider, hAlign, vAlign, row++, rightCol); table.Add(labelVegetationDistance, hAlign, vAlign, row, leftCol); table.Add(m_vegetationViewDistance, hAlign, vAlign, row++, rightCol); } } table.Add(okButton, MyAlignH.Left, MyAlignV.Bottom, table.LastRow, leftCol); table.Add(cancelButton, MyAlignH.Right, MyAlignV.Bottom, table.LastRow, rightCol); { // Set FoV bounds based on current display setting. float fovMin, fovMax; MyVideoSettingsManager.GetFovBounds(out fovMin, out fovMax); m_sliderFov.SetBounds(MathHelper.ToDegrees(fovMin), MathHelper.ToDegrees(fovMax)); m_sliderFov.DefaultValue = MathHelper.ToDegrees(MySandboxGame.Config.FieldOfView); } { m_grassDensitySlider.SetBounds(0f, 10f); } // Update controls with values from config file m_settingsOld = MyVideoSettingsManager.CurrentGraphicsSettings; m_settingsNew = m_settingsOld; WriteSettingsToControls(m_settingsOld); // Update OLD settings ReadSettingsFromControls(ref m_settingsOld); ReadSettingsFromControls(ref m_settingsNew); { MyGuiControlCombobox.ItemSelectedDelegate onComboItemSelected = OnSettingsChanged; Action<MyGuiControlCheckbox> onCheckboxChanged = (checkbox) => OnSettingsChanged(); m_comboGraphicsPresets.ItemSelected += OnPresetSelected; m_comboAnisotropicFiltering.ItemSelected += onComboItemSelected; m_comboAntialiasing.ItemSelected += onComboItemSelected; m_comboShadowMapResolution.ItemSelected += onComboItemSelected; m_comboFoliageDetails.ItemSelected += onComboItemSelected; m_comboVoxelQuality.ItemSelected += onComboItemSelected; m_comboTextureQuality.ItemSelected += onComboItemSelected; m_checkboxHardwareCursor.IsCheckedChanged = onCheckboxChanged; //m_checkboxMultithreadedRender.IsCheckedChanged = onCheckboxChanged; m_checkboxRenderInterpolation.IsCheckedChanged = onCheckboxChanged; //m_checkboxTonemapping.IsCheckedChanged = onCheckboxChanged; m_checkboxEnableDamageEffects.IsCheckedChanged = onCheckboxChanged; m_sliderFov.ValueChanged = (slider) => OnSettingsChanged(); // m_grassDensitySlider.ValueChanged = (slider) => OnSettingsChanged(); } RefreshPresetCombo(m_settingsOld.Render); CloseButtonEnabled = true; CloseButtonOffset = new Vector2(-50f, 50f) / MyGuiConstants.GUI_OPTIMAL_SIZE; }
/// <returns>Bool indicating a game restart is required</returns> private bool ReadSettingsFromControls(ref MyGraphicsSettings graphicsSettings) { if (m_writingSettings) return false; bool restartIsNeeded; { MyGraphicsSettings read = new MyGraphicsSettings(); read.GraphicsRenderer = m_renderers[(int)m_comboRenderer.GetSelectedKey()]; read.FieldOfView = MathHelper.ToRadians(m_sliderFov.Value); read.HardwareCursor = m_checkboxHardwareCursor.IsChecked; read.EnableDamageEffects = m_checkboxEnableDamageEffects.IsChecked; read.Render.AntialiasingMode = (MyAntialiasingMode)m_comboAntialiasing.GetSelectedKey(); read.Render.ShadowQuality = (MyShadowsQuality)m_comboShadowMapResolution.GetSelectedKey(); read.Render.InterpolationEnabled = m_checkboxRenderInterpolation.IsChecked; //read.Render.MultithreadingEnabled = m_checkboxMultithreadedRender.IsChecked; //read.Render.TonemappingEnabled = m_checkboxTonemapping.IsChecked; read.Render.TextureQuality = (MyTextureQuality)m_comboTextureQuality.GetSelectedKey(); read.Render.AnisotropicFiltering = (MyTextureAnisoFiltering)m_comboAnisotropicFiltering.GetSelectedKey(); read.Render.Dx9Quality = graphicsSettings.Render.Dx9Quality; read.Render.FoliageDetails = (MyFoliageDetails)m_comboFoliageDetails.GetSelectedKey(); read.Render.VoxelQuality = (MyRenderQualityEnum)m_comboVoxelQuality.GetSelectedKey(); read.Render.GrassDensityFactor = m_grassDensitySlider.Value; read.VegetationDrawDistance = m_vegetationViewDistance.Value; restartIsNeeded = read.GraphicsRenderer != graphicsSettings.GraphicsRenderer; graphicsSettings = read; } return restartIsNeeded; }
private bool ReadSettingsFromControls(ref MyRenderDeviceSettings deviceSettings, ref MyGraphicsSettings graphicsSettings) { bool changed; changed = deviceSettings.AdapterOrdinal != (int)m_videoAdapterCombobox.GetSelectedKey(); deviceSettings.AdapterOrdinal = (int)m_videoAdapterCombobox.GetSelectedKey(); var resolution = m_resolutionsForAdapter[(int)m_resolutionCombobox.GetSelectedKey()]; changed = changed || deviceSettings.BackBufferWidth != resolution.X; deviceSettings.BackBufferWidth = resolution.X; changed = changed || deviceSettings.BackBufferHeight != resolution.Y; deviceSettings.BackBufferHeight = resolution.Y; int refreshRate = 0; foreach (var displayMode in MyVideoSettingsManager.Adapters[deviceSettings.AdapterOrdinal].SupportedDisplayModes) { // Pick the highest refresh rate available (although it might be better to add combobox for refresh rates as well) if (displayMode.Width == resolution.X && displayMode.Height == resolution.Y && refreshRate < displayMode.RefreshRate) { refreshRate = displayMode.RefreshRate; } } changed = changed || deviceSettings.RefreshRate != refreshRate; deviceSettings.RefreshRate = refreshRate; changed = changed || deviceSettings.VSync != m_verticalSyncCheckbox.IsChecked; deviceSettings.VSync = m_verticalSyncCheckbox.IsChecked; changed = changed || deviceSettings.WindowMode != (MyWindowModeEnum)m_windowModeCombobox.GetSelectedKey(); deviceSettings.WindowMode = (MyWindowModeEnum)m_windowModeCombobox.GetSelectedKey(); var fov = MathHelper.ToRadians(m_fieldOfViewSlider.Value); changed = changed || graphicsSettings.FieldOfView != fov; graphicsSettings.FieldOfView = fov; changed = changed || graphicsSettings.HardwareCursor != m_hardwareCursorCheckbox.IsChecked; graphicsSettings.HardwareCursor = m_hardwareCursorCheckbox.IsChecked; changed = changed || graphicsSettings.EnableDamageEffects != m_enableDamageEffectsCheckbox.IsChecked; graphicsSettings.EnableDamageEffects = m_enableDamageEffectsCheckbox.IsChecked; changed = changed || graphicsSettings.RenderInterpolation != m_renderInterpolationCheckbox.IsChecked; graphicsSettings.RenderInterpolation = m_renderInterpolationCheckbox.IsChecked; changed = changed || graphicsSettings.RenderQuality != (MyRenderQualityEnum)m_renderQualityCombobox.GetSelectedKey(); graphicsSettings.RenderQuality = (MyRenderQualityEnum)m_renderQualityCombobox.GetSelectedKey(); return(changed); }
public override void RecreateControls(bool constructor) { if (!constructor) { return; } base.RecreateControls(constructor); AddCaption(MyTexts.GetString(MyCommonTexts.ScreenCaptionGraphicsOptions)); const float TEXT_SCALE = Sandbox.Graphics.GUI.MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f; var labelRenderer = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_Renderer)); var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.HardwareCursor)); var labelFov = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.FieldOfView)); var labelFovDefault = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.DefaultFOV)); var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.RenderIterpolation)); var labelAntiAliasing = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing)); var labelShadowMapResolution = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution)); var labelMultithreadedRendering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_MultiThreadedRendering)); //var labelTonemapping = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_Tonemapping)); var labelTextureQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality)); var labelVoxelQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_VoxelQuality)); var labelAnisotropicFiltering = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering)); var labelGraphicsPresets = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset)); var labelFoliageDetails = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails)); var labelGrassDensity = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MyCommonTexts.WorldSettings_GrassDensity)); var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects)); var labelDx9RenderQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderQuality)); m_comboRenderer = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderer)); m_comboGraphicsPresets = new MyGuiControlCombobox(); m_comboAntialiasing = new MyGuiControlCombobox(); m_comboShadowMapResolution = new MyGuiControlCombobox(); m_comboTextureQuality = new MyGuiControlCombobox(); m_comboAnisotropicFiltering = new MyGuiControlCombobox(); m_comboDx9RenderQuality = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsRenderQuality)); m_checkboxHardwareCursor = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsHardwareCursor)); m_checkboxRenderInterpolation = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionRenderIterpolation)); //m_checkboxMultithreadedRender = new MyGuiControlCheckbox(); //m_checkboxTonemapping = new MyGuiControlCheckbox(); m_checkboxEnableDamageEffects = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects)); m_sliderFov = new MyGuiControlSlider(toolTip: MyTexts.GetString(MyCommonTexts.ToolTipVideoOptionsFieldOfView), labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue); m_comboVoxelQuality = new MyGuiControlCombobox(); m_comboFoliageDetails = new MyGuiControlCombobox(); m_grassDensitySlider = new MyGuiControlSlider(minValue: 0f, maxValue: 10f, labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue); var okButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Ok), onButtonClick: OnOkClick); var cancelButton = new MyGuiControlButton(text: MyTexts.Get(MyCommonTexts.Cancel), onButtonClick: OnCancelClick); m_comboDx9RenderQuality.AddItem((int)MyRenderQualityEnum.NORMAL, MySpaceTexts.RenderQualityNormal); m_comboDx9RenderQuality.AddItem((int)MyRenderQualityEnum.HIGH, MySpaceTexts.RenderQualityHigh); m_comboDx9RenderQuality.AddItem((int)MyRenderQualityEnum.EXTREME, MySpaceTexts.RenderQualityExtreme); m_comboGraphicsPresets.AddItem((int)PresetEnum.Low, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Low)); m_comboGraphicsPresets.AddItem((int)PresetEnum.Medium, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Medium)); m_comboGraphicsPresets.AddItem((int)PresetEnum.High, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_High)); m_comboGraphicsPresets.AddItem((int)PresetEnum.Custom, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_QualityPreset_Custom)); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AntiAliasing_None)); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.FXAA, "FXAA"); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_2, "MSAA 2x"); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_4, "MSAA 4x"); m_comboAntialiasing.AddItem((int)MyAntialiasingMode.MSAA_8, "MSAA 8x"); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_Low)); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.MEDIUM, MyTexts.GetString(MySpaceTexts.ScreenGraphicsOptions_ShadowMapResolution_Medium)); m_comboShadowMapResolution.AddItem((int)MyShadowsQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_ShadowMapResolution_High)); m_comboTextureQuality.AddItem((int)MyTextureQuality.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Low)); m_comboTextureQuality.AddItem((int)MyTextureQuality.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_Medium)); m_comboTextureQuality.AddItem((int)MyTextureQuality.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_TextureQuality_High)); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.NONE, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_AnisotropicFiltering_Off)); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_1, "1x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_4, "4x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_8, "8x"); m_comboAnisotropicFiltering.AddItem((int)MyTextureAnisoFiltering.ANISO_16, "16x"); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.DISABLED, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Disabled)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Low)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.MEDIUM, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Medium)); m_comboFoliageDetails.AddItem((int)MyFoliageDetails.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_High)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.LOW, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Low)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.NORMAL, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_Medium)); m_comboVoxelQuality.AddItem((int)MyRenderQualityEnum.HIGH, MyTexts.GetString(MyCommonTexts.ScreenGraphicsOptions_FoliageDetails_High)); for (int i = 0; i < m_renderers.Length; i++) { m_comboRenderer.AddItem(i, m_renderers[i]); } labelFovDefault.UpdateFormatParams(MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); var table = new MyLayoutTable(this); { const float h = 60f; table.SetColumnWidths(60f, 400f, 460f); table.SetRowHeights(100f, h, h, h, h, h, 40f, h, h, h, h, h, h, h, h, h, 120f); } int row = 1; const int leftCol = 1; const int rightCol = 2; const MyAlignH hAlign = MyAlignH.Left; const MyAlignV vAlign = MyAlignV.Center; table.Add(labelRenderer, hAlign, vAlign, row, leftCol); table.Add(m_comboRenderer, hAlign, vAlign, row++, rightCol); table.Add(labelHwCursor, hAlign, vAlign, row, leftCol); table.Add(m_checkboxHardwareCursor, hAlign, vAlign, row++, rightCol); table.Add(labelRenderInterpolation, hAlign, vAlign, row, leftCol); table.Add(m_checkboxRenderInterpolation, hAlign, vAlign, row++, rightCol); table.Add(labelEnableDamageEffects, hAlign, vAlign, row, leftCol); table.Add(m_checkboxEnableDamageEffects, hAlign, vAlign, row++, rightCol); table.Add(labelFov, hAlign, vAlign, row, leftCol); table.Add(m_sliderFov, hAlign, vAlign, row++, rightCol); table.Add(labelFovDefault, hAlign, MyAlignV.Top, row++, rightCol); int moveWhenDirX9 = 0; if (MyVideoSettingsManager.RunningGraphicsRenderer == MySandboxGame.DirectX11RendererKey) { table.Add(labelGraphicsPresets, hAlign, vAlign, row, leftCol); table.Add(m_comboGraphicsPresets, hAlign, vAlign, row++, rightCol); table.Add(labelAntiAliasing, hAlign, vAlign, row, leftCol); table.Add(m_comboAntialiasing, hAlign, vAlign, row++, rightCol); table.Add(labelShadowMapResolution, hAlign, vAlign, row, leftCol); table.Add(m_comboShadowMapResolution, hAlign, vAlign, row++, rightCol); table.Add(labelTextureQuality, hAlign, vAlign, row, leftCol); table.Add(m_comboTextureQuality, hAlign, vAlign, row++, rightCol); table.Add(labelVoxelQuality, hAlign, vAlign, row, leftCol); table.Add(m_comboVoxelQuality, hAlign, vAlign, row++, rightCol); table.Add(labelAnisotropicFiltering, hAlign, vAlign, row, leftCol); table.Add(m_comboAnisotropicFiltering, hAlign, vAlign, row++, rightCol); //table.Add(labelMultithreadedRendering, hAlign, vAlign, row, leftCol); //table.Add(m_checkboxMultithreadedRender, hAlign, vAlign, row++, rightCol); //table.Add(labelTonemapping, hAlign, vAlign, row, leftCol); //table.Add(m_checkboxTonemapping, hAlign, vAlign, row++, rightCol); if (MyFakes.ENABLE_PLANETS) { table.Add(labelFoliageDetails, hAlign, vAlign, row, leftCol); table.Add(m_comboFoliageDetails, hAlign, vAlign, row++, rightCol); table.Add(labelGrassDensity, hAlign, vAlign, row, leftCol); table.Add(m_grassDensitySlider, hAlign, vAlign, row++, rightCol); } } else // Dx9 or nothing specified { table.Add(labelDx9RenderQuality, hAlign, vAlign, row, leftCol); table.Add(m_comboDx9RenderQuality, hAlign, vAlign, row++, rightCol); moveWhenDirX9 = 1; } table.Add(okButton, MyAlignH.Left, MyAlignV.Bottom, table.LastRow - moveWhenDirX9, leftCol); table.Add(cancelButton, MyAlignH.Right, MyAlignV.Bottom, table.LastRow - moveWhenDirX9, rightCol); { // Set FoV bounds based on current display setting. float fovMin, fovMax; MyVideoSettingsManager.GetFovBounds(out fovMin, out fovMax); m_sliderFov.SetBounds(MathHelper.ToDegrees(fovMin), MathHelper.ToDegrees(fovMax)); } { m_grassDensitySlider.SetBounds(0f, 10f); } // Update controls with values from config file m_settingsOld = MyVideoSettingsManager.CurrentGraphicsSettings; m_settingsNew = m_settingsOld; WriteSettingsToControls(m_settingsOld); // Update OLD settings ReadSettingsFromControls(ref m_settingsOld); ReadSettingsFromControls(ref m_settingsNew); { MyGuiControlCombobox.ItemSelectedDelegate onComboItemSelected = OnSettingsChanged; Action <MyGuiControlCheckbox> onCheckboxChanged = (checkbox) => OnSettingsChanged(); m_comboGraphicsPresets.ItemSelected += OnPresetSelected; m_comboAnisotropicFiltering.ItemSelected += onComboItemSelected; m_comboAntialiasing.ItemSelected += onComboItemSelected; m_comboShadowMapResolution.ItemSelected += onComboItemSelected; m_comboFoliageDetails.ItemSelected += onComboItemSelected; m_comboVoxelQuality.ItemSelected += onComboItemSelected; m_comboTextureQuality.ItemSelected += onComboItemSelected; m_comboDx9RenderQuality.ItemSelected += onComboItemSelected; m_checkboxHardwareCursor.IsCheckedChanged = onCheckboxChanged; //m_checkboxMultithreadedRender.IsCheckedChanged = onCheckboxChanged; m_checkboxRenderInterpolation.IsCheckedChanged = onCheckboxChanged; //m_checkboxTonemapping.IsCheckedChanged = onCheckboxChanged; m_checkboxEnableDamageEffects.IsCheckedChanged = onCheckboxChanged; m_sliderFov.ValueChanged = (slider) => OnSettingsChanged(); // m_grassDensitySlider.ValueChanged = (slider) => OnSettingsChanged(); } RefreshPresetCombo(m_settingsOld.Render); CloseButtonEnabled = true; CloseButtonOffset = new Vector2(-50f, 50f) / MyGuiConstants.GUI_OPTIMAL_SIZE; }
/// <returns>Bool indicating a game restart is required</returns> private bool ReadSettingsFromControls(ref MyGraphicsSettings graphicsSettings) { bool restartIsNeeded; { MyGraphicsSettings read = new MyGraphicsSettings(); read.GraphicsRenderer = m_renderers[(int)m_comboRenderer.GetSelectedKey()]; read.FieldOfView = MathHelper.ToRadians(m_sliderFov.Value); read.HardwareCursor = m_checkboxHardwareCursor.IsChecked; read.EnableDamageEffects = m_checkboxEnableDamageEffects.IsChecked; read.Render.AntialiasingMode = (MyAntialiasingMode)m_comboAntialiasing.GetSelectedKey(); read.Render.ShadowQuality = (MyShadowsQuality)m_comboShadowMapResolution.GetSelectedKey(); read.Render.InterpolationEnabled = m_checkboxRenderInterpolation.IsChecked; //read.Render.MultithreadingEnabled = m_checkboxMultithreadedRender.IsChecked; //read.Render.TonemappingEnabled = m_checkboxTonemapping.IsChecked; read.Render.TextureQuality = (MyTextureQuality)m_comboTextureQuality.GetSelectedKey(); read.Render.AnisotropicFiltering = (MyTextureAnisoFiltering)m_comboAnisotropicFiltering.GetSelectedKey(); MyRenderProxy.Settings.EnableShadows = (read.Render.ShadowQuality != MyShadowsQuality.DISABLED); if (MyVideoSettingsManager.RunningGraphicsRenderer != MySandboxGame.DirectX11RendererKey) read.Render.Dx9Quality = (MyRenderQualityEnum)m_comboDx9RenderQuality.GetSelectedKey(); else read.Render.Dx9Quality = graphicsSettings.Render.Dx9Quality; read.Render.FoliageDetails = (MyFoliageDetails)m_comboFoliageDetails.GetSelectedKey(); read.Render.VoxelQuality = (MyRenderQualityEnum)m_comboVoxelQuality.GetSelectedKey(); read.Render.GrassDensityFactor = m_grassDensitySlider.Value; restartIsNeeded = read.GraphicsRenderer != graphicsSettings.GraphicsRenderer; graphicsSettings = read; } return restartIsNeeded; }
public override void RecreateControls(bool constructor) { if (!constructor) { return; } base.RecreateControls(constructor); AddCaption(MySpaceTexts.ScreenCaptionVideoOptions); Vector2 controlsOriginLeft = new Vector2(-m_size.Value.X / 2.0f + 0.05f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.02f, 0f); Vector2 controlsOriginRight = new Vector2(-m_size.Value.X / 2.0f + 0.225f, -m_size.Value.Y / 2.0f + 0.145f) + new Vector2(0.043f, 0f); const float TEXT_SCALE = MyGuiConstants.DEFAULT_TEXT_SCALE * 0.85f; var labelVideoAdapter = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoAdapter)); var labelVideoMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VideoMode)); var labelWindowMode = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.ScreenOptionsVideo_WindowMode)); var labelVSync = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.VerticalSync)); var labelHwCursor = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.HardwareCursor)); var labelRenderQuality = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderQuality)); var labelFoV = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.FieldOfView)); m_fieldOfViewDefaultLabel = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.DefaultFOV)); var labelRenderInterpolation = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.RenderIterpolation)); var labelEnableDamageEffects = new MyGuiControlLabel(textScale: TEXT_SCALE, text: MyTexts.GetString(MySpaceTexts.EnableDamageEffects)); m_videoAdapterCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoAdapter)); m_resolutionCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVideoMode)); m_windowModeCombobox = new MyGuiControlCombobox(); m_verticalSyncCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsVerticalSync)); m_hardwareCursorCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsHardwareCursor)); m_enableDamageEffectsCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsEnableDamageEffects)); m_renderQualityCombobox = new MyGuiControlCombobox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsRenderQuality)); m_fieldOfViewSlider = new MyGuiControlSlider(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionsFieldOfView), labelText: new StringBuilder("{0}").ToString(), labelSpaceWidth: 0.035f, labelScale: TEXT_SCALE, labelFont: MyFontEnum.Blue, minValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MIN), maxValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_MAX), defaultValue: MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); m_renderInterpolationCheckbox = new MyGuiControlCheckbox(toolTip: MyTexts.GetString(MySpaceTexts.ToolTipVideoOptionRenderIterpolation)); m_unsupportedAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f); m_recommendAspectRatioLabel = new MyGuiControlLabel(colorMask: MyGuiConstants.LABEL_TEXT_COLOR * 0.9f, textScale: TEXT_SCALE * 0.85f); var hintLineOffset = new Vector2(0f, m_unsupportedAspectRatioLabel.Size.Y); var hintOffset = new Vector2(0.01f, -0.35f * MyGuiConstants.CONTROLS_DELTA.Y); labelVideoAdapter.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_videoAdapterCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelVideoMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_resolutionCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; m_unsupportedAspectRatioLabel.Position = controlsOriginRight + hintOffset; m_recommendAspectRatioLabel.Position = controlsOriginRight + hintOffset + hintLineOffset; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelWindowMode.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_windowModeCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelVSync.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_verticalSyncCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelHwCursor.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_hardwareCursorCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelRenderQuality.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_renderQualityCombobox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelRenderInterpolation.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_renderInterpolationCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelEnableDamageEffects.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_enableDamageEffectsCheckbox.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; labelFoV.Position = controlsOriginLeft; controlsOriginLeft += MyGuiConstants.CONTROLS_DELTA; m_fieldOfViewSlider.Position = controlsOriginRight; controlsOriginRight += MyGuiConstants.CONTROLS_DELTA; m_fieldOfViewDefaultLabel.Position = controlsOriginRight + hintOffset; Controls.Add(labelVideoAdapter); Controls.Add(m_videoAdapterCombobox); Controls.Add(labelVideoMode); Controls.Add(m_resolutionCombobox); Controls.Add(m_unsupportedAspectRatioLabel); Controls.Add(m_recommendAspectRatioLabel); Controls.Add(labelWindowMode); Controls.Add(m_windowModeCombobox); Controls.Add(labelVSync); Controls.Add(m_verticalSyncCheckbox); Controls.Add(labelHwCursor); Controls.Add(m_hardwareCursorCheckbox); Controls.Add(labelRenderQuality); Controls.Add(m_renderQualityCombobox); Controls.Add(labelRenderInterpolation); Controls.Add(m_renderInterpolationCheckbox); Controls.Add(labelEnableDamageEffects); Controls.Add(m_enableDamageEffectsCheckbox); Controls.Add(labelFoV); Controls.Add(m_fieldOfViewSlider); Controls.Add(m_fieldOfViewDefaultLabel); foreach (var control in Controls) { control.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER; } m_unsupportedAspectRatioLabel.Text = string.Format("* {0}", MyTexts.Get(MySpaceTexts.UnsupportedAspectRatio)); AddAdaptersToComboBox(); AddRenderQualitiesToComboBox(); AddWindowModesToComboBox(); m_fieldOfViewDefaultLabel.UpdateFormatParams(MathHelper.ToDegrees(MyConstants.FIELD_OF_VIEW_CONFIG_DEFAULT)); m_videoAdapterCombobox.ItemSelected += OnVideoAdapterSelected; m_resolutionCombobox.ItemSelected += OnResolutionSelected; m_windowModeCombobox.ItemSelected += OnWindowModeSelected; // Buttons APPLY and BACK Controls.Add(new MyGuiControlButton( position: new Vector2(-0.05f, 0.31f), size: MyGuiConstants.OK_BUTTON_SIZE, text: MyTexts.Get(MySpaceTexts.Ok), onButtonClick: OnOkClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_CENTER)); Controls.Add(new MyGuiControlButton( position: new Vector2(0.05f, 0.31f), size: MyGuiConstants.OK_BUTTON_SIZE, text: MyTexts.Get(MySpaceTexts.Cancel), onButtonClick: OnCancelClick, originAlign: MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER)); // Update controls with values from config file m_deviceSettingsOld = MyVideoSettingsManager.CurrentDeviceSettings; m_graphicsSettingsOld = MyVideoSettingsManager.CurrentGraphicsSettings; m_deviceSettingsNew = m_deviceSettingsOld; m_graphicsSettingsNew = m_graphicsSettingsOld; WriteSettingsToControls(m_deviceSettingsOld, m_graphicsSettingsOld); // Update OLD settings ReadSettingsFromControls(ref m_deviceSettingsOld, ref m_graphicsSettingsOld); ReadSettingsFromControls(ref m_deviceSettingsNew, ref m_graphicsSettingsNew); CloseButtonEnabled = true; }
private void WriteSettingsToControls(MyGraphicsSettings graphicsSettings) { m_comboRenderer.SelectItemByKey(Array.IndexOf(m_renderers, graphicsSettings.GraphicsRenderer)); m_checkboxHardwareCursor.IsChecked = graphicsSettings.HardwareCursor; m_sliderFov.Value = MathHelper.ToDegrees(graphicsSettings.FieldOfView); m_grassDensitySlider.Value = graphicsSettings.Render.GrassDensityFactor; m_checkboxEnableDamageEffects.IsChecked = graphicsSettings.EnableDamageEffects; m_checkboxRenderInterpolation.IsChecked = graphicsSettings.Render.InterpolationEnabled; m_checkboxMultithreadedRender.IsChecked = graphicsSettings.Render.MultithreadingEnabled; m_checkboxTonemapping.IsChecked = graphicsSettings.Render.TonemappingEnabled; m_comboAntialiasing.SelectItemByKey((long)graphicsSettings.Render.AntialiasingMode, sendEvent: false); m_comboShadowMapResolution.SelectItemByKey((long)graphicsSettings.Render.ShadowQuality, sendEvent: false); m_comboTextureQuality.SelectItemByKey((long)graphicsSettings.Render.TextureQuality, sendEvent: false); m_comboAnisotropicFiltering.SelectItemByKey((long)graphicsSettings.Render.AnisotropicFiltering, sendEvent: false); m_comboDx9RenderQuality.SelectItemByKey((int)graphicsSettings.Render.Dx9Quality); if (m_comboDx9RenderQuality.GetSelectedKey() == -1) m_comboDx9RenderQuality.SelectItemByIndex(0); }