From 2957421ccf58d57b7569fc46913e2787f41c655a Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> Date: Wed, 8 Jul 2026 21:40:19 +0300 Subject: #5981 Fix viewer scale interpolation not finishing Interpolation actually finished, but object wasn't rebuilt properly. --- indra/newview/lldrawable.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'indra/newview/lldrawable.cpp') 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); } } -- cgit v1.3