diff options
| author | Geenz <geenz@geenzo.com> | 2013-05-13 22:22:51 -0400 |
|---|---|---|
| committer | Geenz <geenz@geenzo.com> | 2013-05-13 22:22:51 -0400 |
| commit | 3779e51bfc2010877960d11b463c7316514bf991 (patch) | |
| tree | ab528a6e7f78f136f9d0f0f7e939264897a44ae1 /indra/newview/llflexibleobject.cpp | |
| parent | b27899ee0e035ebd4072a5e6162678f2afe81053 (diff) | |
| parent | 4dd245055f3417d8f8fb611a198ed5671dbce292 (diff) | |
Merged with https://bitbucket.org/lindenlab/viewer-beta
Diffstat (limited to 'indra/newview/llflexibleobject.cpp')
| -rwxr-xr-x[-rw-r--r--] | indra/newview/llflexibleobject.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index 77a0cdffce..caad0afec0 100644..100755 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -270,9 +270,6 @@ void LLVolumeImplFlexible::setAttributesOfAllSections(LLVector3* inScale) mSection[0].mVelocity.setVec(0,0,0); mSection[0].mAxisRotation.setQuat(begin_rot,0,0,1); - LLVector3 parentSectionPosition = mSection[0].mPosition; - LLVector3 last_direction = mSection[0].mDirection; - remapSections(mSection, mInitializedRes, mSection, mSimulateRes); mInitializedRes = mSimulateRes; @@ -342,10 +339,10 @@ void LLVolumeImplFlexible::doIdleUpdate() if (drawablep) { //LLFastTimer ftm(FTM_FLEXIBLE_UPDATE); - + //ensure drawable is active drawablep->makeActive(); - + if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE)) { bool visible = drawablep->isVisible(); @@ -381,21 +378,31 @@ void LLVolumeImplFlexible::doIdleUpdate() id = parent->getVolumeInterfaceID(); } - if ((LLDrawable::getCurrentFrame()+id)%update_period == 0) - { + if (mVO->isRootEdit()) + { + id = mID; + } + else + { + LLVOVolume* parent = (LLVOVolume*) mVO->getParent(); + id = parent->getVolumeInterfaceID(); + } + + if ((LLDrawable::getCurrentFrame()+id)%update_period == 0) + { sUpdateDelay[mInstanceIndex] = (S32) update_period-1; - updateRenderRes(); + updateRenderRes(); - gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE); - } - } + gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE); } + } + } else { sUpdateDelay[mInstanceIndex] = (S32) update_period; - } - } + } +} } } @@ -420,7 +427,6 @@ void LLVolumeImplFlexible::doFlexibleUpdate() if ((mSimulateRes == 0 || !mInitialized) && mVO->mDrawable->isVisible()) { BOOL force_update = mSimulateRes == 0 ? TRUE : FALSE; - doIdleUpdate(); if (!force_update || !gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FLEXIBLE)) @@ -435,7 +441,7 @@ void LLVolumeImplFlexible::doFlexibleUpdate() return ; } - // stinson 11/12/2012: Need to check with davep on the following. + // Fix for MAINT-1894 // 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. |
