diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llflexibleobject.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index a37e27363f..ade469e50d 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -66,7 +66,7 @@ LLVolumeImplFlexible::LLVolumeImplFlexible(LLViewerObject* vo, LLFlexibleObjectD  	mSimulateRes = 0;  	mFrameNum = 0;  	mCollisionSphereRadius = 0.f; -	mRenderRes = 1; +	mRenderRes = -1;  	if(mVO->mDrawable.notNull())  	{ @@ -350,16 +350,17 @@ void LLVolumeImplFlexible::doIdleUpdate()  		{  			bool visible = drawablep->isVisible(); -			if ((mSimulateRes == 0) && visible) +			if (mRenderRes == -1)  			{  				updateRenderRes();  				gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE); +				sUpdateDelay[mInstanceIndex] = 0;  			}  			else  			{  				F32 pixel_area = mVO->getPixelArea(); -				U32 update_period = (U32) (LLViewerCamera::getInstance()->getScreenPixelArea()*0.01f/(pixel_area*(sUpdateFactor+1.f)))+1; +				U32 update_period = (U32) (llmax((S32) (LLViewerCamera::getInstance()->getScreenPixelArea()*0.01f/(pixel_area*(sUpdateFactor+1.f))),0)+1);  				if	(visible)  				{ @@ -639,6 +640,7 @@ void LLVolumeImplFlexible::doFlexibleUpdate()  	mSection[i].mdPosition = (mSection[i].mPosition - mSection[i-1].mPosition) * inv_section_length;  	// Create points +	llassert(mRenderRes > -1)  	S32 num_render_sections = 1<<mRenderRes;  	if (path->getPathLength() != num_render_sections+1)  	{ | 
