Xiaohong Bao 2013-10-30 11:38:23 -06:00
commit 46c3bf7575
3 changed files with 6 additions and 9 deletions

View File

@ -1071,6 +1071,8 @@ F32 LLViewerRegion::updateVisibleEntries(F32 max_time)
const U32 cur_frame = LLViewerOctreeEntryData::getCurrentFrame();
bool needs_update = ((cur_frame - mImpl->mLastCameraUpdate) > 5) && ((camera_origin - mImpl->mLastCameraOrigin).lengthSquared() > 10.f);
U32 last_update = mImpl->mLastCameraUpdate;
LLVector4a local_origin;
local_origin.load3((camera_origin - getOriginAgent()).mV);
//process visible entries
for(LLVOCacheEntry::vocache_entry_set_t::iterator iter = mImpl->mVisibleEntries.begin(); iter != mImpl->mVisibleEntries.end();)
@ -1149,7 +1151,7 @@ F32 LLViewerRegion::updateVisibleEntries(F32 max_time)
continue;
}
vo_entry->calcSceneContribution(camera_origin, needs_update, last_update);
vo_entry->calcSceneContribution(local_origin, needs_update, last_update);
mImpl->mWaitingList.insert(vo_entry);
}
}

View File

@ -383,20 +383,15 @@ bool LLVOCacheEntry::isRecentlyVisible() const
return vis;
}
void LLVOCacheEntry::calcSceneContribution(const LLVector3& camera_origin, bool needs_update, U32 last_update)
void LLVOCacheEntry::calcSceneContribution(const LLVector4a& camera_origin, bool needs_update, U32 last_update)
{
if(!needs_update && getVisible() >= last_update)
{
return; //no need to update
}
const LLVector4a& center = getPositionGroup();
LLVector4a origin;
origin.load3(camera_origin.mV);
LLVector4a lookAt;
lookAt.setSub(center, origin);
lookAt.setSub(getPositionGroup(), camera_origin);
F32 squared_dist = lookAt.dot3(lookAt).getF32();
if(squared_dist > 0.f)

View File

@ -93,7 +93,7 @@ public:
S32 getHitCount() const { return mHitCount; }
S32 getCRCChangeCount() const { return mCRCChangeCount; }
void calcSceneContribution(const LLVector3& camera_origin, bool needs_update, U32 last_update);
void calcSceneContribution(const LLVector4a& camera_origin, bool needs_update, U32 last_update);
void setSceneContribution(F32 scene_contrib) {mSceneContrib = scene_contrib;}
F32 getSceneContribution() const { return mSceneContrib;}