diff options
author | Jan Marker <jan.marker@kdab.com> | 2017-07-18 23:03:50 +0800 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-22 12:08:47 +0000 |
commit | 4749cb895b99e3643259fe388ba386203554a9b3 (patch) | |
tree | 62bb1dde771303e78baa0efad9fece13ae917e05 | |
parent | 53e2e982ceb1ff3c18eb8ffe4fc271eed2f603d1 (diff) |
Only execute QFrameAction job if there are actions
Change-Id: Ie90d686a1161d487777cbdf758a276e34134653f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | src/logic/manager.cpp | 5 | ||||
-rw-r--r-- | src/logic/manager_p.h | 1 | ||||
-rw-r--r-- | src/logic/qlogicaspect.cpp | 5 |
3 files changed, 10 insertions, 1 deletions
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<QAspectJobPtr> QLogicAspect::jobsToExecute(qint64 time) // Create jobs that will get executed by the threadpool QVector<QAspectJobPtr> jobs; - jobs.append(d->m_callbackJob); + + if (d->m_manager->hasFrameActions()) + jobs.append(d->m_callbackJob); + return jobs; } |