Conflicts:
	indra/llrender/llrendertarget.cpp
	indra/newview/lloverlaybar.cpp
This commit is contained in:
Siana Gearz
2012-08-09 02:11:14 +02:00
82 changed files with 2314 additions and 1580 deletions

View File

@@ -1180,6 +1180,7 @@ LLVOAvatar::~LLVOAvatar()
lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl;
mRoot.removeAllChildren();
mJointMap.clear();
deleteAndClearArray(mSkeleton);
deleteAndClearArray(mCollisionVolumes);
@@ -2341,6 +2342,7 @@ void LLVOAvatar::buildCharacter()
// remove all of mRoot's children
//-------------------------------------------------------------------------
mRoot.removeAllChildren();
mJointMap.clear();
mIsBuilt = FALSE;
//-------------------------------------------------------------------------
@@ -5888,7 +5890,20 @@ const LLUUID& LLVOAvatar::getID() const
// RN: avatar joints are multi-rooted to include screen-based attachments
LLJoint *LLVOAvatar::getJoint( const std::string &name )
{
LLJoint* jointp = mRoot.findJoint(name);
joint_map_t::iterator iter = mJointMap.find(name);
LLJoint* jointp = NULL;
if (iter == mJointMap.end() || iter->second == NULL)
{ //search for joint and cache found joint in lookup table
jointp = mRoot.findJoint(name);
mJointMap[name] = jointp;
}
else
{ //return cached pointer
jointp = iter->second;
}
return jointp;
}