diff options
author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2021-12-20 14:15:49 +0200 |
---|---|---|
committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2021-12-20 14:15:49 +0200 |
commit | 2c3fb3d59b32d03c52415158719d4835af91a5f5 (patch) | |
tree | a0d5647f13294e4cc2f5111e1787a75140ae2888 /indra/newview/llviewercontrol.cpp | |
parent | 132c536d9c05be2d2fd2dcef3ea6c7ae135fa5d2 (diff) | |
parent | 0a873cd95547f003878c6d00d0883ff792f4a865 (diff) |
Merge branch 'master' into DRTVWR-539
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r-- | indra/newview/llviewercontrol.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 89c600fc2c..bc425123e1 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -162,6 +162,17 @@ static bool handleSetShaderChanged(const LLSD& newvalue) return true; } +static bool handleAvatarVPChanged(const LLSD& newvalue) +{ + LLRenderTarget::sUseFBO = newvalue.asBoolean() + && gSavedSettings.getBOOL("RenderObjectBump") + && gSavedSettings.getBOOL("RenderTransparentWater") + && gSavedSettings.getBOOL("RenderDeferred"); + + handleSetShaderChanged(LLSD()); + return true; +} + static bool handleRenderPerfTestChanged(const LLSD& newvalue) { bool status = !newvalue.asBoolean(); @@ -201,7 +212,10 @@ static bool handleRenderPerfTestChanged(const LLSD& newvalue) bool handleRenderTransparentWaterChanged(const LLSD& newvalue) { - LLRenderTarget::sUseFBO = newvalue.asBoolean(); + LLRenderTarget::sUseFBO = newvalue.asBoolean() + && gSavedSettings.getBOOL("RenderObjectBump") + && gSavedSettings.getBOOL("RenderAvatarVP") + && gSavedSettings.getBOOL("RenderDeferred"); if (gPipeline.isInit()) { gPipeline.updateRenderTransparentWater(); @@ -454,7 +468,10 @@ static bool handleRenderDeferredChanged(const LLSD& newvalue) // static bool handleRenderBumpChanged(const LLSD& newval) { - LLRenderTarget::sUseFBO = newval.asBoolean(); + LLRenderTarget::sUseFBO = newval.asBoolean() + && gSavedSettings.getBOOL("RenderTransparentWater") + && gSavedSettings.getBOOL("RenderAvatarVP") + && gSavedSettings.getBOOL("RenderDeferred"); if (gPipeline.isInit()) { gPipeline.updateRenderBump(); @@ -648,7 +665,7 @@ void settings_setup_listeners() gSavedSettings.getControl("OctreeAttachmentSizeFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2)); gSavedSettings.getControl("RenderMaxTextureIndex")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); gSavedSettings.getControl("RenderUseTriStrips")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); - gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); + gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleAvatarVPChanged, _2)); gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleWindowResized, _2)); gSavedSettings.getControl("RenderDepthOfField")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); |