diff options
| author | Euclid Linden <euclid@lindenlab.com> | 2022-05-26 22:36:03 +0000 |
|---|---|---|
| committer | Euclid Linden <euclid@lindenlab.com> | 2022-05-26 22:36:03 +0000 |
| commit | 69aef3a80627e0924de098bd558dd3eb8ed9ba37 (patch) | |
| tree | aec974cfa30a841599d2f927aec287482a4a3c08 /indra/newview/llvoavatar.cpp | |
| parent | 3b3d3d88d1755ac08c7d22721fa3fe1657f7c5fd (diff) | |
| parent | 78c6c341c5c068878da3dd851acf36f73a03178d (diff) | |
Merged in DV559-merge-6.6.1 (pull request #997)
DRTVWR-559 merge up to release v6.6.1
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index ccb1662139..314c22eb6c 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2809,6 +2809,7 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update) // update attachments positions if (detailed_update) { + U32 draw_order = 0; for (attachment_map_t::iterator iter = mAttachmentPoints.begin(); iter != mAttachmentPoints.end(); ++iter) @@ -2847,9 +2848,17 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update) } } - - attached_object->mDrawable->makeActive(); - attached_object->mDrawable->updateXform(TRUE); + // if selecting any attachments, update all of them as non-damped + if (LLSelectMgr::getInstance()->getSelection()->getObjectCount() && LLSelectMgr::getInstance()->getSelection()->isAttachment()) + { + gPipeline.updateMoveNormalAsync(attached_object->mDrawable); + } + else + { + // Note: SL-17415; While most objects follow joints, + // some objects get position updates from server + gPipeline.updateMoveDampedAsync(attached_object->mDrawable); + } // override_bbox calls movePartition() and getSpatialPartition(), // so bridge might no longer be valid, get it again. @@ -2867,6 +2876,13 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update) bridge->setState(LLDrawable::MOVE_UNDAMPED); bridge->updateMove(); bridge->setState(LLDrawable::EARLY_MOVE); + + LLSpatialGroup* group = attached_object->mDrawable->getSpatialGroup(); + if (group) + { //set draw order of group + group->mAvatarp = this; + group->mRenderOrder = draw_order++; + } } } |
