summaryrefslogtreecommitdiff
path: root/indra/newview/llviewercontrol.cpp
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2018-09-10 20:39:48 +0100
committerGraham Linden <graham@lindenlab.com>2018-09-10 20:39:48 +0100
commit642a4ddd60745db292c543a5cea3b1e5fe606795 (patch)
treec6e54329fff754cb502a3086aaf2e81a33740d9c /indra/newview/llviewercontrol.cpp
parente5c0022a7c102e96d3e93d91eda08af81defeef1 (diff)
Fixes for switching between atmospherics implementations on the fly.
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r--indra/newview/llviewercontrol.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 88984d518a..ebc55fa0dd 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -410,6 +410,17 @@ static bool handleRenderDeferredChanged(const LLSD& newvalue)
return true;
}
+static bool handleRenderUseAdvancedAtmosphericsChanged(const LLSD& newvalue)
+{
+ if (gPipeline.isInit())
+ {
+ LLPipeline::refreshCachedSettings();
+ // Need to reload shaders when changing atmospherics implementations...
+ LLViewerShaderMgr::instance()->setShaders();
+ }
+ return true;
+}
+
// This looks a great deal like handleRenderDeferredChanged because
// Advanced Lighting (Materials) implies bumps and shiny so disabling
// bumps should further disable that feature.
@@ -644,6 +655,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2));
gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2));
gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleRenderDeferredChanged, _2));
+ gSavedSettings.getControl("RenderUseAdvancedAtmospherics")->getSignal()->connect(boost::bind(&handleRenderUseAdvancedAtmosphericsChanged, _2));
gSavedSettings.getControl("RenderShadowDetail")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderDeferredSSAO")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderPerformanceTest")->getSignal()->connect(boost::bind(&handleRenderPerfTestChanged, _2));