diff options
Diffstat (limited to 'indra/llrender/llrendernavprim.cpp')
-rw-r--r-- | indra/llrender/llrendernavprim.cpp | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/indra/llrender/llrendernavprim.cpp b/indra/llrender/llrendernavprim.cpp index 11e60548e2..9a114609d2 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,13 +54,20 @@ 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;
+ colorA*=1.25f;
gGL.color4fv( colorA.mV );
LLGLSLShader::sNoFixedFunction = false;
gGL.begin(LLRender::TRIANGLES);
@@ -71,17 +78,30 @@ 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;
}
//=============================================================================
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 );
}
//=============================================================================
|