From 80a59a6dddf4da82f46edc4e2ecd0a46ee008d8d Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Thu, 12 Mar 2020 09:49:40 -0400 Subject: [PATCH] Reduce a few expensive getAvatar() calls --- indra/newview/lldrawable.cpp | 7 ++++--- indra/newview/llviewerobject.cpp | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index 8c6cbc020b7..76f6a76f049 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -909,15 +909,16 @@ void LLDrawable::updateDistance(LLCamera& camera, bool force_update) // MAINT-7926 Handle volumes in an animated object as a special case // SL-937: add dynamic box handling for rigged mesh on regular avatars. //if (volume->getAvatar() && volume->getAvatar()->isControlAvatar()) - if (volume->getAvatar()) + LLVOAvatar* avatarp = volume->getAvatar(); + if (avatarp) { - const LLVector3* av_box = volume->getAvatar()->getLastAnimExtents(); + const LLVector3* av_box = avatarp->getLastAnimExtents(); LLVector3d cam_pos = gAgent.getPosGlobalFromAgent(LLViewerCamera::getInstance()->getOrigin()); LLVector3 cam_region_pos = LLVector3(cam_pos - volume->getRegion()->getOriginGlobal()); LLVector3 cam_to_box_offset = point_to_box_offset(cam_region_pos, av_box); mDistanceWRTCamera = llmax(0.01f, ll_round(cam_to_box_offset.magVec(), 0.01f)); - LL_DEBUGS("DynamicBox") << volume->getAvatar()->getFullname() + LL_DEBUGS("DynamicBox") << avatarp->getFullname() << " pos (ignored) " << pos << " cam pos " << cam_pos << " cam region pos " << cam_region_pos diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 336261eb4f0..06ad5212d8d 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -4328,7 +4328,7 @@ const LLVector3 LLViewerObject::getRenderPosition() const } } LLVOAvatar* avatar = getAvatar(); - if ((avatar) && !getControlAvatar()) + if ((avatar) && !cav) { return avatar->getPositionAgent(); } -- GitLab