diff --git a/data/gui/custom_video_settings.stkgui b/data/gui/custom_video_settings.stkgui index 2ae3c8eed..35039a75a 100644 --- a/data/gui/custom_video_settings.stkgui +++ b/data/gui/custom_video_settings.stkgui @@ -25,9 +25,20 @@
-
diff --git a/src/states_screens/dialogs/custom_video_settings.cpp b/src/states_screens/dialogs/custom_video_settings.cpp index 8c37e9e47..5a35cfd70 100644 --- a/src/states_screens/dialogs/custom_video_settings.cpp +++ b/src/states_screens/dialogs/custom_video_settings.cpp @@ -92,6 +92,7 @@ void CustomVideoSettingsDialog::beforeAddingWidgets() shadows->setValue(0); getWidget("dynamiclight")->setState(UserConfigParams::m_dynamic_lights); getWidget("lightshaft")->setState(UserConfigParams::m_light_shaft); + getWidget("ibl")->setState(!UserConfigParams::m_degraded_IBL); getWidget("global_illumination")->setState(UserConfigParams::m_gi); getWidget("motionblur")->setState(UserConfigParams::m_motionblur); getWidget("mlaa")->setState(UserConfigParams::m_mlaa); @@ -150,6 +151,9 @@ GUIEngine::EventPropagation CustomVideoSettingsDialog::processEvent(const std::s UserConfigParams::m_light_shaft = advanced_pipeline && getWidget("lightshaft")->getState(); + UserConfigParams::m_degraded_IBL = + !getWidget("ibl")->getState(); + UserConfigParams::m_gi = advanced_pipeline && CVS->supportsGlobalIllumination() && getWidget("global_illumination")->getState(); @@ -231,6 +235,7 @@ void CustomVideoSettingsDialog::updateActivation() getWidget("mlaa")->setActivated(); getWidget("ssao")->setActivated(); getWidget("lightshaft")->setActivated(); + getWidget("ibl")->setActivated(); getWidget("global_illumination")->setActivated(); getWidget("glow")->setActivated(); getWidget("bloom")->setActivated(); @@ -243,6 +248,7 @@ void CustomVideoSettingsDialog::updateActivation() getWidget("mlaa")->setDeactivated(); getWidget("ssao")->setDeactivated(); getWidget("lightshaft")->setDeactivated(); + getWidget("ibl")->setDeactivated(); getWidget("global_illumination")->setDeactivated(); getWidget("glow")->setDeactivated(); getWidget("bloom")->setDeactivated(); diff --git a/src/states_screens/options_screen_video.cpp b/src/states_screens/options_screen_video.cpp index 958506182..2e144d697 100644 --- a/src/states_screens/options_screen_video.cpp +++ b/src/states_screens/options_screen_video.cpp @@ -61,6 +61,7 @@ struct GFXPreset /** Depth of field */ bool dof; bool global_illumination; + bool degraded_ibl; }; static GFXPreset GFX_PRESETS[] = @@ -69,35 +70,35 @@ static GFXPreset GFX_PRESETS[] = false /* light */, 0 /* shadow */, false /* bloom */, false /* motionblur */, false /* lightshaft */, false /* glow */, false /* mlaa */, false /* ssao */, false /* weather */, false /* animatedScenery */, 0 /* animatedCharacters */, 0 /* anisotropy */, - false /* depth of field */, false /* global illumination */ + false /* depth of field */, false /* global illumination */, true /* degraded IBL */ }, { false /* light */, 0 /* shadow */, false /* bloom */, false /* motionblur */, false /* lightshaft */, false /* glow */, false /* mlaa */, false /* ssao */, false /* weather */, true /* animatedScenery */, 1 /* animatedCharacters */, 4 /* anisotropy */, - false /* depth of field */, false /* global illumination */ + false /* depth of field */, false /* global illumination */, true /* degraded IBL */ }, { true /* light */, 0 /* shadow */, false /* bloom */, false /* motionblur */, false /* lightshaft */, false /* glow */, false /* mlaa */, false /* ssao */, true /* weather */, true /* animatedScenery */, 1 /* animatedCharacters */, 4 /* anisotropy */, - false /* depth of field */, false /* global illumination */ + false /* depth of field */, false /* global illumination */, true /* degraded IBL */ }, { true /* light */, 0 /* shadow */, false /* bloom */, true /* motionblur */, true /* lightshaft */, true /* glow */, true /* mlaa */, false /* ssao */, true /* weather */, true /* animatedScenery */, 1 /* animatedCharacters */, 8 /* anisotropy */, - false /* depth of field */, false /* global illumination */ + false /* depth of field */, false /* global illumination */, false /* degraded IBL */ }, { true /* light */, 1024 /* shadow */, true /* bloom */, true /* motionblur */, true /* lightshaft */, true /* glow */, true /* mlaa */, true /* ssao */, true /* weather */, true /* animatedScenery */, 2 /* animatedCharacters */, 16 /* anisotropy */, - true /* depth of field */, true /* global illumination */ + true /* depth of field */, true /* global illumination */, false /* degraded IBL */ } }; @@ -395,7 +396,8 @@ void OptionsScreenVideo::updateGfxSlider() GFX_PRESETS[l].ssao == UserConfigParams::m_ssao && GFX_PRESETS[l].weather == UserConfigParams::m_weather_effects && GFX_PRESETS[l].dof == UserConfigParams::m_dof && - GFX_PRESETS[l].global_illumination == UserConfigParams::m_gi) + GFX_PRESETS[l].global_illumination == UserConfigParams::m_gi && + GFX_PRESETS[l].degraded_ibl == UserConfigParams::m_degraded_IBL) { gfx->setValue(l + 1); found = true; @@ -567,6 +569,7 @@ void OptionsScreenVideo::eventCallback(Widget* widget, const std::string& name, UserConfigParams::m_weather_effects = GFX_PRESETS[level].weather; UserConfigParams::m_dof = GFX_PRESETS[level].dof; UserConfigParams::m_gi = GFX_PRESETS[level].global_illumination; + UserConfigParams::m_degraded_IBL = GFX_PRESETS[level].degraded_ibl; updateGfxSlider(); }