From 4749cb895b99e3643259fe388ba386203554a9b3 Mon Sep 17 00:00:00 2001 From: Jan Marker Date: Tue, 18 Jul 2017 23:03:50 +0800 Subject: Only execute QFrameAction job if there are actions Change-Id: Ie90d686a1161d487777cbdf758a276e34134653f Reviewed-by: Sean Harmer --- src/logic/manager.cpp | 5 +++++ src/logic/manager_p.h | 1 + src/logic/qlogicaspect.cpp | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/logic/manager.cpp b/src/logic/manager.cpp index 7b654ccd4..e10ace592 100644 --- a/src/logic/manager.cpp +++ b/src/logic/manager.cpp @@ -88,6 +88,11 @@ void Manager::removeHandler(Qt3DCore::QNodeId id) m_logicHandlerManager->releaseResource(id); } +bool Manager::hasFrameActions() const +{ + return m_logicHandlers.count() > 0; +} + void Manager::triggerLogicFrameUpdates() { Q_ASSERT(m_executor); diff --git a/src/logic/manager_p.h b/src/logic/manager_p.h index 39c0b5342..918bd57e0 100644 --- a/src/logic/manager_p.h +++ b/src/logic/manager_p.h @@ -83,6 +83,7 @@ public: void appendHandler(Handler *handler); void removeHandler(Qt3DCore::QNodeId id); + bool hasFrameActions() const; void triggerLogicFrameUpdates(); diff --git a/src/logic/qlogicaspect.cpp b/src/logic/qlogicaspect.cpp index 04add1408..d36e9b09d 100644 --- a/src/logic/qlogicaspect.cpp +++ b/src/logic/qlogicaspect.cpp @@ -124,7 +124,10 @@ QVector QLogicAspect::jobsToExecute(qint64 time) // Create jobs that will get executed by the threadpool QVector jobs; - jobs.append(d->m_callbackJob); + + if (d->m_manager->hasFrameActions()) + jobs.append(d->m_callbackJob); + return jobs; } -- cgit v1.2.3