fix some objects not rendered when login process is very long
parent
6d9af37406
commit
31bf481a7b
|
|
@ -327,6 +327,7 @@ public:
|
|||
|
||||
//virtual
|
||||
BOOL isRecentlyVisible() const;
|
||||
LLViewerOctreePartition* getSpatialPartition()const {return mSpatialPartition;}
|
||||
|
||||
static U32 getNewOcclusionQueryObjectName();
|
||||
static void releaseOcclusionQueryObjectName(U32 name);
|
||||
|
|
|
|||
|
|
@ -261,6 +261,12 @@ void LLVOCacheEntry::addChild(LLVOCacheEntry* entry)
|
|||
if(getEntry() != NULL && isState(INACTIVE))
|
||||
{
|
||||
updateParentBoundingInfo(entry);
|
||||
if(getGroup())
|
||||
{
|
||||
LLOcclusionCullingGroup* group = (LLOcclusionCullingGroup*)getGroup();
|
||||
group->unbound();
|
||||
((LLVOCachePartition*)group->getSpatialPartition())->setDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -479,12 +485,17 @@ LLVOCachePartition::LLVOCachePartition(LLViewerRegion* regionp)
|
|||
new LLOcclusionCullingGroup(mOctree, this);
|
||||
}
|
||||
|
||||
void LLVOCachePartition::setDirty()
|
||||
{
|
||||
mDirty = TRUE;
|
||||
}
|
||||
|
||||
void LLVOCachePartition::addEntry(LLViewerOctreeEntry* entry)
|
||||
{
|
||||
llassert(entry->hasVOCacheEntry());
|
||||
|
||||
mOctree->insert(entry);
|
||||
mDirty = TRUE;
|
||||
setDirty();
|
||||
}
|
||||
|
||||
void LLVOCachePartition::removeEntry(LLViewerOctreeEntry* entry)
|
||||
|
|
@ -615,7 +626,7 @@ S32 LLVOCachePartition::cull(LLCamera &camera, bool do_occlusion)
|
|||
}
|
||||
|
||||
((LLviewerOctreeGroup*)mOctree->getListener(0))->rebound();
|
||||
mCullHistory[LLViewerCamera::sCurCameraID] <<= 2;
|
||||
mCullHistory[LLViewerCamera::sCurCameraID] <<= 1;
|
||||
|
||||
//localize the camera
|
||||
LLVector3 region_agent = mRegionp->getOriginAgent();
|
||||
|
|
|
|||
|
|
@ -162,14 +162,13 @@ public:
|
|||
/*virtual*/ S32 cull(LLCamera &camera, bool do_occlusion);
|
||||
void addOccluders(LLviewerOctreeGroup* gp);
|
||||
void resetOccluders();
|
||||
|
||||
static LLTrace::MemStatHandle sMemStat;
|
||||
|
||||
public:
|
||||
void processOccluders(LLCamera* camera);
|
||||
|
||||
void setDirty();
|
||||
|
||||
public:
|
||||
static BOOL sNeedsOcclusionCheck;
|
||||
static LLTrace::MemStatHandle sMemStat;
|
||||
|
||||
private:
|
||||
BOOL mDirty;
|
||||
|
|
|
|||
Loading…
Reference in New Issue