summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.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/llvovolume.cpp
parent509408f393b8eb58799678adde801675a4d4d600 (diff)
parentc906d640048645df2e4702914ca8ec46add34e6d (diff)
pull back fixes for 3.3.4-beta4
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rw-r--r--indra/newview/llvovolume.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 082818b112..f31f2320ba 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1879,7 +1879,8 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
}
else if (color != tep->getColor())
{
- if (color.mV[3] != tep->getColor().mV[3])
+ F32 old_alpha = tep->getColor().mV[3];
+ if (color.mV[3] != old_alpha)
{
gPipeline.markTextured(mDrawable);
}
@@ -1889,6 +1890,12 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
// These should only happen on updates which are not the initial update.
mDrawable->setState(LLDrawable::REBUILD_COLOR);
dirtyMesh();
+
+ if (old_alpha >= 1.f || color.mV[3] <= 0.f)
+ { //treat this alpha change as an LoD update since render batches will need to get rebuilt
+ mLODChanged = TRUE;
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
+ }
}
}