diff options
-rw-r--r-- | indra/newview/llcontrolavatar.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llselectmgr.cpp | 14 | ||||
-rw-r--r-- | indra/newview/llselectmgr.h | 1 | ||||
-rw-r--r-- | indra/newview/llviewermessage.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llviewerobject.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llvoavatar.cpp | 12 |
6 files changed, 12 insertions, 24 deletions
diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp index afa6be188d..7600bc6959 100644 --- a/indra/newview/llcontrolavatar.cpp +++ b/indra/newview/llcontrolavatar.cpp @@ -52,7 +52,8 @@ LLControlAvatar::~LLControlAvatar() // virtual void LLControlAvatar::initInstance() { - // AXON - potential optimizations here - avoid creating system avatar mesh since it's not used. + // AXON - potential optimizations here - avoid creating system + // avatar mesh since it's not used. LLVOAvatar::initInstance(); } diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 473d7e5b5f..2e489fbc09 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -691,7 +691,7 @@ bool LLSelectMgr::enableLinkObjects() new_value = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly); } } - if (!LLSelectMgr::getInstance()->getSelection()->checkAnimatedObjectEstTris()) + if (!LLSelectMgr::getInstance()->getSelection()->checkAnimatedObjectLinkable()) { new_value = false; } @@ -7451,17 +7451,7 @@ bool LLObjectSelection::checkAnimatedObjectEstTris() bool LLObjectSelection::checkAnimatedObjectLinkable() { - LL_ERRS() << "Not using this restriction" << LL_ENDL; - // Can't link if any of the roots is currently an animated object - for (root_iterator iter = root_begin(); iter != root_end(); ++iter) - { - LLViewerObject* objectp = (*iter)->getObject(); - if (objectp && objectp->isAnimatedObject()) - { - return false; - } - } - return true; + return checkAnimatedObjectEstTris(); } bool LLObjectSelection::applyToRootObjects(LLSelectedObjectFunctor* func, bool firstonly) diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index fcbfd5fccd..eaeeba576c 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -339,7 +339,6 @@ public: // returns TRUE is any node is currenly worn as an attachment BOOL isAttachment(); - // AXON validate a potential link against limits bool checkAnimatedObjectEstTris(); bool checkAnimatedObjectLinkable(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 7260d7f928..ae9798b5d5 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5126,8 +5126,7 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data) avatarp->mRootVolp->recursiveMarkForUpdate(TRUE); } } -#else - // AXON REMOVE BEFORE RELEASE? +#else// AXON REMOVE BEFORE RELEASE? // In this block we switch back into static mode when no animations are // playing. This is mostly useful for debugging. if (num_blocks > 0 && !avatarp->mPlaying) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 7d370aff35..6fff3b0afd 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -3609,8 +3609,7 @@ F32 LLViewerObject::recursiveGetEstTrianglesMax() const S32 LLViewerObject::getAnimatedObjectMaxTris() const { S32 max_tris = 0; - // AXON REMOVE AFTER SERVER TESTING DONE - if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits")) + if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits")) // AXON REMOVE AFTER SERVER TESTING DONE { max_tris = S32_MAX; } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index ea7214d937..b1ae7f543a 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1976,9 +1976,8 @@ void LLVOAvatar::resetSkeleton(bool reset_animations) //----------------------------------------------------------------------------- void LLVOAvatar::releaseMeshData() { - // AXON what should we be doing here for control avs? Why are - // dummies treated differently in the first place? - if (sInstances.size() < AVATAR_RELEASE_THRESHOLD || mIsDummy) + if (sInstances.size() < AVATAR_RELEASE_THRESHOLD || + (mIsDummy && !isControlAvatar())) { return; } @@ -2781,8 +2780,8 @@ void LLVOAvatar::idleUpdateLoadingEffect() LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK | LLPartData::LL_PART_TARGET_POS_MASK ); - // AXON skip cloud effects for dummy avs as well - if (!mIsDummy && !isTooComplex()) // do not generate particles for overly-complex avatars + // do not generate particles for dummy or overly-complex avatars + if (!mIsDummy && !isTooComplex()) { setParticleSource(particle_parameters, getID()); } @@ -4393,7 +4392,8 @@ void LLVOAvatar::updateVisibility() } else { - if (mMeshValid && mMeshInvisibleTime.getElapsedTimeF32() > TIME_BEFORE_MESH_CLEANUP) + if (mMeshValid && + (isControlAvatar() || mMeshInvisibleTime.getElapsedTimeF32() > TIME_BEFORE_MESH_CLEANUP)) { releaseMeshData(); } |