From c056eacfab6171fbe2d7eec437466d66f8d21b8b Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 15 Jul 2018 06:26:04 -0400 Subject: [PATCH] Fix SV-2179: Wireframe - Rendering. Works only when Adv.light.model is disabled. (Don't toggle ALM while in wireframe, bad things will happen... or do, who am I to tell you how to live your life? It'll look pretty cool actually, to fix that noise just toggle Wireframe once or twice.) --- indra/newview/llviewermenu.cpp | 2 ++ indra/newview/pipeline.cpp | 17 +++++++++++++++++ indra/newview/pipeline.h | 1 + 3 files changed, 20 insertions(+) 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);