summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-07-08 21:40:19 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-07-09 13:46:52 +0300
commit2957421ccf58d57b7569fc46913e2787f41c655a (patch)
tree3623e299cfe3edf692c3a37ebfcfeb93acb3910a
parent05ee4d295c2fa7fbc34aa82354c424b017558759 (diff)
#5981 Fix viewer scale interpolation not finishing
Interpolation actually finished, but object wasn't rebuilt properly.
-rw-r--r--indra/newview/lldrawable.cpp13
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);
}
}