summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolmorph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltoolmorph.cpp')
-rw-r--r--indra/newview/lltoolmorph.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index a545d32d12..11dd26309e 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -192,17 +192,20 @@ void LLVisualParamHint::preRender(bool clear_depth)
gAgentAvatarp->updateGeometry(gAgentAvatarp->mDrawable);
gAgentAvatarp->updateLOD();
- if (gAgentAvatarp->mDrawable->isState(LLDrawable::REBUILD_GEOMETRY))
+ if (gAgentAvatarp->mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)
+ || gAgentAvatarp->mDirtyMesh > 0)
{
- LL_WARNS_ONCE("ParamHint") << "preRender: clearing REBUILD_GEOMETRY after updateGeometry/updateLOD"
+ // updateLOD marks meshes for an update.
+ LL_DEBUGS("ParamHint") << "preRender: updateMeshData"
<< " param=" << mVisualParam->getName()
<< " dirtyMesh=" << gAgentAvatarp->mDirtyMesh
+ << " rebuildGeom=" << gAgentAvatarp->mDrawable->isState(LLDrawable::REBUILD_GEOMETRY)
<< LL_ENDL;
- // Clear REBUILD_GEOMETRY so that renderSkinned inside generateImpostor
+ // Clear states and force update so that renderSkinned inside generateImpostor
// does not re-run updateMeshData() with a partially consistent mesh state,
// which would reassign mFace pointers on some meshes while others are
// mid-draw with stale vertex offsets.
- gAgentAvatarp->mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY);
+ gAgentAvatarp->updateMeshData();
}
}
else