void LLDrawable::makeActive() { #if !LL_RELEASE_FOR_DOWNLOAD if (mVObjp.notNull()) { U32 pcode = mVObjp->getPCode(); if (pcode == LLViewerObject::LL_VO_WATER || pcode == LLViewerObject::LL_VO_VOID_WATER || pcode == LLViewerObject::LL_VO_SURFACE_PATCH || pcode == LLViewerObject::LL_VO_PART_GROUP || pcode == LLViewerObject::LL_VO_HUD_PART_GROUP || #if ENABLE_CLASSIC_CLOUDS pcode == LLViewerObject::LL_VO_CLOUDS || #endif pcode == LLViewerObject::LL_VO_GROUND || pcode == LLViewerObject::LL_VO_SKY) { LL_ERRS() << "Static viewer object has active drawable!" << LL_ENDL; } } #endif if (!isState(ACTIVE)) // && mGeneration > 0) { setState(ACTIVE); //parent must be made active first if (!isRoot() && !mParent->isActive()) { mParent->makeActive(); //NOTE: linked set will now NEVER become static mParent->setState(LLDrawable::ACTIVE_CHILD); } //all child objects must also be active llassert_always(mVObjp); LLViewerObject::const_child_list_t& child_list = mVObjp->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* drawable = child->mDrawable; if (drawable) { drawable->makeActive(); } } if (mVObjp->getPCode() == LL_PCODE_VOLUME) { gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE); } updatePartition(); } llassert(isAvatar() || isRoot() || mParent->isActive()); }
void LLDrawable::makeStatic(BOOL warning_enabled) { if (isState(ACTIVE) && !isState(ACTIVE_CHILD) && !mVObjp->isAttachment() && !mVObjp->isFlexible()) { clearState(ACTIVE | ANIMATED_CHILD); //drawable became static with active parent, not acceptable llassert(mParent.isNull() || !mParent->isActive() || !warning_enabled); LLViewerObject::const_child_list_t& child_list = mVObjp->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* child_drawable = child->mDrawable; if (child_drawable) { if (child_drawable->getParent() != this) { LL_WARNS() << "Child drawable has unknown parent." << LL_ENDL; } child_drawable->makeStatic(warning_enabled); } } if (mVObjp->getPCode() == LL_PCODE_VOLUME) { gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE); } if (mSpatialBridge) { mSpatialBridge->markDead(); setSpatialBridge(NULL); } updatePartition(); } }
void LLDrawable::makeStatic(BOOL warning_enabled) { if (isState(ACTIVE)) { clearState(ACTIVE); gPipeline.setActive(this, FALSE); if (mParent.notNull() && mParent->isActive() && warning_enabled) { LL_WARNS_ONCE("Drawable") << "Drawable becomes static with active parent!" << LL_ENDL; } LLViewerObject::const_child_list_t& child_list = mVObjp->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* child_drawable = child->mDrawable; if (child_drawable) { if (child_drawable->getParent() != this) { llwarns << "Child drawable has unknown parent." << llendl; } child_drawable->makeStatic(warning_enabled); } } if (mVObjp->getPCode() == LL_PCODE_VOLUME) { gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE); } if (mSpatialBridge) { mSpatialBridge->markDead(); setSpatialBridge(NULL); } } updatePartition(); }
void LLDrawable::makeActive() { #if !LL_RELEASE_FOR_DOWNLOAD if (mVObjp.notNull()) { U32 pcode = mVObjp->getPCode(); if (pcode == LLViewerObject::LL_VO_WATER || pcode == LLViewerObject::LL_VO_VOID_WATER || pcode == LLViewerObject::LL_VO_SURFACE_PATCH || pcode == LLViewerObject::LL_VO_PART_GROUP || pcode == LLViewerObject::LL_VO_HUD_PART_GROUP || pcode == LLViewerObject::LL_VO_GROUND || pcode == LLViewerObject::LL_VO_SKY) { llerrs << "Static viewer object has active drawable!" << llendl; } } #endif if (!isState(ACTIVE)) // && mGeneration > 0) { setState(ACTIVE); //parent must be made active first if (!isRoot() && !mParent->isActive()) { mParent->makeActive(); } //all child objects must also be active llassert_always(mVObjp); LLViewerObject::const_child_list_t& child_list = mVObjp->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) { LLViewerObject* child = *iter; LLDrawable* drawable = child->mDrawable; if (drawable) { drawable->makeActive(); } } if (mVObjp->getPCode() == LL_PCODE_VOLUME) { if (mVObjp->isFlexible()) { return; } } if (mVObjp->getPCode() == LL_PCODE_VOLUME) { gPipeline.markRebuild(this, LLDrawable::REBUILD_VOLUME, TRUE); } updatePartition(); } if (isRoot()) { mQuietCount = 0; } else { getParent()->mQuietCount = 0; } }
void pPartitionModel::addPartition( const QString& partition ) { updatePartition( pPartition( partition ) ); }