diff options
| author | Dave Parks <davep@lindenlab.com> | 2012-07-16 14:31:15 -0500 |
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2012-07-16 14:31:15 -0500 |
| commit | ccac47c1a71884c04a00d95358770b170f346fbd (patch) | |
| tree | 0cf6107160c05edd6620e5f1f618416aae1da446 /indra/newview/llface.cpp | |
| parent | f5254d532bff2307da3a4f07adea6c58447c8aa6 (diff) | |
MAINT-1223 Fix for alpha updates not triggering LoD updates.
Diffstat (limited to 'indra/newview/llface.cpp')
| -rw-r--r-- | indra/newview/llface.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 2d84c5d7de..373b1930f5 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -326,7 +326,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) |
