From 14f6bbadef2c39e58a3b54c0c6212949acf50e45 Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Mon, 8 Aug 2011 15:29:23 -0500 Subject: SH-2242 Work in progress migrating to glVertexAttrib everywhere --- indra/llrender/llrender.cpp | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) (limited to 'indra/llrender/llrender.cpp') diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index d72918b15d..da85bc202c 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1580,6 +1580,105 @@ void LLRender::color3fv(const GLfloat* c) color4f(c[0],c[1],c[2],1); } +void LLRender::diffuseColor3f(F32 r, F32 g, F32 b) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + } + + if (loc >= 0) + { + glVertexAttrib3fARB(loc, r,g,b); + } + else + { + glColor3f(r,g,b); + } +} + +void LLRender::diffuseColor3fv(const F32* c) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + } + + if (loc >= 0) + { + glVertexAttrib3fvARB(loc, c); + } + else + { + glColor3fv(c); + } +} + +void LLRender::diffuseColor4f(F32 r, F32 g, F32 b, F32 a) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + } + + if (loc >= 0) + { + glVertexAttrib4fARB(loc, r,g,b,a); + } + else + { + glColor4f(r,g,b,a); + } + +} + +void LLRender::diffuseColor4fv(const F32* c) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + } + + if (loc >= 0) + { + glVertexAttrib4fvARB(loc, c); + } + else + { + glColor4fv(c); + } +} + +void LLRender::diffuseColor4ubv(const U8* c) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + } + + if (loc >= 0) + { + glVertexAttrib4ubvARB(loc, c); + } + else + { + glColor4ubv(c); + } +} + + + + void LLRender::debugTexUnits(void) { LL_INFOS("TextureUnit") << "Active TexUnit: " << mCurrTextureUnitIndex << LL_ENDL; -- cgit v1.2.3 From ee4fdd2c18c722164d78a7305777fad6e49cba8b Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Sun, 21 Aug 2011 16:23:04 -0500 Subject: SH-2242 Work in progress on FXAA/glVertexAttrib -- DoF works, physics shape display still doesn't. --- indra/llrender/llrender.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'indra/llrender/llrender.cpp') diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index da85bc202c..03a45c35dc 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1586,12 +1586,12 @@ void LLRender::diffuseColor3f(F32 r, F32 g, F32 b) S32 loc = -1; if (shader) { - loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + loc = shader->getUniformLocation("color"); } if (loc >= 0) { - glVertexAttrib3fARB(loc, r,g,b); + shader->uniform4f(loc, r,g,b,1.f); } else { @@ -1605,12 +1605,12 @@ void LLRender::diffuseColor3fv(const F32* c) S32 loc = -1; if (shader) { - loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + loc = shader->getUniformLocation("color"); } if (loc >= 0) { - glVertexAttrib3fvARB(loc, c); + shader->uniform4f(loc, c[0], c[1], c[2], 1.f); } else { @@ -1624,12 +1624,12 @@ void LLRender::diffuseColor4f(F32 r, F32 g, F32 b, F32 a) S32 loc = -1; if (shader) { - loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + loc = shader->getUniformLocation("color"); } if (loc >= 0) { - glVertexAttrib4fARB(loc, r,g,b,a); + shader->uniform4f(loc, r,g,b,a); } else { @@ -1644,12 +1644,12 @@ void LLRender::diffuseColor4fv(const F32* c) S32 loc = -1; if (shader) { - loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + loc = shader->getUniformLocation("color"); } if (loc >= 0) { - glVertexAttrib4fvARB(loc, c); + shader->uniform4fv(loc, 1, c); } else { @@ -1663,12 +1663,12 @@ void LLRender::diffuseColor4ubv(const U8* c) S32 loc = -1; if (shader) { - loc = shader->getAttribLocation(LLVertexBuffer::TYPE_COLOR); + loc = shader->getUniformLocation("color"); } if (loc >= 0) { - glVertexAttrib4ubvARB(loc, c); + shader->uniform4f(loc, c[0]/255.f, c[1]/255.f, c[2]/255.f, c[3]/255.f); } else { -- cgit v1.2.3