From f922f61c3dfc0bdfdf9dc843c7099e0c089013e8 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 30 Nov 2015 15:21:04 -0800 Subject: [PATCH] AvatarUpdate: fix for very large dt This was affecting threaded avatar update when enabled. --- interface/src/avatar/AvatarManager.cpp | 3 ++- interface/src/avatar/AvatarUpdate.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 7592315f5e..9df597109c 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -356,7 +356,8 @@ void AvatarManager::handleCollisionEvents(const CollisionEvents& collisionEvents AudioInjector::playSound(collisionSoundURL, energyFactorOfFull, AVATAR_STRETCH_FACTOR, myAvatar->getPosition()); myAvatar->collisionWithEntity(collision); - return; } + return; + } } } } diff --git a/interface/src/avatar/AvatarUpdate.cpp b/interface/src/avatar/AvatarUpdate.cpp index acdb251950..89b208d86f 100644 --- a/interface/src/avatar/AvatarUpdate.cpp +++ b/interface/src/avatar/AvatarUpdate.cpp @@ -44,9 +44,12 @@ void AvatarUpdate::synchronousProcess() { bool AvatarUpdate::process() { PerformanceTimer perfTimer("AvatarUpdate"); quint64 start = usecTimestampNow(); - quint64 deltaMicroseconds = start - _lastAvatarUpdate; - _lastAvatarUpdate = start; + quint64 deltaMicroseconds = 0; + if (_lastAvatarUpdate > 0) { + deltaMicroseconds = start - _lastAvatarUpdate; + } float deltaSeconds = (float) deltaMicroseconds / (float) USECS_PER_SECOND; + _lastAvatarUpdate = start; qApp->setAvatarSimrateSample(1.0f / deltaSeconds); QSharedPointer manager = DependencyManager::get();