summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorGraham Madarasz (Graham) <graham@lindenlab.com>2013-05-03 08:22:50 -0700
committerGraham Madarasz (Graham) <graham@lindenlab.com>2013-05-03 08:22:50 -0700
commit419a06036b8ec172bdfa91ab7f1f7691cdbdb2ca (patch)
treea243fe2babf2772fd2b71fd40f2c8b5f90378ef4 /indra
parent735d19eeae4a818ddeeb061e6622070d5ec94e0d (diff)
parentf1975f0fe9d09b0c9cffa94dad31de2c9f0d4849 (diff)
Merge with vwr-dev-mat
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llface.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 0226efa944..879dbf8470 100755
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1098,6 +1098,12 @@ bool LLFace::canRenderAsMask()
return false;
}
+ LLMaterial* mat = te->getMaterialParams();
+ if (mat && mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_BLEND)
+ {
+ return false;
+ }
+
if ((te->getColor().mV[3] == 1.0f) && // can't treat as mask if we have face alpha
(te->getGlow() == 0.f) && // glowing masks are hard to implement - don't mask
getTexture()->getIsAlphaMask()) // texture actually qualifies for masking (lazily recalculated but expensive)
@@ -1626,8 +1632,8 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
bool tex_anim = false;
- LLVOVolume* vobj = (LLVOVolume*) (LLViewerObject*) mVObjp;
- tex_mode = vobj->mTexAnimMode;
+ LLVOVolume* vobj = (LLVOVolume*) (LLViewerObject*) mVObjp;
+ tex_mode = vobj->mTexAnimMode;
if (vobj->mTextureAnimp)
{ //texture animation is in play, override specular and normal map tex coords with diffuse texcoords
@@ -1650,7 +1656,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
do_xform = false;
}
-
+
if (getVirtualSize() >= MIN_TEX_ANIM_SIZE)
{ //don't override texture transform during tc bake
tex_mode = 0;