diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2012-11-08 21:36:47 -0700 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2012-11-08 21:36:47 -0700 |
commit | c2859e4663c405950b6f433270ae558852330c76 (patch) | |
tree | 2cd7873a89bbb1e4772ab9a92324b1e86814cb49 /indra/newview/lldrawable.cpp | |
parent | 8e6341b9194b1fb27d92d8f5e6739390ac882941 (diff) |
for SH-3472: prioritize object loading
Diffstat (limited to 'indra/newview/lldrawable.cpp')
-rw-r--r-- | indra/newview/lldrawable.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index e29551e83c..c782fbfe7e 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -470,7 +470,13 @@ void LLDrawable::makeActive() } updatePartition(); } - + else if (!isRoot() && !mParent->isActive()) //this should not happen, but occasionally it does... + { + mParent->makeActive(); + //NOTE: linked set will now NEVER become static + mParent->setState(LLDrawable::ACTIVE_CHILD); + } + llassert(isAvatar() || isRoot() || mParent->isActive()); } @@ -1093,6 +1099,11 @@ LLSpatialBridge::LLSpatialBridge(LLDrawable* root, BOOL render_by_group, U32 dat { part->put(this); } + + if(mDrawable->getEntry()->hasVOCacheEntry()) + { + ((LLVOCacheEntry*)mDrawable->getEntry()->getVOCacheEntry())->setBridgeChild(); + } } LLSpatialBridge::~LLSpatialBridge() @@ -1470,9 +1481,9 @@ void LLSpatialBridge::cleanupReferences() dummy_entry = new LLVOCacheEntry(); dummy_entry->setOctreeEntry(mEntry); dummy_entry->addChild((LLVOCacheEntry*)mDrawable->getEntry()->getVOCacheEntry()); - llassert(!mDrawable->getParent()); + //llassert(!mDrawable->getParent()); - mDrawable->mParent = this; + //mDrawable->mParent = this; } LLDrawable::cleanupReferences(); |