diff options
author | William Todd Stinson <stinson@lindenlab.com> | 2012-11-19 11:24:57 -0800 |
---|---|---|
committer | William Todd Stinson <stinson@lindenlab.com> | 2012-11-19 11:24:57 -0800 |
commit | f50b58a11b54d19a7a3f54d8bfd77fb5ce13b6f3 (patch) | |
tree | 5f2e26da4b949547a124aa3d088316b5deeca322 /indra/newview/llflexibleobject.cpp | |
parent | d7b55d0fa7f7f00a3811e62a9874999e9e0d0a8a (diff) | |
parent | 185169cbbecebe2a35dbd937d6fb4e0a30fa1832 (diff) |
Pull and merge from https://bitbucket.org/lindenlab/viewer-development.
Diffstat (limited to 'indra/newview/llflexibleobject.cpp')
-rw-r--r-- | indra/newview/llflexibleobject.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index ef412a6bbf..f5bf900d0d 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 @@ -431,6 +444,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; |