From dab6d7b50706ef09be26b5c6ca4ca8c7b8b2d051 Mon Sep 17 00:00:00 2001
From: Xiaohong Bao <bao@lindenlab.com>
Date: Mon, 9 May 2011 16:41:00 -0600
Subject: [PATCH] fix for SH-Render Metadata Physics Shapes on Development
 Client Gives Black Screen

---
 indra/newview/llviewerdisplay.cpp |  2 +-
 indra/newview/pipeline.cpp        | 15 +++++++++++++++
 indra/newview/pipeline.h          |  1 +
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index a60d7e07930..e41773d2736 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -825,7 +825,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 		//}
 
 		LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE;
-		LLPipeline::updateRenderDeferred();
+		LLPipeline::refreshRenderDeferred();
 		
 		stop_glerror();
 
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 923c02b8605..f64eb898669 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -784,6 +784,21 @@ void LLPipeline::updateRenderDeferred()
 	}
 }
 
+//static
+void LLPipeline::refreshRenderDeferred()
+{
+	if(gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PHYSICS_SHAPES))
+	{
+		//turn the deferred rendering and glow off when draw physics shapes.
+		sRenderDeferred = FALSE ;
+		sRenderGlow = FALSE ;
+	}
+	else
+	{
+		updateRenderDeferred() ;
+	}
+}
+
 void LLPipeline::releaseGLBuffers()
 {
 	assertInitialized();
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 0cf3fde5627..e9a250cd6d7 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -356,6 +356,7 @@ class LLPipeline
 	static BOOL getRenderHighlights(void* data);
 
 	static void updateRenderDeferred();
+	static void refreshRenderDeferred();
 
 private:
 	void unloadShaders();
-- 
GitLab