diff options
author | Dave Parks <davep@lindenlab.com> | 2011-08-21 16:23:50 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-08-21 16:23:50 -0500 |
commit | 90ebaeef9b629cb63e7a94a526478f2e340ff439 (patch) | |
tree | 14f61c7fc6c2c41cace22a9582075d54ad8181bc /indra/llrender/llrender.cpp | |
parent | 63c420d8ddb7cc738877d2771b1c3b8972a4de09 (diff) | |
parent | ee4fdd2c18c722164d78a7305777fad6e49cba8b (diff) |
merge
Diffstat (limited to 'indra/llrender/llrender.cpp')
-rw-r--r-- | indra/llrender/llrender.cpp | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index d72918b15d..03a45c35dc 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->getUniformLocation("color"); + } + + if (loc >= 0) + { + shader->uniform4f(loc, r,g,b,1.f); + } + else + { + glColor3f(r,g,b); + } +} + +void LLRender::diffuseColor3fv(const F32* c) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getUniformLocation("color"); + } + + if (loc >= 0) + { + shader->uniform4f(loc, c[0], c[1], c[2], 1.f); + } + 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->getUniformLocation("color"); + } + + if (loc >= 0) + { + shader->uniform4f(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->getUniformLocation("color"); + } + + if (loc >= 0) + { + shader->uniform4fv(loc, 1, c); + } + else + { + glColor4fv(c); + } +} + +void LLRender::diffuseColor4ubv(const U8* c) +{ + LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; + S32 loc = -1; + if (shader) + { + loc = shader->getUniformLocation("color"); + } + + if (loc >= 0) + { + shader->uniform4f(loc, c[0]/255.f, c[1]/255.f, c[2]/255.f, c[3]/255.f); + } + else + { + glColor4ubv(c); + } +} + + + + void LLRender::debugTexUnits(void) { LL_INFOS("TextureUnit") << "Active TexUnit: " << mCurrTextureUnitIndex << LL_ENDL; |