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/llvovolume.cpp | |
| parent | e3e1d42ab3021cf6e6ac68fff54c9185fd3a0ad1 (diff) | |
| parent | 0b02bf5d262fe9a6de968686420c4d525ac04077 (diff) | |
Merge remote-tracking branch 'remotes/origin/DRTVWR-559' into davep/SL-19842
Diffstat (limited to 'indra/newview/llvovolume.cpp')
| -rw-r--r-- | indra/newview/llvovolume.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index b521dcba5a..34f55d3341 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -5102,6 +5102,28 @@ LLControlAVBridge::LLControlAVBridge(LLDrawable* drawablep, LLViewerRegion* regi mPartitionType = LLViewerRegion::PARTITION_CONTROL_AV; } +void LLControlAVBridge::updateSpatialExtents() +{ + LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWABLE + + LLControlAvatar* controlAvatar = getVObj()->getControlAvatar(); + + LLSpatialGroup* root = (LLSpatialGroup*)mOctree->getListener(0); + + bool rootWasDirty = root->isDirty(); + + super::updateSpatialExtents(); // root becomes non-dirty here + + // SL-18251 "On-screen animesh characters using pelvis offset animations + // disappear when root goes off-screen" + // + // Expand extents to include Control Avatar placed outside of the bounds + if (controlAvatar && (rootWasDirty || controlAvatar->mPlaying)) + { + root->expandExtents(controlAvatar->mDrawable->getSpatialExtents(), *mDrawable->getXform()); + } +} + bool can_batch_texture(LLFace* facep) { if (facep->getTextureEntry()->getBumpmap()) |
