summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2012-05-29 13:29:03 -0500
committerDave Parks <davep@lindenlab.com>2012-05-29 13:29:03 -0500
commit8c5bf1d0bac65053469888c27523e6bf30ee53cf (patch)
treee1006d7cf6a8fdcf4c86c279a5784112496f351f
parente3a5125b41def6dbc27c6852f48b45da7377bb50 (diff)
MAINT-775 Fix for regression where rigged attachments get distorted on region crossing or teleport.
-rw-r--r--indra/newview/llvovolume.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index ba117ed977..9d6a12cc6e 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -4682,7 +4682,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
{
LLDrawable* drawablep = *drawable_iter;
- if (!drawablep->isDead() && drawablep->isState(LLDrawable::REBUILD_ALL) )
+ if (!drawablep->isDead() && drawablep->isState(LLDrawable::REBUILD_ALL) && !drawablep->isState(LLDrawable::RIGGED) )
{
LLVOVolume* vobj = drawablep->getVOVolume();
vobj->preRebuild();
@@ -4701,6 +4701,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
LLVertexBuffer* buff = face->getVertexBuffer();
if (buff)
{
+ llassert(!face->isState(LLFace::RIGGED));
face->getGeometryVolume(*volume, face->getTEOffset(),
vobj->getRelativeXform(), vobj->getRelativeXformInvTrans(), face->getGeomIndex());
@@ -5066,6 +5067,8 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
U32 te_idx = facep->getTEOffset();
+ llassert(!facep->isState(LLFace::RIGGED));
+
facep->getGeometryVolume(*volume, te_idx,
vobj->getRelativeXform(), vobj->getRelativeXformInvTrans(), index_offset);