summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawpoolalpha.cpp
diff options
context:
space:
mode:
authorGeenz <geenz@geenzo.com>2013-01-11 06:37:21 -0500
committerGeenz <geenz@geenzo.com>2013-01-11 06:37:21 -0500
commiteda11a25a465dd87b187f63da661f2ce02925deb (patch)
treee77e33b4ee7b6f18f314576948be1560c3640ce9 /indra/newview/lldrawpoolalpha.cpp
parente8f6734d67ce1f61c5745bc1b25a9e5d1d599aca (diff)
Initial (largely complete) gamma correct rendering implementation.
Diffstat (limited to 'indra/newview/lldrawpoolalpha.cpp')
-rw-r--r--indra/newview/lldrawpoolalpha.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index 313b310e1e..33615eb075 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -240,6 +240,12 @@ void LLDrawPoolAlpha::render(S32 pass)
{
fullbright_shader->bind();
fullbright_shader->setMinimumAlpha(0.33f);
+ if (LLPipeline::sRenderingHUDs || !LLPipeline::sRenderDeferred)
+ {
+ fullbright_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0f);
+ } else {
+ fullbright_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2f);
+ }
}
pushBatches(LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK, getVertexDataMask() | LLVertexBuffer::MAP_TEXTURE_INDEX, TRUE, TRUE);
//LLGLSLShader::bindNoShader();
@@ -423,6 +429,17 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
if (use_shaders)
{
target_shader = fullbright_shader;
+ if (LLPipeline::sRenderDeferred)
+ {
+ if (params.mFace->getViewerObject()->isHUDAttachment())
+ {
+ target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0);
+ } else {
+ target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 2.2);
+ }
+ } else {
+ target_shader->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0);
+ }
}
else
{