summaryrefslogtreecommitdiff
path: root/indra/newview/llflexibleobject.cpp
diff options
context:
space:
mode:
authorMaximB ProductEngine <mberezhnoy@productengine.com>2012-11-15 18:49:09 +0200
committerMaximB ProductEngine <mberezhnoy@productengine.com>2012-11-15 18:49:09 +0200
commited202aaad52bcf934e89fd4e51d7217d2990574e (patch)
tree9074b6257550cb3b835b7fbd3b83e462e1348fa0 /indra/newview/llflexibleobject.cpp
parentdbc37f6ca74dba6c6d5194e0397d5cfe6f570c1d (diff)
parent7a088e9b2c8ffddbf5cd8dad72281a64a32d7c63 (diff)
merging into latest changes
Diffstat (limited to 'indra/newview/llflexibleobject.cpp')
-rw-r--r--indra/newview/llflexibleobject.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 606d77f645..aae0990e4b 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -96,6 +96,18 @@ LLVolumeImplFlexible::~LLVolumeImplFlexible()
//static
void LLVolumeImplFlexible::updateClass()
{
+ // XXX stinson 11/13/2012 : This hack removes the optimization for limiting the number of flexi-prims
+ // updated. With the optimization, flexi-prims attached to the users avatar were not being
+ // animated correctly immediately following teleport. With the optimization removed, the bug went away.
+#define XXX_STINSON_MAINT_1890_HACK_FIX 1
+#if XXX_STINSON_MAINT_1890_HACK_FIX
+ for (std::vector<LLVolumeImplFlexible*>::iterator iter = sInstanceList.begin();
+ iter != sInstanceList.end();
+ ++iter)
+ {
+ (*iter)->doIdleUpdate();
+ }
+#else // XXX_STINSON_MAINT_1890_HACK_FIX
std::vector<S32>::iterator delay_iter = sUpdateDelay.begin();
for (std::vector<LLVolumeImplFlexible*>::iterator iter = sInstanceList.begin();
@@ -109,6 +121,7 @@ void LLVolumeImplFlexible::updateClass()
}
++delay_iter;
}
+#endif // XXX_STINSON_MAINT_1890_HACK_FIX
}
LLVector3 LLVolumeImplFlexible::getFramePosition() const
@@ -430,6 +443,15 @@ void LLVolumeImplFlexible::doFlexibleUpdate()
//the object is not visible
return ;
}
+
+ // stinson 11/12/2012: Need to check with davep on the following.
+ // Skipping the flexible update if render res is negative. If we were to continue with a negative value,
+ // the subsequent S32 num_render_sections = 1<<mRenderRes; code will specify a really large number of
+ // render sections which will then create a length exception in the std::vector::resize() method.
+ if (mRenderRes < 0)
+ {
+ return;
+ }
S32 num_sections = 1 << mSimulateRes;