summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2019-12-10 09:38:00 +0000
committerMike Krus <mike.krus@kdab.com>2020-01-13 16:34:16 +0000
commit65ed4fa2ff95b54eacd82a7fb91f213464796756 (patch)
tree9273720e8d16e87e001664cb5ef7ba6d03e2489a /src/render
parentf1eff5648d9cb40216b04b78f9b2b5a34fb5ce62 (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.cpp5
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;