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 /indra/newview | |
parent | 041ab1c46c681de63c934af031c1d1a0b3f5a4da (diff) |
fix for SH-4332: Cacheable object highlights from Render Metadata -> Update Type do not render
Diffstat (limited to 'indra/newview')
-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++; } |