diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/lldrawable.cpp | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index a228f68..71c9ebb 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp | |||
@@ -127,7 +127,6 @@ void LLDrawable::destroy() | |||
127 | llerrs << "Illegal deletion of LLDrawable!" << llendl; | 127 | llerrs << "Illegal deletion of LLDrawable!" << llendl; |
128 | } | 128 | } |
129 | 129 | ||
130 | LLFace::sDeleteLock = mFaces.size() ; | ||
131 | std::for_each(mFaces.begin(), mFaces.end(), DeletePointer()); | 130 | std::for_each(mFaces.begin(), mFaces.end(), DeletePointer()); |
132 | mFaces.clear(); | 131 | mFaces.clear(); |
133 | 132 | ||
@@ -190,7 +189,6 @@ void LLDrawable::cleanupReferences() | |||
190 | { | 189 | { |
191 | LLFastTimer t(LLFastTimer::FTM_PIPELINE); | 190 | LLFastTimer t(LLFastTimer::FTM_PIPELINE); |
192 | 191 | ||
193 | LLFace::sDeleteLock = mFaces.size() ; | ||
194 | std::for_each(mFaces.begin(), mFaces.end(), DeletePointer()); | 192 | std::for_each(mFaces.begin(), mFaces.end(), DeletePointer()); |
195 | mFaces.clear(); | 193 | mFaces.clear(); |
196 | 194 | ||
@@ -284,7 +282,6 @@ void LLDrawable::setNumFaces(const S32 newFaces, LLFacePool *poolp, LLViewerImag | |||
284 | } | 282 | } |
285 | else if (newFaces < (S32)mFaces.size()) | 283 | else if (newFaces < (S32)mFaces.size()) |
286 | { | 284 | { |
287 | LLFace::sDeleteLock = (S32)mFaces.size() - newFaces ; | ||
288 | std::for_each(mFaces.begin() + newFaces, mFaces.end(), DeletePointer()); | 285 | std::for_each(mFaces.begin() + newFaces, mFaces.end(), DeletePointer()); |
289 | mFaces.erase(mFaces.begin() + newFaces, mFaces.end()); | 286 | mFaces.erase(mFaces.begin() + newFaces, mFaces.end()); |
290 | } | 287 | } |
@@ -308,7 +305,6 @@ void LLDrawable::setNumFacesFast(const S32 newFaces, LLFacePool *poolp, LLViewer | |||
308 | } | 305 | } |
309 | else if (newFaces < (S32)mFaces.size()) | 306 | else if (newFaces < (S32)mFaces.size()) |
310 | { | 307 | { |
311 | LLFace::sDeleteLock = (S32)mFaces.size() - newFaces ; | ||
312 | std::for_each(mFaces.begin() + newFaces, mFaces.end(), DeletePointer()); | 308 | std::for_each(mFaces.begin() + newFaces, mFaces.end(), DeletePointer()); |
313 | mFaces.erase(mFaces.begin() + newFaces, mFaces.end()); | 309 | mFaces.erase(mFaces.begin() + newFaces, mFaces.end()); |
314 | } | 310 | } |
@@ -343,12 +339,8 @@ void LLDrawable::deleteFaces(S32 offset, S32 count) | |||
343 | face_list_t::iterator face_begin = mFaces.begin() + offset; | 339 | face_list_t::iterator face_begin = mFaces.begin() + offset; |
344 | face_list_t::iterator face_end = face_begin + count; | 340 | face_list_t::iterator face_end = face_begin + count; |
345 | 341 | ||
346 | S32 end = (S32)mFaces.size() ; | ||
347 | LLFace::sDeleteLock = count ; | ||
348 | std::for_each(face_begin, face_end, DeletePointer()); | 342 | std::for_each(face_begin, face_end, DeletePointer()); |
349 | mFaces.erase(face_begin, face_end); | 343 | mFaces.erase(face_begin, face_end); |
350 | |||
351 | llassert_always(mFaces.size() == end - count) ; | ||
352 | } | 344 | } |
353 | 345 | ||
354 | void LLDrawable::update() | 346 | void LLDrawable::update() |
@@ -526,7 +518,7 @@ F32 LLDrawable::updateXform(BOOL undamped) | |||
526 | } | 518 | } |
527 | 519 | ||
528 | if ((mCurrentScale != target_scale) || | 520 | if ((mCurrentScale != target_scale) || |
529 | (!isRoot() && (dist_squared >= MIN_INTERPOLATE_DISTANCE_SQUARED*camdist2))) | 521 | (!isRoot() && (dist_squared >= MIN_INTERPOLATE_DISTANCE_SQUARED) || !mVObjp->getAngularVelocity().isExactlyZero())) |
530 | { //child prim moving or scale change requires immediate rebuild | 522 | { //child prim moving or scale change requires immediate rebuild |
531 | gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE); | 523 | gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE); |
532 | } | 524 | } |