summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobjectlist.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2012-06-20 18:29:18 -0500
committerDave Parks <davep@lindenlab.com>2012-06-20 18:29:18 -0500
commit7929db82d1d1db8d4ce7ecbd8436c51dea106f82 (patch)
tree4708ae96991d132921d6cb4802623c8e631ef01a /indra/newview/llviewerobjectlist.cpp
parentc030e3a51dac452936bc67690eedefe9fb5092d5 (diff)
MAINT-794 Move flexi idleUpdate and texture animation to their own update queues.
Diffstat (limited to 'indra/newview/llviewerobjectlist.cpp')
-rw-r--r--indra/newview/llviewerobjectlist.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 21a0331f70..be29621805 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -49,6 +49,8 @@
#include "llstring.h"
#include "llhudnametag.h"
#include "lldrawable.h"
+#include "llflexibleobject.h"
+#include "llviewertextureanim.h"
#include "xform.h"
#include "llsky.h"
#include "llviewercamera.h"
@@ -941,6 +943,8 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
objectp = *active_iter;
if (objectp)
{
+ llassert(objectp->isActive());
+
if (idle_count >= idle_list.size())
{
idle_list.push_back( objectp );
@@ -979,10 +983,19 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
idle_iter != idle_end; idle_iter++)
{
objectp = *idle_iter;
+ llassert(objectp->isActive());
objectp->idleUpdate(agent, world, frame_time);
}
+
+ //update flexible objects
+ LLVolumeImplFlexible::updateClass();
+
+ //update animated textures
+ LLViewerTextureAnim::updateClass();
}
+
+
fetchObjectCosts();
fetchPhysicsFlags();
@@ -1402,8 +1415,9 @@ void LLViewerObjectList::removeFromActiveList(LLViewerObject* objectp)
{
mActiveObjects[idx] = mActiveObjects[last_index];
mActiveObjects[idx]->setListIndex(idx);
- mActiveObjects.pop_back();
}
+
+ mActiveObjects.pop_back();
}
}
@@ -1447,6 +1461,9 @@ void LLViewerObjectList::updateActive(LLViewerObject *objectp)
objectp->setOnActiveList(FALSE);
}
}
+
+ llassert(objectp->isActive() || objectp->getListIndex() == -1);
+
}
void LLViewerObjectList::updateObjectCost(LLViewerObject* object)