Skip to content
Snippets Groups Projects
Commit 18e20ca6 authored by David Parks's avatar David Parks
Browse files

MAINT-1270 Fix for flexi prims showing up as discs when first loading.

Reviewed by Stinson.
parent dbcefbee
No related branches found
No related tags found
No related merge requests found
...@@ -66,7 +66,7 @@ LLVolumeImplFlexible::LLVolumeImplFlexible(LLViewerObject* vo, LLFlexibleObjectD ...@@ -66,7 +66,7 @@ LLVolumeImplFlexible::LLVolumeImplFlexible(LLViewerObject* vo, LLFlexibleObjectD
mSimulateRes = 0; mSimulateRes = 0;
mFrameNum = 0; mFrameNum = 0;
mCollisionSphereRadius = 0.f; mCollisionSphereRadius = 0.f;
mRenderRes = 1; mRenderRes = -1;
if(mVO->mDrawable.notNull()) if(mVO->mDrawable.notNull())
{ {
...@@ -350,16 +350,17 @@ void LLVolumeImplFlexible::doIdleUpdate() ...@@ -350,16 +350,17 @@ void LLVolumeImplFlexible::doIdleUpdate()
{ {
bool visible = drawablep->isVisible(); bool visible = drawablep->isVisible();
if ((mSimulateRes == 0) && visible) if (mRenderRes == -1)
{ {
updateRenderRes(); updateRenderRes();
gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE); gPipeline.markRebuild(drawablep, LLDrawable::REBUILD_POSITION, FALSE);
sUpdateDelay[mInstanceIndex] = 0;
} }
else else
{ {
F32 pixel_area = mVO->getPixelArea(); 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) if (visible)
{ {
...@@ -639,6 +640,7 @@ void LLVolumeImplFlexible::doFlexibleUpdate() ...@@ -639,6 +640,7 @@ void LLVolumeImplFlexible::doFlexibleUpdate()
mSection[i].mdPosition = (mSection[i].mPosition - mSection[i-1].mPosition) * inv_section_length; mSection[i].mdPosition = (mSection[i].mPosition - mSection[i-1].mPosition) * inv_section_length;
// Create points // Create points
llassert(mRenderRes > -1)
S32 num_render_sections = 1<<mRenderRes; S32 num_render_sections = 1<<mRenderRes;
if (path->getPathLength() != num_render_sections+1) if (path->getPathLength() != num_render_sections+1)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment