diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index ffbd42531..81f58aeed 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1689,6 +1689,8 @@ class LLAdvancedToggleWireframe : public view_listener_t // [/RLVa:KB] // gUseWireframe = !(gUseWireframe); // gWindowResized = TRUE; // Singu Note: We don't use this (yet?) + + LLPipeline::updateRenderDeferred(); gPipeline.resetVertexBuffers(); // return true; } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 8dddfbebe..b4a1c8e4b 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -934,6 +934,23 @@ bool LLPipeline::isRenderDeferredDesired() gSavedSettings.getBOOL("WindLightUseAtmosShaders"); } +//static +void LLPipeline::updateRenderDeferred() +{ + bool deferred = (bool(LLRenderTarget::sUseFBO && + LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") && + LLPipeline::sRenderBump && + isRenderDeferredDesired())) && + !gUseWireframe; + + sRenderDeferred = deferred; + if (deferred) + { //must render glow when rendering deferred since post effect pass is needed to present any lighting at all + sRenderGlow = true; + } +} + + //static void LLPipeline::refreshCachedSettings() { diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index cd3264e8d..22d1a99da 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -408,6 +408,7 @@ public: static bool isRenderDeferredCapable(); static bool isRenderDeferredDesired(); + static void updateRenderDeferred(); static void refreshCachedSettings(); static void throttleNewMemoryAllocation(BOOL disable);