diff options
author | prep <prep@lindenlab.com> | 2010-12-06 17:15:56 -0500 |
---|---|---|
committer | prep <prep@lindenlab.com> | 2010-12-06 17:15:56 -0500 |
commit | cb8dbaf0ef0c66294440aa209997de1a8bce382d (patch) | |
tree | 71478098d2cb5bdb70297474d07df85e5fbf5248 /indra | |
parent | 40e3f15988a2c4ed99673f1f4ea449bab179048a (diff) |
Fix for SH-542
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llvoavatar.h | 1 | ||||
-rw-r--r-- | indra/newview/llvoavatarself.cpp | 1 |
3 files changed, 20 insertions, 0 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 34345f2471..f868797a58 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5974,6 +5974,24 @@ void LLVOAvatar::resetHUDAttachments() } } +void LLVOAvatar::rebuildRiggedAttachments( void ) +{ + for ( attachment_map_t::iterator iter = mAttachmentPoints.begin(); iter != mAttachmentPoints.end(); ++iter ) + { + LLViewerJointAttachment* pAttachment = iter->second; + LLViewerJointAttachment::attachedobjs_vec_t::iterator attachmentIterEnd = pAttachment->mAttachedObjects.end(); + + for ( LLViewerJointAttachment::attachedobjs_vec_t::iterator attachmentIter = pAttachment->mAttachedObjects.begin(); + attachmentIter != attachmentIterEnd; ++attachmentIter) + { + const LLViewerObject* pAttachedObject = *attachmentIter; + if ( pAttachment && pAttachedObject->mDrawable.notNull() ) + { + gPipeline.markRebuild(pAttachedObject->mDrawable); + } + } + } +} //----------------------------------------------------------------------------- // detachObject() //----------------------------------------------------------------------------- diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 833c30d6db..2e41940f28 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -690,6 +690,7 @@ public: protected:
LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);
void lazyAttach();
+ void rebuildRiggedAttachments( void );
//--------------------------------------------------------------------
// Map of attachment points, by ID
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 5054aa3c9e..935bd4a588 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -625,6 +625,7 @@ BOOL LLVOAvatarSelf::updateCharacter(LLAgent &agent) mScreenp->updateWorldMatrixChildren(); resetHUDAttachments(); } + LLVOAvatar::rebuildRiggedAttachments(); return LLVOAvatar::updateCharacter(agent); } |