diff options
author | Dave Parks <davep@lindenlab.com> | 2012-04-20 00:58:55 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2012-04-20 00:58:55 -0500 |
commit | 5ef21ba6c5b0d6c8b5f201c7d2bede983504383c (patch) | |
tree | d829f19bc766771b1adb61409fbc946c47f64797 /indra/newview/pipeline.cpp | |
parent | d953cce3868cf53b3f84e1fdd97119c83d3dff7d (diff) |
MAINT-775 More edge case cleanup -- spinning child prims still break on deselect until the next LoD update
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r-- | indra/newview/pipeline.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 5d4258ee30..4a0ccb3e5d 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1793,7 +1793,17 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list) drawablep->clearState(LLDrawable::EARLY_MOVE | LLDrawable::MOVE_UNDAMPED); if (done) { - drawablep->clearState(LLDrawable::ON_MOVE_LIST | LLDrawable::ANIMATED_CHILD); + drawablep->clearState(LLDrawable::ON_MOVE_LIST); + if (drawablep->isState(LLDrawable::ANIMATED_CHILD)) // && drawablep->getVObj()->getAngularVelocity().isExactlyZero()) + { //not a target omega object, will likely not receive any future world matrix updates + // -- this keeps attachments from getting stuck in space and falling off your avatar + drawablep->clearState(LLDrawable::ANIMATED_CHILD); + LLSpatialGroup* group = drawablep->getSpatialGroup(); + if (group) + { + group->dirtyGeom(); + } + } iter = moved_list.erase(curiter); } } |