diff options
| author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2018-11-14 22:52:16 +0200 |
|---|---|---|
| committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2018-11-14 22:52:16 +0200 |
| commit | 88605685b0b81a165e877d9cf1bcad52676104a3 (patch) | |
| tree | 2dff3508cc40ff95bcee468f5bd7b226441eabab /indra/llcharacter/llmotioncontroller.cpp | |
| parent | 4745de5f4b856146983cee5f50e78d051a9f6079 (diff) | |
| parent | 8558ce5c600b810356010ba3cd6d534ef22f4081 (diff) | |
Merged in lindenlab/viewer-release
Diffstat (limited to 'indra/llcharacter/llmotioncontroller.cpp')
| -rw-r--r-- | indra/llcharacter/llmotioncontroller.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/indra/llcharacter/llmotioncontroller.cpp b/indra/llcharacter/llmotioncontroller.cpp index 35e76f1d9d..c48d02b652 100644 --- a/indra/llcharacter/llmotioncontroller.cpp +++ b/indra/llcharacter/llmotioncontroller.cpp @@ -135,7 +135,7 @@ LLMotionController::LLMotionController() mLastTime(0.0f), mHasRunOnce(FALSE), mPaused(FALSE), - mPauseTime(0.f), + mPausedFrame(0), mTimeStep(0.f), mTimeStepCount(0), mLastInterp(0.f), @@ -441,7 +441,8 @@ BOOL LLMotionController::stopMotionLocally(const LLUUID &id, BOOL stop_immediate { // if already inactive, return false LLMotion *motion = findMotion(id); - return stopMotionInstance(motion, stop_immediate); + // SL-1290: always stop immediate if paused + return stopMotionInstance(motion, stop_immediate||mPaused); } BOOL LLMotionController::stopMotionInstance(LLMotion* motion, BOOL stop_immediate) @@ -814,6 +815,10 @@ void LLMotionController::updateLoadingMotions() //----------------------------------------------------------------------------- void LLMotionController::updateMotions(bool force_update) { + // SL-763: "Distant animated objects run at super fast speed" + // The use_quantum optimization or possibly the associated code in setTimeStamp() + // does not work as implemented. + // Currently setting mTimeStep to nonzero is disabled elsewhere. BOOL use_quantum = (mTimeStep != 0.f); // Always update mPrevTimerElapsed @@ -1125,6 +1130,7 @@ void LLMotionController::pauseAllMotions() { //LL_INFOS() << "Pausing animations..." << LL_ENDL; mPaused = TRUE; + mPausedFrame = LLFrameTimer::getFrameCount(); } } |
