diff options
| author | RunitaiLinden <davep@lindenlab.com> | 2023-09-11 11:51:20 -0500 |
|---|---|---|
| committer | RunitaiLinden <davep@lindenlab.com> | 2023-09-11 11:51:20 -0500 |
| commit | 74940194fa5cd4c5182f141ef262e5568156bdce (patch) | |
| tree | 8d3a8e779d34a94b4df3dc4517dfa598b4b98367 /indra/newview/lldrawable.cpp | |
| parent | e3e1d42ab3021cf6e6ac68fff54c9185fd3a0ad1 (diff) | |
| parent | 0b02bf5d262fe9a6de968686420c4d525ac04077 (diff) | |
Merge remote-tracking branch 'remotes/origin/DRTVWR-559' into davep/SL-19842
Diffstat (limited to 'indra/newview/lldrawable.cpp')
| -rw-r--r-- | indra/newview/lldrawable.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index 6b9c159291..ac80f1f73b 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -760,6 +760,19 @@ void LLDrawable::movePartition() if (part) { part->move(this, getSpatialGroup()); + + // SL-18251 "On-screen animesh characters using pelvis offset animations + // disappear when root goes off-screen" + // + // Update extents of the root node when Control Avatar changes it's bounds + if (mRenderType == LLPipeline::RENDER_TYPE_CONTROL_AV && isRoot()) + { + LLControlAvatar* controlAvatar = dynamic_cast<LLControlAvatar*>(getVObj().get()); + if (controlAvatar && controlAvatar->mControlAVBridge) + { + ((LLSpatialGroup*)controlAvatar->mControlAVBridge->mOctree->getListener(0))->setState(LLViewerOctreeGroup::DIRTY); + } + } } } @@ -1206,10 +1219,11 @@ LLSpatialPartition* LLDrawable::getSpatialPartition() { setSpatialBridge(new LLHUDBridge(this, getRegion())); } - else if (mVObjp->isAnimatedObject() && mVObjp->getControlAvatar()) - { - setSpatialBridge(new LLControlAVBridge(this, getRegion())); - } + else if (mVObjp->isAnimatedObject() && mVObjp->getControlAvatar()) + { + setSpatialBridge(new LLControlAVBridge(this, getRegion())); + mVObjp->getControlAvatar()->mControlAVBridge = (LLControlAVBridge*)getSpatialBridge(); + } // check HUD first, because HUD is also attachment else if (mVObjp->isAttachment()) { |
