summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-08-28 17:27:28 -0600
committerXiaohong Bao <bao@lindenlab.com>2013-08-28 17:27:28 -0600
commitedd1478cc0ba240d428fc4c35f9c97af7d2ce346 (patch)
tree8695e3b13212cabca5500a324c5f5da659a92857 /indra
parent041ab1c46c681de63c934af031c1d1a0b3f5a4da (diff)
fix for SH-4332: Cacheable object highlights from Render Metadata -> Update Type do not render
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llviewerobjectlist.cpp24
-rwxr-xr-xindra/newview/llvocache.cpp12
-rwxr-xr-xindra/newview/llvocache.h1
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++; }