diff options
| author | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-07-08 21:40:19 +0300 |
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-07-09 13:46:52 +0300 |
| commit | 2957421ccf58d57b7569fc46913e2787f41c655a (patch) | |
| tree | 3623e299cfe3edf692c3a37ebfcfeb93acb3910a | |
| parent | 05ee4d295c2fa7fbc34aa82354c424b017558759 (diff) | |
#5981 Fix viewer scale interpolation not finishing
Interpolation actually finished, but object wasn't rebuilt properly.
| -rw-r--r-- | indra/newview/lldrawable.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index da9378ad12..18123e07a8 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -664,10 +664,15 @@ F32 LLDrawable::updateXform(bool undamped) // snap to final position (only if no target omega is applied) dist_squared = 0.0f; //set target scale here, because of dist_squared = 0.0f remove object from move list - mCurrentScale = target_scale; - - if (getVOVolume() && !isRoot()) - { //child prim snapping to some position, needs a rebuild + if (mCurrentScale != target_scale) + { + mCurrentScale = target_scale; + // Final scale change needs a rebuild + gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION); + } + else if (getVOVolume() && !isRoot()) + { + //child prim snapping to some position, needs a rebuild gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION); } } |
