Removed CLEAR_INVISIBLE drawable flag.
This commit is contained in:
@@ -290,7 +290,6 @@ public:
|
||||
NEARBY_LIGHT = 0x00200000, // In gPipeline.mNearbyLightSet
|
||||
BUILT = 0x00400000,
|
||||
FORCE_INVISIBLE = 0x00800000, // stay invis until CLEAR_INVISIBLE is set (set of orphaned)
|
||||
CLEAR_INVISIBLE = 0x01000000, // clear FORCE_INVISIBLE next draw frame
|
||||
REBUILD_SHADOW = 0x02000000,
|
||||
HAS_ALPHA = 0x04000000,
|
||||
RIGGED = 0x08000000,
|
||||
|
||||
@@ -2249,7 +2249,8 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
||||
if (mDrawable->isState(LLDrawable::FORCE_INVISIBLE) && !mOrphaned)
|
||||
{
|
||||
// lldebugs << "Clearing force invisible: " << mID << ":" << getPCodeString() << ":" << getPositionAgent() << llendl;
|
||||
mDrawable->setState(LLDrawable::CLEAR_INVISIBLE);
|
||||
mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
|
||||
gPipeline.markRebuild( mDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2164,8 +2164,9 @@ void LLViewerObjectList::findOrphans(LLViewerObject* objectp, U32 ip, U32 port)
|
||||
if (childp->mDrawable.notNull())
|
||||
{
|
||||
// Make the drawable visible again and set the drawable parent
|
||||
childp->mDrawable->setState(LLDrawable::CLEAR_INVISIBLE);
|
||||
childp->mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
|
||||
childp->setDrawableParent(objectp->mDrawable); // LLViewerObjectList::findOrphans()
|
||||
gPipeline.markRebuild( childp->mDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
}
|
||||
|
||||
// Make certain particles, icon and HUD aren't hidden
|
||||
|
||||
@@ -2405,17 +2405,6 @@ BOOL LLPipeline::updateDrawableGeom(LLDrawable* drawablep, BOOL priority)
|
||||
BOOL update_complete = drawablep->updateGeometry(priority);
|
||||
if (update_complete && assertInitialized())
|
||||
{
|
||||
//Workaround for 'missing prims' until it's fixed upstream by LL.
|
||||
//Sometimes clearing CLEAR_INVISIBLE and FORCE_INVISIBLE in LLPipeline::stateSort was too late. Do it here instead, before
|
||||
//the rebuild state is picked up on and LLVolumeGeometryManager::rebuildGeom is called.
|
||||
//If the FORCE_INVISIBLE isn't cleared before the rebuildGeom call, the geometry will NOT BE REBUILT!
|
||||
if(drawablep->isState(LLDrawable::CLEAR_INVISIBLE))
|
||||
{
|
||||
// clear invisible flag here to avoid single frame glitch
|
||||
drawablep->clearState(LLDrawable::FORCE_INVISIBLE|LLDrawable::CLEAR_INVISIBLE);
|
||||
return false; //Defer to next mBuildQ1 iteration
|
||||
}
|
||||
|
||||
drawablep->setState(LLDrawable::BUILT);
|
||||
mGeometryChanges++;
|
||||
}
|
||||
@@ -3162,11 +3151,6 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera)
|
||||
{
|
||||
drawablep->setVisible(camera, NULL, FALSE);
|
||||
}
|
||||
else if (drawablep->isState(LLDrawable::CLEAR_INVISIBLE))
|
||||
{
|
||||
// clear invisible flag here to avoid single frame glitch
|
||||
drawablep->clearState(LLDrawable::FORCE_INVISIBLE|LLDrawable::CLEAR_INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
|
||||
|
||||
Reference in New Issue
Block a user