diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-12-10 09:38:00 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2020-01-13 16:34:16 +0000 |
commit | 65ed4fa2ff95b54eacd82a7fb91f213464796756 (patch) | |
tree | 9273720e8d16e87e001664cb5ef7ba6d03e2489a /src/render | |
parent | f1eff5648d9cb40216b04b78f9b2b5a34fb5ce62 (diff) |
Use animation rather than event to drive simulation
Using events can be problematic as they contribute to flooding
of the event queue leading to issues with running animations.
So we now use an actual animation which runs in a loop and triggers
every 1ms (rendering still vsync locked though).
If animation have not been enabled for the qt build, we fall back
to using events as before.
Tests were changes since frame progress is no longer driven by
events, so processEvents does not trigger a frame update.
Change-Id: I89b11862ef432dffae0c3dfb140eedd61754697e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/services/vsyncframeadvanceservice.cpp | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/src/render/services/vsyncframeadvanceservice.cpp b/src/render/services/vsyncframeadvanceservice.cpp index d7398e2ce..662c12e4e 100644 --- a/src/render/services/vsyncframeadvanceservice.cpp +++ b/src/render/services/vsyncframeadvanceservice.cpp @@ -80,12 +80,7 @@ qint64 VSyncFrameAdvanceService::waitForNextFrame() { Q_D(VSyncFrameAdvanceService); -#ifdef Q_OS_MACOS - if (!d->m_semaphore.tryAcquire(std::max(d->m_semaphore.available(), 1), 4)) - return -1; -#else d->m_semaphore.acquire(std::max(d->m_semaphore.available(), 1)); -#endif const qint64 currentTime = d->m_elapsed.nsecsElapsed(); qCDebug(VSyncAdvanceService) << "Elapsed nsecs since last call " << currentTime - d->m_elapsedTimeSincePreviousFrame; |