From 22b877e70a6f72256ff585465232bed93792571d Mon Sep 17 00:00:00 2001
From: prep <prep@lindenlab.com>
Date: Thu, 5 Jan 2012 17:02:22 -0500
Subject: [PATCH] WIP: Navmesh vbos rendering fixes (added normal and color
 maps).

---
 indra/llrender/llrendernavprim.cpp | 21 ++++++++++++++++-----
 indra/newview/llviewerdisplay.cpp  | 13 ++-----------
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp
index 1a0103e8f08..9a114609d2d 100644
--- a/indra/llrender/llrendernavprim.cpp
+++ b/indra/llrender/llrendernavprim.cpp
@@ -67,7 +67,7 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L
 	}
 	LLGLDisable cull(GL_CULL_FACE);
 	LLColor4 colorA( color );	
-	colorA*=1.5f;
+	colorA*=1.25f;
 	gGL.color4fv( colorA.mV );		
 	LLGLSLShader::sNoFixedFunction = false;
 	gGL.begin(LLRender::TRIANGLES);
@@ -86,11 +86,22 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L
 void LLRenderNavPrim::renderNavMeshVB( LLVertexBuffer* pVBO, int vertCnt )
 {
 	glLineWidth(1.5f);		
-	glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );	
-	LLGLDisable cull(GL_CULL_FACE);	
 	LLGLSLShader::sNoFixedFunction = false;
-	pVBO->setBuffer( LLVertexBuffer::MAP_VERTEX  );
-	pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt );
+
+	LLGLEnable depth(GL_DEPTH_TEST);        
+	glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );	
+	LLGLEnable cull( GL_CULL_FACE );	
+	
+	//pass 1 filled
+	pVBO->setBuffer( LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_COLOR | LLVertexBuffer::MAP_NORMAL );
+	pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt );	
+	//glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );	
+	//static GLubyte red[]= { 255.0f, 0.0f, 0.0f, 255.0f };
+	//glColor4ubv( red );										
+	//pass 2 outlined
+	//pVBO->drawArrays( LLRender::TRIANGLES, 0, vertCnt );	
 	LLGLSLShader::sNoFixedFunction = true;
+	glLineWidth(1.0f);		
+	glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );	
 }
 //=============================================================================
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 3cc025462b2..85896c74dd4 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -915,24 +915,15 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 					//Navmesh
 					if ( LLPathingLib::getInstance()->getRenderNavMeshState() )
 					{
-						glClearColor(0.0f, 0.0f, 0.0f, 0.5f);          
-												
+						glClearColor(0.0f, 0.0f, 0.0f, 0.5f);          												
 						glEnable(GL_DEPTH_TEST);                        
-						gGL.setSceneBlendType( LLRender::BT_ALPHA );
 						gGL.setAmbientLightColor( LLColor4::white );
 						LLPathingLib::getInstance()->renderNavMesh( allowRenderables );
 						exclusiveDraw = true;
 					}
 					//physics/exclusion shapes
 					if ( LLPathingLib::getInstance()->getRenderShapeState() )
-					{
-						glEnable(GL_DEPTH_TEST);                        
-						gGL.setSceneBlendType( LLRender::BT_REPLACE );      
-						GLfloat LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f };     
-						glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);	
-						LLGLSUIDefault texture_state;
-						LLGLDepthTest gls_depth(GL_TRUE);
-						gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);	
+					{						
 						LLPathingLib::getInstance()->renderNavMeshShapesVBO();
 						exclusiveDraw = true;
 					}	
-- 
GitLab