SL-19655 Remove concept of "low priority" updates (RenderDebugGLSession assertion stomping pass). Remove a couple unused debug settings and related code.
parent
ee0b330b2d
commit
6f5f16e031
|
|
@ -10733,17 +10733,6 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderAutoMuteByteLimit</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If avatar attachment size exceed this value (in bytes) attachment will not be rendered. Excludes attachments worn by own avatar.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderAvatarMaxNonImpostors</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -14346,17 +14335,6 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderDelayVBUpdate</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Delay vertex buffer updates until just before rendering</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>SocialPhotoResolution</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ RenderAvatarMaxNonImpostors 1 16
|
|||
RenderAvatarMaxComplexity 1 350000
|
||||
RenderAutoMuteSurfaceAreaLimit 1 1000.0
|
||||
RenderCubeMap 1 1
|
||||
RenderDelayVBUpdate 1 0
|
||||
RenderFarClip 1 256
|
||||
RenderFlexTimeFactor 1 1.0
|
||||
RenderFogRatio 1 4.0
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ RenderAvatarMaxNonImpostors 1 16
|
|||
RenderAvatarMaxComplexity 1 350000
|
||||
RenderAutoMuteSurfaceAreaLimit 1 1000.0
|
||||
RenderCubeMap 1 1
|
||||
RenderDelayVBUpdate 1 0
|
||||
RenderFarClip 1 256
|
||||
RenderFlexTimeFactor 1 1.0
|
||||
RenderFogRatio 1 4.0
|
||||
|
|
|
|||
|
|
@ -312,8 +312,8 @@ void LLControlAvatar::updateVolumeGeom()
|
|||
}
|
||||
}
|
||||
|
||||
gPipeline.markRebuild(mRootVolp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
mRootVolp->markForUpdate(TRUE);
|
||||
gPipeline.markRebuild(mRootVolp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
mRootVolp->markForUpdate();
|
||||
|
||||
// Note that attachment overrides aren't needed here, have already
|
||||
// been applied at the time the mControlAvatar was created, in
|
||||
|
|
@ -597,7 +597,7 @@ void LLControlAvatar::updateAnimations()
|
|||
//if (!mRootVolp->isAnySelected())
|
||||
{
|
||||
updateVolumeGeom();
|
||||
mRootVolp->recursiveMarkForUpdate(TRUE);
|
||||
mRootVolp->recursiveMarkForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ void LLDrawable::unload()
|
|||
{
|
||||
LLVOVolume *pVVol = getVOVolume();
|
||||
pVVol->setNoLOD();
|
||||
pVVol->markForUpdate(TRUE);
|
||||
pVVol->markForUpdate();
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -535,7 +535,7 @@ void LLDrawable::makeActive()
|
|||
|
||||
if (mVObjp->getPCode() == LL_PCODE_VOLUME)
|
||||
{
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
updatePartition();
|
||||
}
|
||||
|
|
@ -583,7 +583,7 @@ void LLDrawable::makeStatic(BOOL warning_enabled)
|
|||
|
||||
if (mVObjp->getPCode() == LL_PCODE_VOLUME)
|
||||
{
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
|
||||
if (mSpatialBridge)
|
||||
|
|
@ -659,7 +659,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
|
|||
|
||||
if (getVOVolume() && !isRoot())
|
||||
{ //child prim snapping to some position, needs a rebuild
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -683,7 +683,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
|
|||
|
||||
if (vec*vec > MIN_INTERPOLATE_DISTANCE_SQUARED)
|
||||
{ //scale change requires immediate rebuild
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
else if (!isRoot() &&
|
||||
(!mVObjp->getAngularVelocity().isExactlyZero() ||
|
||||
|
|
@ -693,7 +693,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
|
|||
if (!isState(LLDrawable::ANIMATED_CHILD))
|
||||
{
|
||||
setState(LLDrawable::ANIMATED_CHILD);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_ALL);
|
||||
mVObjp->dirtySpatialGroup();
|
||||
}
|
||||
}
|
||||
|
|
@ -702,7 +702,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
|
|||
|| (1.f - dot(old_rot, target_rot)) > 0.f))
|
||||
{ //fix for BUG-840, MAINT-2275, MAINT-1742, MAINT-2247
|
||||
mVObjp->shrinkWrap();
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
else if (!getVOVolume() && !isAvatar())
|
||||
{
|
||||
|
|
@ -813,7 +813,7 @@ void LLDrawable::updatePartition()
|
|||
else
|
||||
{
|
||||
//a child prim moved and needs its verts regenerated
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -938,7 +938,7 @@ void LLDrawable::updateTexture()
|
|||
|
||||
if (getVOVolume())
|
||||
{
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_MATERIAL, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_MATERIAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -981,7 +981,7 @@ void LLDrawable::shiftPos(const LLVector4a &shift_vector)
|
|||
|
||||
if (rebuild)
|
||||
{
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(this, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
|
||||
for (S32 i = 0; i < getNumFaces(); i++)
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ void LLFace::destroy()
|
|||
if (group)
|
||||
{
|
||||
group->dirtyGeom();
|
||||
gPipeline.markRebuild(group, TRUE);
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -250,7 +250,7 @@ void LLFace::setPool(LLFacePool* new_pool, LLViewerTexture *texturep)
|
|||
|
||||
if (mDrawablep)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawablep, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawablep, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
mGeomIndex = 0;
|
||||
|
|
@ -332,7 +332,7 @@ void LLFace::dirtyTexture()
|
|||
|
||||
vobj->updateVisualComplexity();
|
||||
}
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_VOLUME, FALSE);
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1174,6 +1174,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
{
|
||||
if (gDebugGL)
|
||||
{
|
||||
llassert(false);
|
||||
LL_WARNS() << "Index buffer overflow!" << LL_ENDL;
|
||||
LL_WARNS() << "Indices Count: " << mIndicesCount
|
||||
<< " VF Num Indices: " << num_indices
|
||||
|
|
@ -1189,6 +1190,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
{
|
||||
if (gDebugGL)
|
||||
{
|
||||
llassert(false);
|
||||
LL_WARNS() << "Vertex buffer overflow!" << LL_ENDL;
|
||||
}
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ void LLVolumeImplFlexible::doIdleUpdate()
|
|||
if (mRenderRes == -1)
|
||||
{
|
||||
updateRenderRes();
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE);
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -361,7 +361,7 @@ void LLVolumeImplFlexible::doIdleUpdate()
|
|||
// MAINT-1890 Clamp the update period to ensure that the update_period is no greater than 32 frames
|
||||
update_period = llclamp(update_period, 1U, 32U);
|
||||
|
||||
// We control how fast flexies update, buy splitting updates among frames
|
||||
// We control how fast flexies update, buy splitting updates among frames
|
||||
U64 virtual_frame_num = LLTimer::getElapsedSeconds() / SEC_PER_FLEXI_FRAME;
|
||||
|
||||
if (visible)
|
||||
|
|
@ -400,7 +400,7 @@ void LLVolumeImplFlexible::doIdleUpdate()
|
|||
updateRenderRes();
|
||||
|
||||
mVO->shrinkWrap();
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE);
|
||||
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,14 +72,14 @@ void LLManip::rebuild(LLViewerObject* vobj)
|
|||
LLDrawable* drawablep = vobj->mDrawable;
|
||||
if (drawablep && drawablep->getVOVolume())
|
||||
{
|
||||
gPipeline.markRebuild(drawablep,LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(drawablep,LLDrawable::REBUILD_VOLUME);
|
||||
drawablep->setState(LLDrawable::MOVE_UNDAMPED); // force to UNDAMPED
|
||||
drawablep->updateMove();
|
||||
LLSpatialGroup* group = drawablep->getSpatialGroup();
|
||||
if (group)
|
||||
{
|
||||
group->dirtyGeom();
|
||||
gPipeline.markRebuild(group, TRUE);
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
|
||||
LLViewerObject::const_child_list_t& child_list = vobj->getChildren();
|
||||
|
|
|
|||
|
|
@ -85,29 +85,6 @@ void LLSculptIDSize::inc(const LLDrawable *pdrawable, int sz)
|
|||
//trying insert the LLDrawable
|
||||
mSizeInfo.get<tag_BY_DRAWABLE>().insert(Info(pdrawable, sz, nfo.mSharedSizeSum, sculptId));
|
||||
}
|
||||
|
||||
static LLCachedControl<U32> render_auto_mute_byte_limit(gSavedSettings, "RenderAutoMuteByteLimit", 0U);
|
||||
|
||||
if (0 != render_auto_mute_byte_limit && total_size > render_auto_mute_byte_limit)
|
||||
{
|
||||
pair_iter_iter_BY_SCULPT_ID_t it_eqr = mSizeInfo.get<tag_BY_SCULPT_ID>().equal_range(sculptId);
|
||||
for (; it_eqr.first != it_eqr.second; ++it_eqr.first)
|
||||
{
|
||||
const Info &i = *it_eqr.first;
|
||||
LLVOVolume *pVVol = i.mDrawable->getVOVolume();
|
||||
if (pVVol
|
||||
&& !pVVol->isDead()
|
||||
&& pVVol->isAttachment()
|
||||
&& !pVVol->getAvatar()->isSelf()
|
||||
&& LLVOVolume::NO_LOD != pVVol->getLOD()
|
||||
)
|
||||
{
|
||||
addToUnloaded(sculptId);
|
||||
//immediately
|
||||
const_cast<LLDrawable*>(i.mDrawable)->unload();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLSculptIDSize::dec(const LLDrawable *pdrawable)
|
||||
|
|
|
|||
|
|
@ -116,13 +116,13 @@ void LLSky::resetVertexBuffers()
|
|||
if (gSky.mVOSkyp.notNull())
|
||||
{
|
||||
gPipeline.resetVertexBuffers(gSky.mVOSkyp->mDrawable);
|
||||
gPipeline.markRebuild(gSky.mVOSkyp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(gSky.mVOSkyp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
if (gSky.mVOWLSkyp.notNull())
|
||||
{
|
||||
gSky.mVOWLSkyp->resetVertexBuffers();
|
||||
gPipeline.resetVertexBuffers(gSky.mVOWLSkyp->mDrawable);
|
||||
gPipeline.markRebuild(gSky.mVOWLSkyp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(gSky.mVOWLSkyp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ BOOL LLSpatialGroup::addObject(LLDrawable *drawablep)
|
|||
drawablep->setGroup(this);
|
||||
setState(OBJECT_DIRTY | GEOM_DIRTY);
|
||||
setOcclusionState(LLSpatialGroup::DISCARD_QUERY, LLSpatialGroup::STATE_MODE_ALL_CAMERAS);
|
||||
gPipeline.markRebuild(this, TRUE);
|
||||
gPipeline.markRebuild(this);
|
||||
if (drawablep->isSpatialBridge())
|
||||
{
|
||||
mBridgeList.push_back((LLSpatialBridge*) drawablep);
|
||||
|
|
@ -368,7 +368,7 @@ BOOL LLSpatialGroup::removeObject(LLDrawable *drawablep, BOOL from_octree)
|
|||
{
|
||||
drawablep->setGroup(NULL);
|
||||
setState(GEOM_DIRTY);
|
||||
gPipeline.markRebuild(this, TRUE);
|
||||
gPipeline.markRebuild(this);
|
||||
|
||||
if (drawablep->isSpatialBridge())
|
||||
{
|
||||
|
|
@ -411,7 +411,7 @@ void LLSpatialGroup::shift(const LLVector4a &offset)
|
|||
getSpatialPartition()->mPartitionType != LLViewerRegion::PARTITION_CONTROL_AV)
|
||||
{
|
||||
setState(GEOM_DIRTY);
|
||||
gPipeline.markRebuild(this, TRUE);
|
||||
gPipeline.markRebuild(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -537,7 +537,7 @@ LLSpatialGroup::LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part) : LLO
|
|||
|
||||
sg_assert(mOctreeNode->getListenerCount() == 0);
|
||||
setState(SG_INITIAL_STATE_MASK);
|
||||
gPipeline.markRebuild(this, TRUE);
|
||||
gPipeline.markRebuild(this);
|
||||
|
||||
// let the reflection map manager know about this spatial group
|
||||
mReflectionProbe = gPipeline.mReflectionMapManager.registerSpatialGroup(this);
|
||||
|
|
@ -611,7 +611,7 @@ F32 LLSpatialPartition::calcDistance(LLSpatialGroup* group, LLCamera& camera)
|
|||
//NOTE: If there is a trivial way to detect that alpha sorting here would not change the render order,
|
||||
//not setting this node to dirty would be a very good thing
|
||||
group->setState(LLSpatialGroup::ALPHA_DIRTY);
|
||||
gPipeline.markRebuild(group, FALSE);
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -783,7 +783,7 @@ void LLSpatialGroup::destroyGL(bool keep_occlusion)
|
|||
|
||||
if (!keep_occlusion)
|
||||
{ //going to need a rebuild
|
||||
gPipeline.markRebuild(this, TRUE);
|
||||
gPipeline.markRebuild(this);
|
||||
}
|
||||
|
||||
mLastUpdateTime = gFrameTimeSeconds;
|
||||
|
|
@ -1307,7 +1307,7 @@ public:
|
|||
}
|
||||
if (drawable->getVObj().notNull() && !group->getSpatialPartition()->mRenderByGroup)
|
||||
{
|
||||
gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -592,8 +592,6 @@ bool toggle_show_object_render_cost(const LLSD& newvalue)
|
|||
return true;
|
||||
}
|
||||
|
||||
void handleRenderAutoMuteByteLimitChanged(const LLSD& new_value);
|
||||
|
||||
void handleTargetFPSChanged(const LLSD& newValue)
|
||||
{
|
||||
const auto targetFPS = gSavedSettings.getU32("TargetFPS");
|
||||
|
|
@ -826,7 +824,6 @@ void settings_setup_listeners()
|
|||
setting_setup_signal_listener(gSavedSettings, "SpellCheckDictionary", handleSpellCheckChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "LoginLocation", handleLoginLocationChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "DebugAvatarJoints", handleDebugAvatarJointsChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderAutoMuteByteLimit", handleRenderAutoMuteByteLimitChanged);
|
||||
|
||||
setting_setup_signal_listener(gSavedSettings, "TargetFPS", handleTargetFPSChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "AutoTuneFPS", handleAutoTuneFPSChanged);
|
||||
|
|
|
|||
|
|
@ -4222,7 +4222,7 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data)
|
|||
//if (!avatarp->mRootVolp->isAnySelected())
|
||||
{
|
||||
avatarp->updateVolumeGeom();
|
||||
avatarp->mRootVolp->recursiveMarkForUpdate(TRUE);
|
||||
avatarp->mRootVolp->recursiveMarkForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1051,7 +1051,7 @@ BOOL LLViewerObject::setDrawableParent(LLDrawable* parentp)
|
|||
parentp->setState(LLDrawable::ACTIVE_CHILD);
|
||||
}
|
||||
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
if( (old_parent != parentp && old_parent)
|
||||
|| (parentp && parentp->isActive()))
|
||||
{
|
||||
|
|
@ -2504,7 +2504,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
{
|
||||
// LL_DEBUGS() << "Clearing force invisible: " << mID << ":" << getPCodeString() << ":" << getPositionAgent() << LL_ENDL;
|
||||
mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
|
||||
gPipeline.markRebuild( mDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
gPipeline.markRebuild( mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3166,7 +3166,7 @@ void LLViewerObject::linkControlAvatar()
|
|||
//if (!cav->mRootVolp->isAnySelected())
|
||||
{
|
||||
cav->updateVolumeGeom();
|
||||
cav->mRootVolp->recursiveMarkForUpdate(TRUE);
|
||||
cav->mRootVolp->recursiveMarkForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4976,7 +4976,7 @@ void LLViewerObject::updateTEMaterialTextures(U8 te)
|
|||
{
|
||||
region->loadCacheMiscExtras(obj->getLocalID());
|
||||
}
|
||||
obj->markForUpdate(FALSE);
|
||||
obj->markForUpdate();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -5210,7 +5210,7 @@ S32 LLViewerObject::setTEBumpmap(const U8 te, const U8 bump)
|
|||
if (mDrawable.notNull() && retval)
|
||||
{
|
||||
gPipeline.markTextured(mDrawable);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
|
|
@ -5300,10 +5300,8 @@ S32 LLViewerObject::setTEMediaFlags(const U8 te, const U8 media_flags)
|
|||
setChanged(TEXTURE);
|
||||
if (mDrawable.notNull() && retval)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_TCOORD, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_TCOORD);
|
||||
gPipeline.markTextured(mDrawable);
|
||||
// JC - probably only need this if changes texture coords
|
||||
//gPipeline.markRebuild(mDrawable);
|
||||
}
|
||||
}
|
||||
return retval;
|
||||
|
|
@ -6631,35 +6629,27 @@ void LLViewerObject::updateVolume(const LLVolumeParams& volume_params)
|
|||
{
|
||||
// Transmit the update to the simulator
|
||||
sendShapeUpdate();
|
||||
markForUpdate(TRUE);
|
||||
markForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
void LLViewerObject::recursiveMarkForUpdate(BOOL priority)
|
||||
void LLViewerObject::recursiveMarkForUpdate()
|
||||
{
|
||||
for (LLViewerObject::child_list_t::iterator iter = mChildList.begin();
|
||||
iter != mChildList.end(); iter++)
|
||||
{
|
||||
LLViewerObject* child = *iter;
|
||||
child->markForUpdate(priority);
|
||||
child->markForUpdate();
|
||||
}
|
||||
markForUpdate(priority);
|
||||
markForUpdate();
|
||||
}
|
||||
|
||||
void LLViewerObject::markForUpdate(BOOL priority)
|
||||
void LLViewerObject::markForUpdate()
|
||||
{
|
||||
if (mDrawable.notNull())
|
||||
{
|
||||
gPipeline.markTextured(mDrawable);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, priority);
|
||||
}
|
||||
}
|
||||
|
||||
void LLViewerObject::markForUnload(BOOL priority)
|
||||
{
|
||||
if (mDrawable.notNull())
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::FOR_UNLOAD, priority);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6885,7 +6875,7 @@ U32 LLViewerObject::getPartitionType() const
|
|||
return LLViewerRegion::PARTITION_NONE;
|
||||
}
|
||||
|
||||
void LLViewerObject::dirtySpatialGroup(BOOL priority) const
|
||||
void LLViewerObject::dirtySpatialGroup() const
|
||||
{
|
||||
if (mDrawable)
|
||||
{
|
||||
|
|
@ -6893,7 +6883,7 @@ void LLViewerObject::dirtySpatialGroup(BOOL priority) const
|
|||
if (group)
|
||||
{
|
||||
group->dirtyGeom();
|
||||
gPipeline.markRebuild(group, priority);
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6903,11 +6893,6 @@ void LLViewerObject::dirtyMesh()
|
|||
if (mDrawable)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
/*LLSpatialGroup* group = mDrawable->getSpatialGroup();
|
||||
if (group)
|
||||
{
|
||||
group->dirtyMesh();
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6928,7 +6913,7 @@ void LLStaticViewerObject::updateDrawable(BOOL force_damped)
|
|||
if (mDrawable.notNull())
|
||||
{
|
||||
mDrawable->updateXform(TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
clearChanged(SHIFTED);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -449,9 +449,8 @@ public:
|
|||
void setIcon(LLViewerTexture* icon_image);
|
||||
void clearIcon();
|
||||
|
||||
void recursiveMarkForUpdate(BOOL priority);
|
||||
virtual void markForUpdate(BOOL priority);
|
||||
void markForUnload(BOOL priority);
|
||||
void recursiveMarkForUpdate();
|
||||
virtual void markForUpdate();
|
||||
void updateVolume(const LLVolumeParams& volume_params);
|
||||
virtual void updateSpatialExtents(LLVector4a& min, LLVector4a& max);
|
||||
virtual F32 getBinRadius();
|
||||
|
|
@ -594,7 +593,7 @@ public:
|
|||
|
||||
virtual S32 getLOD() const { return 3; }
|
||||
virtual U32 getPartitionType() const;
|
||||
virtual void dirtySpatialGroup(BOOL priority = FALSE) const;
|
||||
void dirtySpatialGroup() const;
|
||||
virtual void dirtyMesh();
|
||||
|
||||
virtual LLNetworkData* getParameterEntry(U16 param_type) const;
|
||||
|
|
|
|||
|
|
@ -2075,7 +2075,7 @@ void LLViewerObjectList::findOrphans(LLViewerObject* objectp, U32 ip, U32 port)
|
|||
// Make the drawable visible again and set the drawable parent
|
||||
childp->mDrawable->clearState(LLDrawable::FORCE_INVISIBLE);
|
||||
childp->setDrawableParent(objectp->mDrawable); // LLViewerObjectList::findOrphans()
|
||||
gPipeline.markRebuild( childp->mDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
gPipeline.markRebuild( childp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
|
||||
// Make certain particles, icon and HUD aren't hidden
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ BOOL LLViewerPartGroup::addPart(LLViewerPart* part, F32 desired_size)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
gPipeline.markRebuild(mVOPartGroupp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mVOPartGroupp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
|
||||
mParticles.push_back(part);
|
||||
part->mSkipOffset=mSkippedTime;
|
||||
|
|
@ -426,7 +426,7 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
|
|||
// we removed one or more particles, so flag this group for update
|
||||
if (mVOPartGroupp.notNull())
|
||||
{
|
||||
gPipeline.markRebuild(mVOPartGroupp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mVOPartGroupp->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
LLViewerPartSim::decPartCount(removed);
|
||||
}
|
||||
|
|
@ -766,7 +766,7 @@ void LLViewerPartSim::updateSimulation()
|
|||
{
|
||||
if (vobj && !vobj->isDead())
|
||||
{
|
||||
gPipeline.markRebuild(vobj->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(vobj->mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
mViewerPartGroups[i]->updateParticles(dt * visirate);
|
||||
mViewerPartGroups[i]->mSkippedTime=0.0f;
|
||||
|
|
|
|||
|
|
@ -1872,7 +1872,7 @@ BOOL LLVOAvatar::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
|
|||
LLDrawable* drawable = attached_object->mDrawable;
|
||||
if (drawable->isState(LLDrawable::RIGGED))
|
||||
{ //regenerate octree for rigged attachment
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_RIGGED, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_RIGGED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2289,7 +2289,7 @@ void LLVOAvatar::restoreMeshData()
|
|||
}
|
||||
|
||||
// force mesh update as LOD might not have changed to trigger this
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1038,7 +1038,7 @@ void LLVOAvatarSelf::restoreMeshData()
|
|||
updateAttachmentVisibility(gAgentCamera.getCameraMode());
|
||||
|
||||
// force mesh update as LOD might not have changed to trigger this
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ U32 LLVOGrass::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
|
||||
if (mDrawable)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
|
||||
return retval;
|
||||
|
|
@ -290,12 +290,12 @@ void LLVOGrass::idleUpdate(LLAgent &agent, const F64 &time)
|
|||
if (!LLVOTree::isTreeRenderingStopped() && !mNumBlades)//restart grass rendering
|
||||
{
|
||||
mNumBlades = GRASS_MAX_BLADES;
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
return;
|
||||
}
|
||||
if (mPatch && (mLastPatchUpdateTime != mPatch->getLastUpdateTime()))
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -348,7 +348,7 @@ BOOL LLVOGrass::updateLOD()
|
|||
{
|
||||
mNumBlades = 0 ;
|
||||
face->setSize(0, 0);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
return TRUE ;
|
||||
}
|
||||
|
|
@ -373,7 +373,7 @@ BOOL LLVOGrass::updateLOD()
|
|||
{
|
||||
face->setSize(mNumBlades*8, mNumBlades*12);
|
||||
}
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
else if (num_blades <= (mNumBlades >> 1))
|
||||
{
|
||||
|
|
@ -386,7 +386,7 @@ BOOL LLVOGrass::updateLOD()
|
|||
{
|
||||
face->setSize(mNumBlades*8, mNumBlades*12);
|
||||
}
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -737,7 +737,7 @@ void LLVOGrass::updateDrawable(BOOL force_damped)
|
|||
if (mDrawable.notNull())
|
||||
{
|
||||
mDrawable->updateXform(TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
clearChanged(SHIFTED);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
|
|||
|
||||
if (group && group->isVisible())
|
||||
{
|
||||
dirtySpatialGroup(TRUE);
|
||||
dirtySpatialGroup();
|
||||
}
|
||||
|
||||
if (!num_parts)
|
||||
|
|
|
|||
|
|
@ -585,7 +585,7 @@ void LLVOSky::restoreGL()
|
|||
|
||||
if (mDrawable)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -770,7 +770,7 @@ bool LLVOSky::updateSky()
|
|||
|
||||
if (mDrawable.notNull() && mDrawable->getFace(0) && !mDrawable->getFace(0)->getVertexBuffer())
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
mCubeMapUpdateStage = -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ BOOL LLVOSurfacePatch::updateGeometry(LLDrawable *drawable)
|
|||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
|
||||
dirtySpatialGroup(TRUE);
|
||||
dirtySpatialGroup();
|
||||
|
||||
S32 min_comp, max_comp, range;
|
||||
min_comp = lltrunc(mPatchp->getMinComposition());
|
||||
|
|
@ -785,7 +785,7 @@ void LLVOSurfacePatch::dirtyGeom()
|
|||
{
|
||||
if (mDrawable)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
LLFace* facep = mDrawable->getFace(0);
|
||||
if (facep)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -376,11 +376,11 @@ void LLVOTree::idleUpdate(LLAgent &agent, const F64 &time)
|
|||
|
||||
if (mReferenceBuffer.isNull())
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
else if (trunk_LOD != mTrunkLOD)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, FALSE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -410,7 +410,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
|
||||
if (setVolume(volume_params, 0))
|
||||
{
|
||||
markForUpdate(TRUE);
|
||||
markForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -421,10 +421,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
//
|
||||
|
||||
S32 result = unpackTEMessage(mesgsys, _PREHASH_ObjectData, (S32) block_num);
|
||||
if (result & teDirtyBits)
|
||||
{
|
||||
updateTEData();
|
||||
}
|
||||
|
||||
if (result & TEM_CHANGE_MEDIA)
|
||||
{
|
||||
retval |= MEDIA_FLAGS_CHANGED;
|
||||
|
|
@ -446,7 +443,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
|
||||
if (setVolume(volume_params, 0))
|
||||
{
|
||||
markForUpdate(TRUE);
|
||||
markForUpdate();
|
||||
}
|
||||
S32 res2 = unpackTEMessage(*dp);
|
||||
if (TEM_INVALID == res2)
|
||||
|
|
@ -464,10 +461,6 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (res2 & teDirtyBits)
|
||||
{
|
||||
updateTEData();
|
||||
}
|
||||
if (res2 & TEM_CHANGE_MEDIA)
|
||||
{
|
||||
retval |= MEDIA_FLAGS_CHANGED;
|
||||
|
|
@ -529,8 +522,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
S32 result = unpackTEMessage(tdp);
|
||||
if (result & teDirtyBits)
|
||||
{
|
||||
updateTEData();
|
||||
if (mDrawable)
|
||||
if (mDrawable)
|
||||
{ //on the fly TE updates break batches, isolate in octree
|
||||
shrinkWrap();
|
||||
}
|
||||
|
|
@ -755,24 +747,7 @@ void LLVOVolume::animateTextures()
|
|||
void LLVOVolume::updateTextures()
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
|
||||
//const F32 TEXTURE_AREA_REFRESH_TIME = 1.f; // seconds
|
||||
//if (mTextureUpdateTimer.getElapsedTimeF32() > TEXTURE_AREA_REFRESH_TIME)
|
||||
{
|
||||
updateTextureVirtualSize();
|
||||
|
||||
/*if (mDrawable.notNull() && !isVisible() && !mDrawable->isActive())
|
||||
{ //delete vertex buffer to free up some VRAM
|
||||
LLSpatialGroup* group = mDrawable->getSpatialGroup();
|
||||
if (group && (group->mVertexBuffer.notNull() || !group->mBufferMap.empty() || !group->mDrawMap.empty()))
|
||||
{
|
||||
group->destroyGL(true);
|
||||
|
||||
//flag the group as having changed geometry so it gets a rebuild next time
|
||||
//it becomes visible
|
||||
group->setState(LLSpatialGroup::GEOM_DIRTY | LLSpatialGroup::MESH_DIRTY | LLSpatialGroup::NEW_DRAWINFO);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
updateTextureVirtualSize();
|
||||
}
|
||||
|
||||
BOOL LLVOVolume::isVisible() const
|
||||
|
|
@ -884,7 +859,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
|
|||
if ((vsize < MIN_TEX_ANIM_SIZE && old_size > MIN_TEX_ANIM_SIZE) ||
|
||||
(vsize > MIN_TEX_ANIM_SIZE && old_size < MIN_TEX_ANIM_SIZE))
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_TCOORD, FALSE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_TCOORD);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -935,7 +910,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
|
|||
(texture_discard < current_discard || //texture has more data than last rebuild
|
||||
current_discard < 0)) //no previous rebuild
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
mSculptChanged = TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -1017,7 +992,7 @@ void LLVOVolume::setScale(const LLVector3 &scale, BOOL damped)
|
|||
|
||||
//since drawable transforms do not include scale, changing volume scale
|
||||
//requires an immediate rebuild of volume verts.
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_POSITION, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_POSITION);
|
||||
|
||||
if (mDrawable)
|
||||
{
|
||||
|
|
@ -1250,7 +1225,7 @@ void LLVOVolume::updateVisualComplexity()
|
|||
void LLVOVolume::notifyMeshLoaded()
|
||||
{
|
||||
mSculptChanged = TRUE;
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
|
||||
LLVOAvatar *av = getAvatar();
|
||||
if (av && !isAnimatedObject())
|
||||
|
|
@ -1381,7 +1356,7 @@ void LLVOVolume::sculpt()
|
|||
LLVOVolume* volume = (*(mSculptTexture->getVolumeList(LLRender::SCULPT_TEX)))[i];
|
||||
if (volume != this && volume->getVolume() == getVolume())
|
||||
{
|
||||
gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE);
|
||||
gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1619,7 +1594,7 @@ BOOL LLVOVolume::updateLOD()
|
|||
|
||||
if (lod_changed)
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
mLODChanged = TRUE;
|
||||
}
|
||||
else
|
||||
|
|
@ -1648,7 +1623,7 @@ BOOL LLVOVolume::setDrawableParent(LLDrawable* parentp)
|
|||
if (!mDrawable->isRoot())
|
||||
{
|
||||
// rebuild vertices in parent relative space
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
|
||||
if (mDrawable->isActive() && !parentp->isActive())
|
||||
{
|
||||
|
|
@ -1700,7 +1675,7 @@ BOOL LLVOVolume::setParent(LLViewerObject* parent)
|
|||
if (ret && mDrawable)
|
||||
{
|
||||
gPipeline.markMoved(mDrawable);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
onReparent(old_parent, parent);
|
||||
}
|
||||
|
|
@ -2088,7 +2063,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
|
|||
LLSpatialGroup* group = drawable->getSpatialGroup();
|
||||
if (group)
|
||||
{
|
||||
group->dirtyMesh();
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
|
||||
updateRelativeXform();
|
||||
|
|
@ -2105,7 +2080,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
|
|||
|
||||
if (mVolumeChanged || mFaceMappingChanged)
|
||||
{
|
||||
dirtySpatialGroup(drawable->isState(LLDrawable::IN_REBUILD_Q1));
|
||||
dirtySpatialGroup();
|
||||
|
||||
bool was_regen_faces = false;
|
||||
should_update_octree_bounds = true;
|
||||
|
|
@ -2127,7 +2102,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
|
|||
}
|
||||
else if (mLODChanged || mSculptChanged || mColorChanged)
|
||||
{
|
||||
dirtySpatialGroup(drawable->isState(LLDrawable::IN_REBUILD_Q1));
|
||||
dirtySpatialGroup();
|
||||
compiled = TRUE;
|
||||
lodOrSculptChanged(drawable, compiled, should_update_octree_bounds);
|
||||
|
||||
|
|
@ -2298,7 +2273,7 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
|
|||
gPipeline.markTextured(mDrawable);
|
||||
//treat this alpha change as an LoD update since render batches may need to get rebuilt
|
||||
mLODChanged = TRUE;
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME);
|
||||
}
|
||||
retval = LLPrimitive::setTEColor(te, color);
|
||||
if (mDrawable.notNull() && retval)
|
||||
|
|
@ -2514,16 +2489,6 @@ S32 LLVOVolume::setTEScaleT(const U8 te, const F32 t)
|
|||
return res;
|
||||
}
|
||||
|
||||
|
||||
void LLVOVolume::updateTEData()
|
||||
{
|
||||
/*if (mDrawable.notNull())
|
||||
{
|
||||
mFaceMappingChanged = TRUE;
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_MATERIAL, TRUE);
|
||||
}*/
|
||||
}
|
||||
|
||||
bool LLVOVolume::hasMedia() const
|
||||
{
|
||||
bool result = false;
|
||||
|
|
@ -3666,7 +3631,7 @@ BOOL LLVOVolume::setIsFlexible(BOOL is_flexible)
|
|||
res = setVolume(volume_params, 1);
|
||||
if (res)
|
||||
{
|
||||
markForUpdate(TRUE);
|
||||
markForUpdate();
|
||||
}
|
||||
}
|
||||
return res;
|
||||
|
|
@ -3714,7 +3679,7 @@ void LLVOVolume::onSetExtendedMeshFlags(U32 flags)
|
|||
if (/*!getRootEdit()->isAnySelected() &&*/ mDrawable.notNull())
|
||||
{
|
||||
// Need to trigger rebuildGeom(), which is where control avatars get created/removed
|
||||
getRootEdit()->recursiveMarkForUpdate(TRUE);
|
||||
getRootEdit()->recursiveMarkForUpdate();
|
||||
}
|
||||
if (isAttachment() && getAvatarAncestor())
|
||||
{
|
||||
|
|
@ -4451,13 +4416,13 @@ void LLVOVolume::setSelected(BOOL sel)
|
|||
LLViewerObject::setSelected(sel);
|
||||
if (isAnimatedObject())
|
||||
{
|
||||
getRootEdit()->recursiveMarkForUpdate(TRUE);
|
||||
getRootEdit()->recursiveMarkForUpdate();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mDrawable.notNull())
|
||||
{
|
||||
markForUpdate(TRUE);
|
||||
markForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4554,14 +4519,14 @@ const LLMatrix4& LLVOVolume::getWorldMatrix(LLXformMatrix* xform) const
|
|||
return xform->getWorldMatrix();
|
||||
}
|
||||
|
||||
void LLVOVolume::markForUpdate(BOOL priority)
|
||||
void LLVOVolume::markForUpdate()
|
||||
{
|
||||
if (mDrawable)
|
||||
{
|
||||
shrinkWrap();
|
||||
}
|
||||
|
||||
LLViewerObject::markForUpdate(priority);
|
||||
LLViewerObject::markForUpdate();
|
||||
mVolumeChanged = TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -5497,81 +5462,6 @@ void LLVolumeGeometryManager::getGeometry(LLSpatialGroup* group)
|
|||
|
||||
}
|
||||
|
||||
void handleRenderAutoMuteByteLimitChanged(const LLSD& new_value)
|
||||
{
|
||||
static LLCachedControl<U32> render_auto_mute_byte_limit(gSavedSettings, "RenderAutoMuteByteLimit", 0U);
|
||||
|
||||
if (0 != render_auto_mute_byte_limit)
|
||||
{
|
||||
//for unload
|
||||
LLSculptIDSize::container_BY_SIZE_view::iterator
|
||||
itL = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().lower_bound(render_auto_mute_byte_limit),
|
||||
itU = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().end();
|
||||
|
||||
for (; itL != itU; ++itL)
|
||||
{
|
||||
const LLSculptIDSize::Info &nfo = *itL;
|
||||
LLVOVolume *pVVol = nfo.getPtrLLDrawable()->getVOVolume();
|
||||
if (pVVol
|
||||
&& !pVVol->isDead()
|
||||
&& pVVol->isAttachment()
|
||||
&& !pVVol->getAvatar()->isSelf()
|
||||
&& LLVOVolume::NO_LOD != pVVol->getLOD()
|
||||
)
|
||||
{
|
||||
//postponed
|
||||
pVVol->markForUnload();
|
||||
LLSculptIDSize::instance().addToUnloaded(nfo.getSculptId());
|
||||
}
|
||||
}
|
||||
|
||||
//for load if it was unload
|
||||
itL = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().begin();
|
||||
itU = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().upper_bound(render_auto_mute_byte_limit);
|
||||
|
||||
for (; itL != itU; ++itL)
|
||||
{
|
||||
const LLSculptIDSize::Info &nfo = *itL;
|
||||
LLVOVolume *pVVol = nfo.getPtrLLDrawable()->getVOVolume();
|
||||
if (pVVol
|
||||
&& !pVVol->isDead()
|
||||
&& pVVol->isAttachment()
|
||||
&& !pVVol->getAvatar()->isSelf()
|
||||
&& LLVOVolume::NO_LOD == pVVol->getLOD()
|
||||
)
|
||||
{
|
||||
LLSculptIDSize::instance().remFromUnloaded(nfo.getSculptId());
|
||||
pVVol->updateLOD();
|
||||
pVVol->markForUpdate(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSculptIDSize::instance().clearUnloaded();
|
||||
|
||||
LLSculptIDSize::container_BY_SIZE_view::iterator
|
||||
itL = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().begin(),
|
||||
itU = LLSculptIDSize::instance().getSizeInfo().get<LLSculptIDSize::tag_BY_SIZE>().end();
|
||||
|
||||
for (; itL != itU; ++itL)
|
||||
{
|
||||
const LLSculptIDSize::Info &nfo = *itL;
|
||||
LLVOVolume *pVVol = nfo.getPtrLLDrawable()->getVOVolume();
|
||||
if (pVVol
|
||||
&& !pVVol->isDead()
|
||||
&& pVVol->isAttachment()
|
||||
&& !pVVol->getAvatar()->isSelf()
|
||||
&& LLVOVolume::NO_LOD == pVVol->getLOD()
|
||||
)
|
||||
{
|
||||
pVVol->updateLOD();
|
||||
pVVol->markForUpdate(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add a face pointer to a list of face pointers without going over MAX_COUNT faces
|
||||
template<typename T>
|
||||
static inline void add_face(T*** list, U32* count, T* face)
|
||||
|
|
@ -5608,7 +5498,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
|
||||
if (!group->hasState(LLSpatialGroup::GEOM_DIRTY | LLSpatialGroup::ALPHA_DIRTY))
|
||||
{
|
||||
if (group->hasState(LLSpatialGroup::MESH_DIRTY) && !LLPipeline::sDelayVBUpdate)
|
||||
if (group->hasState(LLSpatialGroup::MESH_DIRTY))
|
||||
{
|
||||
rebuildMesh(group);
|
||||
}
|
||||
|
|
@ -6062,7 +5952,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
|
||||
group->mGeometryBytes = geometryBytes;
|
||||
|
||||
if (!LLPipeline::sDelayVBUpdate)
|
||||
{
|
||||
//drawables have been rebuilt, clear rebuild status
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
|
|
@ -6078,12 +5967,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
group->mLastUpdateTime = gFrameTimeSeconds;
|
||||
group->mBuilt = 1.f;
|
||||
group->clearState(LLSpatialGroup::GEOM_DIRTY | LLSpatialGroup::ALPHA_DIRTY);
|
||||
|
||||
if (LLPipeline::sDelayVBUpdate)
|
||||
{
|
||||
group->setState(LLSpatialGroup::MESH_DIRTY | LLSpatialGroup::NEW_DRAWINFO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
|
|
@ -6135,7 +6018,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
|||
vobj->getRelativeXform(), vobj->getRelativeXformInvTrans(), face->getGeomIndex()))
|
||||
{ //something's gone wrong with the vertex buffer accounting, rebuild this group
|
||||
group->dirtyGeom();
|
||||
gPipeline.markRebuild(group, TRUE);
|
||||
gPipeline.markRebuild(group);
|
||||
}
|
||||
|
||||
buff->unmapBuffer();
|
||||
|
|
@ -6497,7 +6380,6 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
//for debugging, set last time face was updated vs moved
|
||||
facep->updateRebuildFlags();
|
||||
|
||||
if (!LLPipeline::sDelayVBUpdate)
|
||||
{ //copy face geometry into vertex buffer
|
||||
LLDrawable* drawablep = facep->getDrawable();
|
||||
LLVOVolume* vobj = drawablep->getVOVolume();
|
||||
|
|
|
|||
|
|
@ -179,8 +179,7 @@ public:
|
|||
F32 getVObjRadius() const override { return mVObjRadius; };
|
||||
const LLMatrix4& getWorldMatrix(LLXformMatrix* xform) const override;
|
||||
|
||||
void markForUpdate(BOOL priority) override;
|
||||
void markForUnload() { LLViewerObject::markForUnload(TRUE); mVolumeChanged = TRUE; }
|
||||
void markForUpdate() override;
|
||||
void faceMappingChanged() override { mFaceMappingChanged=TRUE; }
|
||||
|
||||
/*virtual*/ void onShift(const LLVector4a &shift_vector) override; // Called when the drawable shifts
|
||||
|
|
@ -422,8 +421,7 @@ protected:
|
|||
S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
|
||||
BOOL calcLOD();
|
||||
LLFace* addFace(S32 face_index);
|
||||
void updateTEData();
|
||||
|
||||
|
||||
// stats tracking for render complexity
|
||||
static S32 mRenderComplexity_last;
|
||||
static S32 mRenderComplexity_current;
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ void LLVOWLSky::resetVertexBuffers()
|
|||
mStarsVerts = nullptr;
|
||||
mFsSkyVerts = nullptr;
|
||||
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
|
||||
void LLVOWLSky::cleanupGL()
|
||||
|
|
@ -139,7 +139,7 @@ void LLVOWLSky::cleanupGL()
|
|||
void LLVOWLSky::restoreGL()
|
||||
{
|
||||
LLDrawPoolWLSky::restoreGL();
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
|
||||
BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable)
|
||||
|
|
|
|||
|
|
@ -283,7 +283,6 @@ bool LLPipeline::sRenderHighlight = true;
|
|||
LLRender::eTexIndex LLPipeline::sRenderHighlightTextureChannel = LLRender::DIFFUSE_MAP;
|
||||
bool LLPipeline::sForceOldBakedUpload = false;
|
||||
S32 LLPipeline::sUseOcclusion = 0;
|
||||
bool LLPipeline::sDelayVBUpdate = true;
|
||||
bool LLPipeline::sAutoMaskAlphaDeferred = true;
|
||||
bool LLPipeline::sAutoMaskAlphaNonDeferred = false;
|
||||
bool LLPipeline::sRenderTransparentWater = true;
|
||||
|
|
@ -474,7 +473,6 @@ void LLPipeline::init()
|
|||
connectRefreshCachedSettingsSafe("RenderAutoMaskAlphaNonDeferred");
|
||||
connectRefreshCachedSettingsSafe("RenderUseFarClip");
|
||||
connectRefreshCachedSettingsSafe("RenderAvatarMaxNonImpostors");
|
||||
connectRefreshCachedSettingsSafe("RenderDelayVBUpdate");
|
||||
connectRefreshCachedSettingsSafe("UseOcclusion");
|
||||
// DEPRECATED -- connectRefreshCachedSettingsSafe("WindLightUseAtmosShaders");
|
||||
// DEPRECATED -- connectRefreshCachedSettingsSafe("RenderDeferred");
|
||||
|
|
@ -953,7 +951,6 @@ void LLPipeline::refreshCachedSettings()
|
|||
LLPipeline::sUseFarClip = gSavedSettings.getBOOL("RenderUseFarClip");
|
||||
LLVOAvatar::sMaxNonImpostors = gSavedSettings.getU32("RenderAvatarMaxNonImpostors");
|
||||
LLVOAvatar::updateImpostorRendering(LLVOAvatar::sMaxNonImpostors);
|
||||
LLPipeline::sDelayVBUpdate = gSavedSettings.getBOOL("RenderDelayVBUpdate");
|
||||
|
||||
LLPipeline::sUseOcclusion =
|
||||
(!gUseWireframe
|
||||
|
|
@ -1759,7 +1756,7 @@ void LLPipeline::createObject(LLViewerObject* vobj)
|
|||
vobj->setDrawableParent(NULL); // LLPipeline::addObject 2
|
||||
}
|
||||
|
||||
markRebuild(drawablep, LLDrawable::REBUILD_ALL, TRUE);
|
||||
markRebuild(drawablep, LLDrawable::REBUILD_ALL);
|
||||
|
||||
if (drawablep->getVOVolume() && RenderAnimateRes)
|
||||
{
|
||||
|
|
@ -1875,10 +1872,10 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list)
|
|||
{ //will likely not receive any future world matrix updates
|
||||
// -- this keeps attachments from getting stuck in space and falling off your avatar
|
||||
drawablep->clearState(LLDrawable::ANIMATED_CHILD);
|
||||
markRebuild(drawablep, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
markRebuild(drawablep, LLDrawable::REBUILD_VOLUME);
|
||||
if (drawablep->getVObj())
|
||||
{
|
||||
drawablep->getVObj()->dirtySpatialGroup(TRUE);
|
||||
drawablep->getVObj()->dirtySpatialGroup();
|
||||
}
|
||||
}
|
||||
iter = moved_list.erase(curiter);
|
||||
|
|
@ -2977,67 +2974,31 @@ void LLPipeline::markMeshDirty(LLSpatialGroup* group)
|
|||
mMeshDirtyGroup.push_back(group);
|
||||
}
|
||||
|
||||
void LLPipeline::markRebuild(LLSpatialGroup* group, bool priority)
|
||||
void LLPipeline::markRebuild(LLSpatialGroup* group)
|
||||
{
|
||||
if (group && !group->isDead() && group->getSpatialPartition())
|
||||
{
|
||||
if (group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_HUD)
|
||||
if (!group->hasState(LLSpatialGroup::IN_BUILD_Q1))
|
||||
{
|
||||
priority = true;
|
||||
}
|
||||
|
||||
if (priority)
|
||||
{
|
||||
if (!group->hasState(LLSpatialGroup::IN_BUILD_Q1))
|
||||
{
|
||||
llassert_always(!mGroupQ1Locked);
|
||||
|
||||
mGroupQ1.push_back(group);
|
||||
group->setState(LLSpatialGroup::IN_BUILD_Q1);
|
||||
|
||||
if (group->hasState(LLSpatialGroup::IN_BUILD_Q2))
|
||||
{
|
||||
LLSpatialGroup::sg_vector_t::iterator iter = std::find(mGroupQ2.begin(), mGroupQ2.end(), group);
|
||||
if (iter != mGroupQ2.end())
|
||||
{
|
||||
mGroupQ2.erase(iter);
|
||||
}
|
||||
group->clearState(LLSpatialGroup::IN_BUILD_Q2);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!group->hasState(LLSpatialGroup::IN_BUILD_Q2 | LLSpatialGroup::IN_BUILD_Q1))
|
||||
{
|
||||
llassert_always(!mGroupQ2Locked);
|
||||
mGroupQ2.push_back(group);
|
||||
group->setState(LLSpatialGroup::IN_BUILD_Q2);
|
||||
llassert_always(!mGroupQ1Locked);
|
||||
|
||||
mGroupQ1.push_back(group);
|
||||
group->setState(LLSpatialGroup::IN_BUILD_Q1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag, bool priority)
|
||||
void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag)
|
||||
{
|
||||
if (drawablep && !drawablep->isDead() && assertInitialized())
|
||||
{
|
||||
if (!drawablep->isState(LLDrawable::BUILT))
|
||||
if (!drawablep->isState(LLDrawable::IN_REBUILD_Q1))
|
||||
{
|
||||
priority = true;
|
||||
mBuildQ1.push_back(drawablep);
|
||||
drawablep->setState(LLDrawable::IN_REBUILD_Q1); // mark drawable as being in priority queue
|
||||
}
|
||||
if (priority)
|
||||
{
|
||||
if (!drawablep->isState(LLDrawable::IN_REBUILD_Q1))
|
||||
{
|
||||
mBuildQ1.push_back(drawablep);
|
||||
drawablep->setState(LLDrawable::IN_REBUILD_Q1); // mark drawable as being in priority queue
|
||||
}
|
||||
}
|
||||
else if (!drawablep->isState(LLDrawable::IN_REBUILD_Q2))
|
||||
{
|
||||
mBuildQ2.push_back(drawablep);
|
||||
drawablep->setState(LLDrawable::IN_REBUILD_Q2); // need flag here because it is just a list
|
||||
}
|
||||
if (flag & (LLDrawable::REBUILD_VOLUME | LLDrawable::REBUILD_POSITION))
|
||||
|
||||
if (flag & (LLDrawable::REBUILD_VOLUME | LLDrawable::REBUILD_POSITION))
|
||||
{
|
||||
drawablep->getVObj()->setChanged(LLXform::SILHOUETTE);
|
||||
}
|
||||
|
|
@ -3083,7 +3044,6 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
markVisible(drawablep, camera);
|
||||
}
|
||||
|
||||
if (!sDelayVBUpdate)
|
||||
{ //rebuild mesh as soon as we know it's visible
|
||||
group->rebuildMesh();
|
||||
}
|
||||
|
|
@ -3139,7 +3099,6 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
group->setVisible();
|
||||
stateSort(group, camera);
|
||||
|
||||
if (!sDelayVBUpdate)
|
||||
{ //rebuild mesh as soon as we know it's visible
|
||||
group->rebuildMesh();
|
||||
}
|
||||
|
|
@ -10759,7 +10718,7 @@ void LLPipeline::hideObject( const LLUUID& id )
|
|||
void LLPipeline::hideDrawable( LLDrawable *pDrawable )
|
||||
{
|
||||
pDrawable->setState( LLDrawable::FORCE_INVISIBLE );
|
||||
markRebuild( pDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
markRebuild( pDrawable, LLDrawable::REBUILD_ALL);
|
||||
//hide the children
|
||||
LLViewerObject::const_child_list_t& child_list = pDrawable->getVObj()->getChildren();
|
||||
for ( LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
|
||||
|
|
@ -10770,14 +10729,14 @@ void LLPipeline::hideDrawable( LLDrawable *pDrawable )
|
|||
if ( drawable )
|
||||
{
|
||||
drawable->setState( LLDrawable::FORCE_INVISIBLE );
|
||||
markRebuild( drawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
markRebuild( drawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
}
|
||||
void LLPipeline::unhideDrawable( LLDrawable *pDrawable )
|
||||
{
|
||||
pDrawable->clearState( LLDrawable::FORCE_INVISIBLE );
|
||||
markRebuild( pDrawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
markRebuild( pDrawable, LLDrawable::REBUILD_ALL);
|
||||
//restore children
|
||||
LLViewerObject::const_child_list_t& child_list = pDrawable->getVObj()->getChildren();
|
||||
for ( LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
|
||||
|
|
@ -10788,7 +10747,7 @@ void LLPipeline::unhideDrawable( LLDrawable *pDrawable )
|
|||
if ( drawable )
|
||||
{
|
||||
drawable->clearState( LLDrawable::FORCE_INVISIBLE );
|
||||
markRebuild( drawable, LLDrawable::REBUILD_ALL, TRUE );
|
||||
markRebuild( drawable, LLDrawable::REBUILD_ALL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -191,8 +191,8 @@ public:
|
|||
void markShift(LLDrawable *drawablep);
|
||||
void markTextured(LLDrawable *drawablep);
|
||||
void markGLRebuild(LLGLUpdate* glu);
|
||||
void markRebuild(LLSpatialGroup* group, bool priority = false);
|
||||
void markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag = LLDrawable::REBUILD_ALL, bool priority = false);
|
||||
void markRebuild(LLSpatialGroup* group);
|
||||
void markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag = LLDrawable::REBUILD_ALL);
|
||||
void markPartitionMove(LLDrawable* drawablep);
|
||||
void markMeshDirty(LLSpatialGroup* group);
|
||||
|
||||
|
|
@ -637,7 +637,6 @@ public:
|
|||
static bool sShowHUDAttachments;
|
||||
static bool sForceOldBakedUpload; // If true will not use capabilities to upload baked textures.
|
||||
static S32 sUseOcclusion; // 0 = no occlusion, 1 = read only, 2 = read/write
|
||||
static bool sDelayVBUpdate;
|
||||
static bool sAutoMaskAlphaDeferred;
|
||||
static bool sAutoMaskAlphaNonDeferred;
|
||||
static bool sRenderTransparentWater;
|
||||
|
|
|
|||
Loading…
Reference in New Issue