summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx Linden <nyx@lindenlab.com>2012-10-19 21:49:26 +0000
committerNyx Linden <nyx@lindenlab.com>2012-10-19 21:49:26 +0000
commit3ac3f76fc36332e02551ed68c361c9808a8459e1 (patch)
tree99380df94911d297f2f2932961a481d96e1f0daf
parenta55fff2c60eae842c99a95765b28e894edb9ddfb (diff)
FIX: fixed broken baked texture rendering in lltexlayer, by enforcing correct gl state in lltexlayer.cpp
FIX: updated appearance utility source package
-rw-r--r--autobuild.xml4
-rw-r--r--indra/llappearance/lltexlayer.cpp41
2 files changed, 26 insertions, 19 deletions
diff --git a/autobuild.xml b/autobuild.xml
index cb86a21880..415858d274 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1290,9 +1290,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>6d3959428402ef091863ef2a163ec629</string>
+ <string>57598f72d41ea0f3c2b4ed4804856636</string>
<key>url</key>
- <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llappearanceutility-source/rev/265640/arch/Linux/installer/llappearanceutility_source-0.1-linux-20121006.tar.bz2</string>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llappearanceutility-source/rev/266096/arch/Linux/installer/llappearanceutility_source-0.1-linux-20121019.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
index b8c8228f85..c44799f40d 100644
--- a/indra/llappearance/lltexlayer.cpp
+++ b/indra/llappearance/lltexlayer.cpp
@@ -148,6 +148,8 @@ BOOL LLTexLayerSetBuffer::renderTexLayerSet()
bool use_shaders = LLGLSLShader::sNoFixedFunction;
+ LLGLEnable(GL_ALPHA_TEST);
+
if (use_shaders)
{
gAlphaMaskProgram.bind();
@@ -155,7 +157,7 @@ BOOL LLTexLayerSetBuffer::renderTexLayerSet()
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
LLVertexBuffer::unbind();
@@ -395,6 +397,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
LLGLSUIDefault gls_ui;
LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE);
gGL.setColorMask(true, true);
+ LLGLEnable(GL_ALPHA_TEST);
// clear buffer area to ensure we don't pick up UI elements
{
@@ -406,7 +409,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -421,7 +424,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
@@ -455,7 +458,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -471,7 +474,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
@@ -564,6 +567,7 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height,
gGL.setColorMask(false, true);
gGL.setSceneBlendType(LLRender::BT_REPLACE);
+ LLGLEnable(GL_ALPHA_TEST);
// (Optionally) replace alpha with a single component image from a tga file.
if (!info->mStaticAlphaFileName.empty())
@@ -592,7 +596,7 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height,
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -607,7 +611,7 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height,
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
@@ -1117,6 +1121,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
//gPipeline.disableLights();
stop_glerror();
glDisable(GL_LIGHTING);
+ glEnable(GL_ALPHA_TEST);
stop_glerror();
bool use_shaders = LLGLSLShader::sNoFixedFunction;
@@ -1211,7 +1216,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
}
@@ -1232,7 +1237,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
@@ -1274,7 +1279,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -1286,7 +1291,7 @@ BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
@@ -1376,6 +1381,7 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
gGL.flush();
bool use_shaders = LLGLSLShader::sNoFixedFunction;
+ LLGLEnable(GL_ALPHA_TEST);
if( !getInfo()->mStaticImageFileName.empty() )
{
@@ -1389,7 +1395,7 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->bind(tex, TRUE);
@@ -1401,7 +1407,7 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
}
else
@@ -1423,7 +1429,7 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
gGL.getTexUnit(0)->bind(tex);
@@ -1436,7 +1442,7 @@ BOOL LLTexLayer::blendAlphaTexture(S32 x, S32 y, S32 width, S32 height)
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
}
}
@@ -1459,6 +1465,7 @@ BOOL LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
llassert( !mParamAlphaList.empty() );
bool use_shaders = LLGLSLShader::sNoFixedFunction;
+ LLGLEnable(GL_ALPHA_TEST);
if (use_shaders)
{
@@ -1466,7 +1473,7 @@ BOOL LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.0f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.0f);
}
@@ -1551,7 +1558,7 @@ BOOL LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
}
else
{
- glAlphaFunc(GL_GEQUAL, 0.004f);
+ gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.004f);
}
LLGLSUIDefault gls_ui;