diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-10-23 20:30:09 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-10-26 18:47:12 +0200 | 
| commit | 99d2ae5e021310ca09af4f0377c5609d007ee52e (patch) | |
| tree | b3ed74b9af207a79ed7b12bd47916873590f491c | |
| parent | 61e27e0f6c333af6f83705492b7c0d176912f986 (diff) | |
SL-14190 sAvatarDictionary was not used
| -rw-r--r-- | indra/llappearance/llavatarappearance.cpp | 4 | ||||
| -rw-r--r-- | indra/llappearance/llavatarappearancedefines.cpp | 14 | ||||
| -rw-r--r-- | indra/llappearance/llavatarappearancedefines.h | 8 | ||||
| -rw-r--r-- | indra/llappearance/lltexlayer.cpp | 2 | ||||
| -rw-r--r-- | indra/llappearance/llwearable.cpp | 2 | ||||
| -rw-r--r-- | indra/llappearance/llwearabledata.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerwearable.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 60 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 78 | 
9 files changed, 91 insertions, 89 deletions
| diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp index f7fbb6fda1..c4c3345dec 100644 --- a/indra/llappearance/llavatarappearance.cpp +++ b/indra/llappearance/llavatarappearance.cpp @@ -202,7 +202,7 @@ LLAvatarAppearance::LLAvatarAppearance(LLWearableData* wearable_data) :  		mBakedTextureDatas[i].mIsLoaded = false;  		mBakedTextureDatas[i].mIsUsed = false;  		mBakedTextureDatas[i].mMaskTexName = 0; -		mBakedTextureDatas[i].mTextureIndex = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::bakedToLocalTextureIndex((LLAvatarAppearanceDefines::EBakedTextureIndex)i); +		mBakedTextureDatas[i].mTextureIndex = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->bakedToLocalTextureIndex((LLAvatarAppearanceDefines::EBakedTextureIndex)i);  	}  } @@ -999,7 +999,7 @@ BOOL LLAvatarAppearance::loadAvatar()  	{  		LLAvatarXmlInfo::LLAvatarMorphInfo *info = *iter; -		EBakedTextureIndex baked = LLAvatarAppearanceDictionary::findBakedByRegionName(info->mRegion);  +		EBakedTextureIndex baked = LLAvatarAppearanceDictionary::getInstance()->findBakedByRegionName(info->mRegion);  		if (baked != BAKED_NUM_INDICES)  		{  			LLVisualParam* morph_param; diff --git a/indra/llappearance/llavatarappearancedefines.cpp b/indra/llappearance/llavatarappearancedefines.cpp index c72943bb82..0039f98af8 100644 --- a/indra/llappearance/llavatarappearancedefines.cpp +++ b/indra/llappearance/llavatarappearancedefines.cpp @@ -258,19 +258,17 @@ LLAvatarAppearanceDictionary::BakedEntry::BakedEntry(ETextureIndex tex_index,  	}  } -// static  ETextureIndex LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(EBakedTextureIndex index)  { -	return LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(index)->mTextureIndex; +	return getBakedTexture(index)->mTextureIndex;  } -// static  EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByRegionName(std::string name)  {  	U8 index = 0;  	while (index < BAKED_NUM_INDICES)  	{ -		const BakedEntry *be = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex) index); +		const BakedEntry *be = getBakedTexture((EBakedTextureIndex) index);  		if (be && be->mName.compare(name) == 0)  		{  			// baked texture found @@ -282,16 +280,15 @@ EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByRegionName(std::stri  	return BAKED_NUM_INDICES;  } -// static   EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByImageName(std::string name)  {  	U8 index = 0;  	while (index < BAKED_NUM_INDICES)  	{ -		const BakedEntry *be = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex) index); +		const BakedEntry *be = getBakedTexture((EBakedTextureIndex) index);  		if (be)  		{ -			const TextureEntry *te = LLAvatarAppearanceDictionary::getInstance()->getTexture(be->mTextureIndex); +			const TextureEntry *te = getTexture(be->mTextureIndex);  			if (te && te->mDefaultImageName.compare(name) == 0)  			{  				// baked texture found @@ -304,10 +301,9 @@ EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByImageName(std::strin  	return BAKED_NUM_INDICES;  } -// static  LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIndex index )  { -	return getInstance()->getTexture(index)->mWearableType; +	return getTexture(index)->mWearableType;  }  // static diff --git a/indra/llappearance/llavatarappearancedefines.h b/indra/llappearance/llavatarappearancedefines.h index 5663d24293..18d80b3e2e 100644 --- a/indra/llappearance/llavatarappearancedefines.h +++ b/indra/llappearance/llavatarappearancedefines.h @@ -235,14 +235,14 @@ public:  	//--------------------------------------------------------------------  public:  	// Convert from baked texture to associated texture; e.g. BAKED_HEAD -> TEX_HEAD_BAKED -	static ETextureIndex 		bakedToLocalTextureIndex(EBakedTextureIndex t); +	ETextureIndex 		bakedToLocalTextureIndex(EBakedTextureIndex t);  	// find a baked texture index based on its name -	static EBakedTextureIndex 	findBakedByRegionName(std::string name); -	static EBakedTextureIndex 	findBakedByImageName(std::string name); +	EBakedTextureIndex 	findBakedByRegionName(std::string name); +	EBakedTextureIndex 	findBakedByImageName(std::string name);  	// Given a texture entry, determine which wearable type owns it. -	static LLWearableType::EType 		getTEWearableType(ETextureIndex index); +	LLWearableType::EType 		getTEWearableType(ETextureIndex index);  	static BOOL							isBakedImageId(const LLUUID& id);  	static EBakedTextureIndex			assetIdToBakedTextureIndex(const LLUUID& id); diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp index c90b11ae71..248214e7bc 100644 --- a/indra/llappearance/lltexlayer.cpp +++ b/indra/llappearance/lltexlayer.cpp @@ -979,7 +979,7 @@ LLWearableType::EType LLTexLayerInterface::getWearableType() const  		return type;  	} -	return LLAvatarAppearanceDictionary::getTEWearableType(te); +	return LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(te);  }  LLTexLayerInterface::ERenderPass LLTexLayerInterface::getRenderPass() const diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp index 6079913a8e..d12d166dca 100644 --- a/indra/llappearance/llwearable.cpp +++ b/indra/llappearance/llwearable.cpp @@ -606,7 +606,7 @@ void LLWearable::syncImages(te_map_t &src, te_map_t &dst)  	// Deep copy of src (copies only those tes that are current, filling in defaults where needed)  	for( S32 te = 0; te < TEX_NUM_INDICES; te++ )  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			te_map_t::const_iterator iter = src.find(te);  			LLUUID image_id; diff --git a/indra/llappearance/llwearabledata.cpp b/indra/llappearance/llwearabledata.cpp index 2bf3b9085b..bead125e2d 100644 --- a/indra/llappearance/llwearabledata.cpp +++ b/indra/llappearance/llwearabledata.cpp @@ -339,7 +339,7 @@ U32 LLWearableData::getWearableCount(const LLWearableType::EType type) const  U32 LLWearableData::getWearableCount(const U32 tex_index) const  { -	const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((LLAvatarAppearanceDefines::ETextureIndex)tex_index); +	const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((LLAvatarAppearanceDefines::ETextureIndex)tex_index);  	return getWearableCount(wearable_type);  } diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp index 2d7a0f920f..c2a5a53674 100644 --- a/indra/newview/llviewerwearable.cpp +++ b/indra/newview/llviewerwearable.cpp @@ -178,7 +178,7 @@ BOOL LLViewerWearable::isOldVersion() const  	S32 te_count = 0;  	for( S32 te = 0; te < TEX_NUM_INDICES; te++ )  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			te_count++;  			if( !is_in_map(mTEMap, te ) ) @@ -230,7 +230,7 @@ BOOL LLViewerWearable::isDirty() const  	for( S32 te = 0; te < TEX_NUM_INDICES; te++ )  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			te_map_t::const_iterator current_iter = mTEMap.find(te);  			if(current_iter != mTEMap.end()) @@ -276,7 +276,7 @@ void LLViewerWearable::setTexturesToDefaults()  {  	for( S32 te = 0; te < TEX_NUM_INDICES; te++ )  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			LLUUID id = getDefaultTextureImageID((ETextureIndex) te);  			LLViewerFetchedTexture * image = LLViewerTextureManager::getFetchedTexture( id ); @@ -331,7 +331,7 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)  	// Pull texture entries  	for( S32 te = 0; te < TEX_NUM_INDICES; te++ )  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			te_map_t::const_iterator iter = mTEMap.find(te);  			LLUUID image_id; @@ -424,7 +424,7 @@ void LLViewerWearable::copyDataFrom(const LLViewerWearable* src)  	// Deep copy of mTEMap (copies only those tes that are current, filling in defaults where needed)  	for (S32 te = 0; te < TEX_NUM_INDICES; te++)  	{ -		if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex) te) == mType) +		if (LLAvatarAppearanceDictionary::getInstance()->getTEWearableType((ETextureIndex) te) == mType)  		{  			te_map_t::const_iterator iter = src->mTEMap.find(te);  			LLUUID image_id; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 0aee4a3398..5d6f091110 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1025,15 +1025,15 @@ void LLVOAvatar::dumpBakedStatus()  		{  			LL_CONT << " Unbaked ("; -			for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -				 iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +			for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator iter = sAvatarDictionary->getBakedTextures().begin(); +				 iter != sAvatarDictionary->getBakedTextures().end();  				 ++iter)  			{  				const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = iter->second;  				const ETextureIndex index = baked_dict->mTextureIndex;  				if (!inst->isTextureDefined(index))  				{ -					LL_CONT << " " << (LLAvatarAppearanceDictionary::getInstance()->getTexture(index) ? LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mName : ""); +					LL_CONT << " " << (sAvatarDictionary->getTexture(index) ? sAvatarDictionary->getTexture(index)->mName : "");  				}  			}  			LL_CONT << " ) " << inst->getUnbakedPixelAreaRank(); @@ -1119,11 +1119,17 @@ void LLVOAvatar::initClass()      LLJoint::setDebugJointNames(gSavedSettings.getString("DebugAvatarJoints"));  	LLControlAvatar::sRegionChangedSlot = gAgent.addRegionChangedCallback(&LLControlAvatar::onRegionChanged); + +    // LLAvatarAppearanceDictionary is very freqently used in avatar's rendering, +    // to the point where overhead of current LLSingleton implementation notiecably +    // affects performance, so 'buffer' the value. +    sAvatarDictionary = LLAvatarAppearanceDictionary::getInstance();  }  void LLVOAvatar::cleanupClass()  { +    sAvatarDictionary = NULL;  }  // virtual @@ -5188,7 +5194,7 @@ void LLVOAvatar::collectLocalTextureUUIDs(std::set<LLUUID>& ids) const  {  	for (U32 texture_index = 0; texture_index < getNumTEs(); texture_index++)  	{ -		LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)texture_index); +		LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType((ETextureIndex)texture_index);  		U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);  		LLViewerFetchedTexture *imagep = NULL; @@ -5197,7 +5203,7 @@ void LLVOAvatar::collectLocalTextureUUIDs(std::set<LLUUID>& ids) const  			imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index, wearable_index), TRUE);  			if (imagep)  			{ -				const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)texture_index); +				const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = sAvatarDictionary->getTexture((ETextureIndex)texture_index);  				if (texture_dict && texture_dict->mIsLocalTexture)  				{  					ids.insert(imagep->getID()); @@ -5331,7 +5337,7 @@ void LLVOAvatar::updateTextures()  	mHasGrey = FALSE; // debug  	for (U32 texture_index = 0; texture_index < getNumTEs(); texture_index++)  	{ -		LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)texture_index); +		LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType((ETextureIndex)texture_index);  		U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);  		const LLTextureEntry *te = getTE(texture_index); @@ -5354,7 +5360,7 @@ void LLVOAvatar::updateTextures()  			imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index, wearable_index), TRUE);  			if (imagep)  			{ -				const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)texture_index); +				const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = sAvatarDictionary->getTexture((ETextureIndex)texture_index);  				const EBakedTextureIndex baked_index = texture_dict ? texture_dict->mBakedTextureIndex : EBakedTextureIndex::BAKED_NUM_INDICES;  				if (texture_dict && texture_dict->mIsLocalTexture)  				{ @@ -5529,7 +5535,7 @@ const std::string LLVOAvatar::getImageURL(const U8 te, const LLUUID &uuid)  		return url;  	} -	const LLAvatarAppearanceDictionary::TextureEntry* texture_entry = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)te); +	const LLAvatarAppearanceDictionary::TextureEntry* texture_entry = sAvatarDictionary->getTexture((ETextureIndex)te);  	if (texture_entry != NULL)  	{  		url = appearance_service_url + "texture/" + getID().asString() + "/" + texture_entry->mDefaultImageName + "/" + uuid.asString(); @@ -7564,8 +7570,8 @@ BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const  			break; // Do nothing  	} -	for (LLAvatarAppearanceDictionary::Textures::const_iterator tex_iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 tex_iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator tex_iter = sAvatarDictionary->getTextures().begin(); +		 tex_iter != sAvatarDictionary->getTextures().end();  		 ++tex_iter)  	{  		const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = tex_iter->second; @@ -7578,7 +7584,7 @@ BOOL LLVOAvatar::isWearingWearableType(LLWearableType::EType type) const  			if (texture_dict->mIsUsedByBakedTexture)  			{  				const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; -				return isTextureDefined(LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex); +				return isTextureDefined(sAvatarDictionary->getBakedTexture(baked_index)->mTextureIndex);  			}  			return FALSE;  		} @@ -8324,8 +8330,8 @@ void LLVOAvatar::updateMeshTextures()  	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = -			 LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +			 sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const EBakedTextureIndex baked_index = baked_iter->first; @@ -8503,7 +8509,7 @@ void LLVOAvatar::releaseComponentTextures()  	for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)  	{ -		const LLAvatarAppearanceDictionary::BakedEntry * bakedDicEntry = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index); +		const LLAvatarAppearanceDictionary::BakedEntry * bakedDicEntry = sAvatarDictionary->getBakedTexture((EBakedTextureIndex)baked_index);  		// skip if this is a skirt and av is not wearing one, or if we don't have a baked texture UUID  		if (!isTextureDefined(bakedDicEntry->mTextureIndex)  			&& ( (baked_index != BAKED_SKIRT) || isWearingWearableType(LLWearableType::WT_SKIRT) )) @@ -8522,8 +8528,8 @@ void LLVOAvatar::releaseComponentTextures()  void LLVOAvatar::dumpAvatarTEs( const std::string& context ) const  {	  	LL_DEBUGS("Avatar") << avString() << (isSelf() ? "Self: " : "Other: ") << context << LL_ENDL; -	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +		 iter != sAvatarDictionary->getTextures().end();  		 ++iter)  	{  		const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second; @@ -9272,8 +9278,8 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerFetchedTexture  					 self->mBakedTextureDatas[BAKED_HEAD].mTexLayerSet->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1);  					 maskData->mLastDiscardLevel = discard_level; */  			BOOL found_texture_id = false; -			for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -				 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +			for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +				 iter != sAvatarDictionary->getTextures().end();  				 ++iter)  			{ @@ -9404,7 +9410,7 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )  			}  			const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = -				LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i); +				sAvatarDictionary->getBakedTexture((EBakedTextureIndex)i);  			for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();  				 local_tex_iter != baked_dict->mLocalTextures.end();  				 ++local_tex_iter) @@ -9539,7 +9545,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara  				for (U8 te = 0; te < TEX_NUM_INDICES; te++)  				{ -					if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type) +					if (sAvatarDictionary->getTEWearableType((ETextureIndex)te) == type)  					{  						// MULTIPLE_WEARABLES: extend to multiple wearables?  						LLViewerTexture* te_image = getImage((ETextureIndex)te, 0); @@ -10450,7 +10456,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()  		for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)  		{  		    const LLAvatarAppearanceDictionary::BakedEntry *baked_dict -				= LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index); +				= sAvatarDictionary->getBakedTexture((EBakedTextureIndex)baked_index);  			ETextureIndex tex_index = baked_dict->mTextureIndex;  			if ((tex_index != TEX_SKIRT_BAKED) || (isWearingWearableType(LLWearableType::WT_SKIRT)))  			{ @@ -10515,8 +10521,8 @@ void LLVOAvatar::calculateUpdateRenderComplexity()  			}  			// print any avatar textures we didn't already know about -		    for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -			 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +		    for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +			 iter != sAvatarDictionary->getTextures().end();  				 ++iter)  			{  			    const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second; @@ -10631,7 +10637,7 @@ BOOL LLVOAvatar::isIndexLocalTexture(ETextureIndex index)  {  	return (index < 0 || index >= TEX_NUM_INDICES)  		? false -		: LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mIsLocalTexture; +		: sAvatarDictionary->getTexture(index)->mIsLocalTexture;  }  // static @@ -10639,15 +10645,15 @@ BOOL LLVOAvatar::isIndexBakedTexture(ETextureIndex index)  {  	return (index < 0 || index >= TEX_NUM_INDICES)  		? false -		: LLAvatarAppearanceDictionary::getInstance()->getTexture(index)->mIsBakedTexture; +		: sAvatarDictionary->getTexture(index)->mIsBakedTexture;  }  const std::string LLVOAvatar::getBakedStatusForPrintout() const  {  	std::string line; -	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +		 iter != sAvatarDictionary->getTextures().end();  		 ++iter)  	{  		const ETextureIndex index = iter->first; diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index d2dc139d4b..66233a860e 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -1085,8 +1085,8 @@ void LLVOAvatarSelf::updateAttachmentVisibility(U32 camera_mode)  //-----------------------------------------------------------------------------  void LLVOAvatarSelf::wearableUpdated(LLWearableType::EType type)  { -	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second; @@ -1283,7 +1283,7 @@ BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)  U32 LLVOAvatarSelf::getNumWearables(LLAvatarAppearanceDefines::ETextureIndex i) const  { -	LLWearableType::EType type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(i); +	LLWearableType::EType type = sAvatarDictionary->getTEWearableType(i);  	return gAgentWearables.getWearableCount(type);  } @@ -1394,8 +1394,8 @@ BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLViewerTexLayerSet* laye  {  	/* if (layerset == mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)  	   return getLocalDiscardLevel(TEX_HEAD_BODYPAINT) >= 0; */ -	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const EBakedTextureIndex baked_index = baked_iter->first; @@ -1408,7 +1408,7 @@ BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLViewerTexLayerSet* laye  				 ++local_tex_iter)  			{  				const ETextureIndex tex_index = *local_tex_iter; -				const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +				const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  				const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  				for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)  				{ @@ -1438,13 +1438,13 @@ BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset  	{  		if (layerset == mBakedTextureDatas[i].mTexLayerSet)  		{ -			const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i); +			const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = sAvatarDictionary->getBakedTexture((EBakedTextureIndex)i);  			for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();  				 local_tex_iter != baked_dict->mLocalTextures.end();  				 ++local_tex_iter)  			{  				const ETextureIndex tex_index = *local_tex_iter; -				const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +				const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  				const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  				for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)  				{ @@ -1471,13 +1471,13 @@ BOOL LLVOAvatarSelf::isAllLocalTextureDataFinal() const  	for (U32 i = 0; i < mBakedTextureDatas.size(); i++)  	{ -		const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i); +		const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = sAvatarDictionary->getBakedTexture((EBakedTextureIndex)i);  		for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();  			 local_tex_iter != baked_dict->mLocalTextures.end();  			 ++local_tex_iter)  		{  			const ETextureIndex tex_index = *local_tex_iter; -			const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +			const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  			const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  			for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)  			{ @@ -1499,7 +1499,7 @@ BOOL LLVOAvatarSelf::isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex t  	BOOL isDefined = TRUE;  	if (isIndexLocalTexture(type))  	{ -		const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(type); +		const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(type);  		const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  		if (index >= wearable_count)  		{ @@ -1716,7 +1716,7 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te  			LL_ERRS() << "Tried to set local texture with invalid type: (" << (U32) type << ", " << index << ")" << LL_ENDL;  			return;  		} -		LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(type); +		LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(type);  		if (!gAgentWearables.getViewerWearable(wearable_type,index))  		{  			// no wearable is loaded, cannot set the texture. @@ -1793,8 +1793,8 @@ void LLVOAvatarSelf::dumpLocalTextures() const  	/* ETextureIndex baked_equiv[] = {  	   TEX_UPPER_BAKED,  	   if (isTextureDefined(baked_equiv[i])) */ -	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +		 iter != sAvatarDictionary->getTextures().end();  		 ++iter)  	{  		const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second; @@ -1802,7 +1802,7 @@ void LLVOAvatarSelf::dumpLocalTextures() const  			continue;  		const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; -		const ETextureIndex baked_equiv = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex; +		const ETextureIndex baked_equiv = sAvatarDictionary->getBakedTexture(baked_index)->mTextureIndex;  		const std::string &name = texture_dict->mName;  		const LLLocalTextureObject *local_tex_obj = getLocalTextureObject(iter->first, 0); @@ -2037,8 +2037,8 @@ const std::string LLVOAvatarSelf::verboseDebugDumpLocalTextureDataInfo(const LLV  {  	std::ostringstream outbuf;  	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = -			 LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +			 sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const EBakedTextureIndex baked_index = baked_iter->first; @@ -2051,9 +2051,9 @@ const std::string LLVOAvatarSelf::verboseDebugDumpLocalTextureDataInfo(const LLV  				 ++local_tex_iter)  			{  				const ETextureIndex tex_index = *local_tex_iter; -				const std::string tex_name = LLAvatarAppearanceDictionary::getInstance()->getTexture(tex_index)->mName; +				const std::string tex_name = sAvatarDictionary->getTexture(tex_index)->mName;  				outbuf << "  tex_index " << (S32) tex_index << " name " << tex_name << "\n"; -				const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +				const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  				const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  				if (wearable_count > 0)  				{ @@ -2097,8 +2097,8 @@ const std::string LLVOAvatarSelf::verboseDebugDumpLocalTextureDataInfo(const LLV  void LLVOAvatarSelf::dumpAllTextures() const  {  	std::string vd_text = "Local textures per baked index and wearable:\n"; -	for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +	for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const LLAvatarAppearanceDefines::EBakedTextureIndex baked_index = baked_iter->first; @@ -2119,8 +2119,8 @@ const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLViewerTe  	/* if (layerset == mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)  	   return getLocalDiscardLevel(TEX_HEAD_BODYPAINT) >= 0; */ -	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +	for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const EBakedTextureIndex baked_index = baked_iter->first; @@ -2133,7 +2133,7 @@ const std::string LLVOAvatarSelf::debugDumpLocalTextureDataInfo(const LLViewerTe  				 ++local_tex_iter)  			{  				const ETextureIndex tex_index = *local_tex_iter; -				const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +				const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  				const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  				if (wearable_count > 0)  				{ @@ -2160,14 +2160,14 @@ const std::string LLVOAvatarSelf::debugDumpAllLocalTextureDataInfo() const  	for (U32 i = 0; i < mBakedTextureDatas.size(); i++)  	{ -		const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i); +		const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = sAvatarDictionary->getBakedTexture((EBakedTextureIndex)i);  		BOOL is_texture_final = TRUE;  		for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();  			 local_tex_iter != baked_dict->mLocalTextures.end();  			 ++local_tex_iter)  		{  			const ETextureIndex tex_index = *local_tex_iter; -			const LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(tex_index); +			const LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(tex_index);  			const U32 wearable_count = gAgentWearables.getWearableCount(wearable_type);  			for (U32 wearable_index = 0; wearable_index < wearable_count; wearable_index++)  			{ @@ -2347,7 +2347,7 @@ const LLUUID& LLVOAvatarSelf::grabBakedTexture(EBakedTextureIndex baked_index) c  {  	if (canGrabBakedTexture(baked_index))  	{ -		ETextureIndex tex_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(baked_index); +		ETextureIndex tex_index = sAvatarDictionary->bakedToLocalTextureIndex(baked_index);  		if (tex_index == TEX_NUM_INDICES)  		{  			return LLUUID::null; @@ -2359,7 +2359,7 @@ const LLUUID& LLVOAvatarSelf::grabBakedTexture(EBakedTextureIndex baked_index) c  BOOL LLVOAvatarSelf::canGrabBakedTexture(EBakedTextureIndex baked_index) const  { -	ETextureIndex tex_index = LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(baked_index); +	ETextureIndex tex_index = sAvatarDictionary->bakedToLocalTextureIndex(baked_index);  	if (tex_index == TEX_NUM_INDICES)  	{  		return FALSE; @@ -2378,13 +2378,13 @@ BOOL LLVOAvatarSelf::canGrabBakedTexture(EBakedTextureIndex baked_index) const  	// baked texture.  We don't want people copying people's  	// work via baked textures. -	const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(baked_index); +	const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = sAvatarDictionary->getBakedTexture(baked_index);  	for (texture_vec_t::const_iterator iter = baked_dict->mLocalTextures.begin();  		 iter != baked_dict->mLocalTextures.end();  		 ++iter)  	{  		const ETextureIndex t_index = (*iter); -		LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType(t_index); +		LLWearableType::EType wearable_type = sAvatarDictionary->getTEWearableType(t_index);  		U32 count = gAgentWearables.getWearableCount(wearable_type);  		LL_DEBUGS() << "Checking index " << (U32) t_index << " count: " << count << LL_ENDL; @@ -2472,7 +2472,7 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe  LLLocalTextureObject* LLVOAvatarSelf::getLocalTextureObject(LLAvatarAppearanceDefines::ETextureIndex i, U32 wearable_index) const  { -	LLWearableType::EType type = LLAvatarAppearanceDictionary::getInstance()->getTEWearableType(i); +	LLWearableType::EType type = sAvatarDictionary->getTEWearableType(i);  	LLViewerWearable* wearable = gAgentWearables.getViewerWearable(type, wearable_index);  	if (wearable)  	{ @@ -2546,8 +2546,8 @@ void LLVOAvatarSelf::outputRezDiagnostics() const  		LL_DEBUGS("Avatar") << "\t\t (" << i << ") \t" << (S32)mDebugBakedTextureTimes[i][0] << " / " << (S32)mDebugBakedTextureTimes[i][1] << LL_ENDL;  	} -	for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().begin(); -		 baked_iter != LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::getInstance()->getBakedTextures().end(); +	for (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); +		 baked_iter != sAvatarDictionary->getBakedTextures().end();  		 ++baked_iter)  	{  		const LLAvatarAppearanceDefines::EBakedTextureIndex baked_index = baked_iter->first; @@ -2613,7 +2613,7 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )  		case LOCTEX_UPPER_SHIRT:  			if( mUpperBodyLayerSet )  				mUpperBodyLayerSet->requestUpdate(); */ -	const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index); +	const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = sAvatarDictionary->getTexture(index);  	if (!texture_dict)  		return;  	if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture) @@ -2631,7 +2631,7 @@ LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const                 case TEX_HEAD_BAKED:                 case TEX_HEAD_BODYPAINT:                         return mHeadLayerSet; */ -       const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index); +       const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = sAvatarDictionary->getTexture(index);         if (texture_dict && texture_dict->mIsUsedByBakedTexture)         {                 const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex; @@ -2717,8 +2717,8 @@ bool LLVOAvatarSelf::sendAppearanceMessage(LLMessageSystem *mesgsys) const  {  	LLUUID texture_id[TEX_NUM_INDICES];  	// pack away current TEs to make sure we don't send them out -	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +		 iter != sAvatarDictionary->getTextures().end();  		 ++iter)  	{  		const ETextureIndex index = iter->first; @@ -2734,8 +2734,8 @@ bool LLVOAvatarSelf::sendAppearanceMessage(LLMessageSystem *mesgsys) const  	bool success = packTEMessage(mesgsys);  	// unpack TEs to make sure we don't re-trigger a bake -	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearanceDictionary::getInstance()->getTextures().begin(); -		 iter != LLAvatarAppearanceDictionary::getInstance()->getTextures().end(); +	for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = sAvatarDictionary->getTextures().begin(); +		 iter != sAvatarDictionary->getTextures().end();  		 ++iter)  	{  		const ETextureIndex index = iter->first; | 
