diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp index 11e60548e243017298869c52698ca079d3be02b4..1a0103e8f0820e5c5742c302133061015c8463cc 100644 --- a/indra/llrender/llrendernavprim.cpp +++ b/indra/llrender/llrendernavprim.cpp @@ -35,7 +35,7 @@ //============================================================================= LLRenderNavPrim gRenderNav; //============================================================================= -void LLRenderNavPrim::renderSegment( const LLVector3& start, const LLVector3& end, int color ) const +void LLRenderNavPrim::renderSegment( const LLVector3& start, const LLVector3& end, int color,bool overlayMode ) const { LLGLSLShader::sNoFixedFunction = false; LLColor4 colorA( color ); @@ -54,10 +54,17 @@ void LLRenderNavPrim::renderSegment( const LLVector3& start, const LLVector3& en glLineWidth(1.0f); } //============================================================================= -void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, int color ) const +void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, int color,bool overlayMode ) const { - glLineWidth(1.5f); - glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + glLineWidth(1.5f); + if ( overlayMode ) + { + glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); + } + else + { + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + } LLGLDisable cull(GL_CULL_FACE); LLColor4 colorA( color ); colorA*=1.5f; @@ -71,6 +78,8 @@ void LLRenderNavPrim::renderTri( const LLVector3& a, const LLVector3& b, const L } gGL.end(); gGL.flush(); + glLineWidth(1.0f); + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); LLGLSLShader::sNoFixedFunction = true; } //============================================================================= diff --git a/indra/llrender/llrendernavprim.h b/indra/llrender/llrendernavprim.h index cd57fd2223e7e9db119a7bf858cbedebc6958456..a30a14551def405537359c7ce773efbbe6c40094 100644 --- a/indra/llrender/llrendernavprim.h +++ b/indra/llrender/llrendernavprim.h @@ -40,9 +40,9 @@ class LLRenderNavPrim { public: //Draw a line - void renderSegment( const LLVector3& start, const LLVector3& end, int color ) const; + void renderSegment( const LLVector3& start, const LLVector3& end, int color,bool overlayMode ) const; //Draw simple tri - void renderTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, int color ) const; + void renderTri( const LLVector3& a, const LLVector3& b, const LLVector3& c, int color,bool overlayMode ) const; //Draw the contents of vertex buffer void renderNavMeshVB( LLVertexBuffer* pVBO, int vertCnt ); diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 2b2dd5ef7c9ddddca1ddc471a7279efd32c32b81..3cc025462b288321b78f357f029a3ac9c3217719 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -920,7 +920,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) glEnable(GL_DEPTH_TEST); gGL.setSceneBlendType( LLRender::BT_ALPHA ); gGL.setAmbientLightColor( LLColor4::white ); - LLPathingLib::getInstance()->renderNavMesh(); + LLPathingLib::getInstance()->renderNavMesh( allowRenderables ); exclusiveDraw = true; } //physics/exclusion shapes