summaryrefslogtreecommitdiff
path: root/indra/newview/llface.cpp
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2012-07-17 13:21:36 -0400
committerOz Linden <oz@lindenlab.com>2012-07-17 13:21:36 -0400
commit3803a5b5ae4e6937f0c09099a19af44272e09d81 (patch)
tree8592971fe07c9229f33397fb8279b92ad40de228 /indra/newview/llface.cpp
parent509408f393b8eb58799678adde801675a4d4d600 (diff)
parentc906d640048645df2e4702914ca8ec46add34e6d (diff)
pull back fixes for 3.3.4-beta4
Diffstat (limited to 'indra/newview/llface.cpp')
-rw-r--r--indra/newview/llface.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 08b5c27a68..8d0664770b 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -317,7 +317,20 @@ void LLFace::setTexture(LLViewerTexture* tex)
void LLFace::dirtyTexture()
{
- gPipeline.markTextured(getDrawable());
+ LLDrawable* drawablep = getDrawable();
+
+ if (mVObjp.notNull() && mVObjp->getVolume() &&
+ mTexture.notNull() && mTexture->getComponents() == 4)
+ { //dirty texture on an alpha object should be treated as an LoD update
+ LLVOVolume* vobj = drawablep->getVOVolume();
+ if (vobj)
+ {
+ vobj->mLODChanged = TRUE;
+ }
+ gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_VOLUME, FALSE);
+ }
+
+ gPipeline.markTextured(drawablep);
}
void LLFace::switchTexture(LLViewerTexture* new_texture)