summaryrefslogtreecommitdiff
path: root/indra/newview/llviewercontrol.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-12-15 20:55:02 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-12-15 21:36:58 +0200
commit2800905ac354fec6316cf83da85eb5f4c6060741 (patch)
tree56ca4cb7d8de5ce698a164bb869812c16164c21a /indra/newview/llviewercontrol.cpp
parent6583fdf526c356b47122de3894b0fb68d83ae50b (diff)
parent0a873cd95547f003878c6d00d0883ff792f4a865 (diff)
Merge branch master (DRTVWR-552) into DRTVWR-542-meshopt
+resolved viewer-manager's inherited conflict
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r--indra/newview/llviewercontrol.cpp23
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));