diff options
| author | Xiaohong Bao <bao@lindenlab.com> | 2013-08-28 17:27:28 -0600 | 
|---|---|---|
| committer | Xiaohong Bao <bao@lindenlab.com> | 2013-08-28 17:27:28 -0600 | 
| commit | edd1478cc0ba240d428fc4c35f9c97af7d2ce346 (patch) | |
| tree | 8695e3b13212cabca5500a324c5f5da659a92857 | |
| parent | 041ab1c46c681de63c934af031c1d1a0b3f5a4da (diff) | |
fix for SH-4332: Cacheable object highlights from Render Metadata -> Update Type do not render
| -rwxr-xr-x | indra/newview/llviewerobjectlist.cpp | 24 | ||||
| -rwxr-xr-x | indra/newview/llvocache.cpp | 12 | ||||
| -rwxr-xr-x | indra/newview/llvocache.h | 1 | 
3 files changed, 16 insertions, 21 deletions
| diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 4643430c6b..897da7f0b3 100755 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -365,7 +365,16 @@ LLViewerObject* LLViewerObjectList::processObjectUpdateFromCache(LLVOCacheEntry*  	processUpdateCore(objectp, NULL, 0, OUT_FULL_CACHED, cached_dpp, justCreated, true);  	objectp->loadFlags(entry->getUpdateFlags()); //just in case, reload update flags from cache. - +	 +	if(entry->getHitCount() > 0) +	{ +		objectp->setLastUpdateType(OUT_FULL_CACHED); +	} +	else +	{ +		objectp->setLastUpdateType(OUT_FULL_COMPRESSED); //newly cached +		objectp->setLastUpdateCached(TRUE); +	}  	recorder.log(0.2f);  	LLVOAvatar::cullAvatarsByPixelArea(); @@ -467,10 +476,10 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,  				if(flags & FLAGS_TEMPORARY_ON_REZ)  				{ -				compressed_dp.unpackUUID(fullid, "ID"); -				compressed_dp.unpackU32(local_id, "LocalID"); -				compressed_dp.unpackU8(pcode, "PCode"); -			} +					compressed_dp.unpackUUID(fullid, "ID"); +					compressed_dp.unpackU32(local_id, "LocalID"); +					compressed_dp.unpackU8(pcode, "PCode"); +				}  				else //send to object cache  				{  					regionp->cacheFullUpdate(compressed_dp, flags); @@ -608,7 +617,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,  			LL_WARNS() << "Dead object " << objectp->mID << " in UUID map 1!" << LL_ENDL;  		} -		bool bCached = false; +		//bool bCached = false;  		if (compressed)  		{  			if (update_type != OUT_TERSE_IMPROVED) // OUT_FULL_COMPRESSED only? @@ -641,8 +650,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,  			processUpdateCore(objectp, user_data, i, update_type, NULL, justCreated);  		}  		recorder.objectUpdateEvent(local_id, update_type, objectp, msg_size); -		objectp->setLastUpdateType(update_type); -		objectp->setLastUpdateCached(bCached); +		objectp->setLastUpdateType(update_type);		  	}  	recorder.log(0.2f); diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp index ebde17dcef..dcd1ae391d 100755 --- a/indra/newview/llvocache.cpp +++ b/indra/newview/llvocache.cpp @@ -286,18 +286,6 @@ void LLVOCacheEntry::removeAllChildren()  	mChildrenList.clear();  } -LLDataPackerBinaryBuffer *LLVOCacheEntry::getDP(U32 crc) -{ -	if (  (mCRC != crc) -		||(mDP.getBufferSize() == 0)) -	{ -		//LL_INFOS() << "Not getting cache entry, invalid!" << LL_ENDL; -		return NULL; -	} -	mHitCount++; -	return &mDP; -} -  LLDataPackerBinaryBuffer *LLVOCacheEntry::getDP()  {  	if (mDP.getBufferSize() == 0) diff --git a/indra/newview/llvocache.h b/indra/newview/llvocache.h index 4eca083445..a385610a10 100755 --- a/indra/newview/llvocache.h +++ b/indra/newview/llvocache.h @@ -97,7 +97,6 @@ public:  	void dump() const;  	BOOL writeToFile(LLAPRFile* apr_file) const; -	LLDataPackerBinaryBuffer *getDP(U32 crc);  	LLDataPackerBinaryBuffer *getDP();  	void recordHit();  	void recordDupe() { mDupeCount++; } | 
