summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Marker <jan.marker@kdab.com>2017-07-18 23:03:50 +0800
committerSimon Hausmann <simon.hausmann@qt.io>2017-08-22 12:08:47 +0000
commit4749cb895b99e3643259fe388ba386203554a9b3 (patch)
tree62bb1dde771303e78baa0efad9fece13ae917e05
parent53e2e982ceb1ff3c18eb8ffe4fc271eed2f603d1 (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.cpp5
-rw-r--r--src/logic/manager_p.h1
-rw-r--r--src/logic/qlogicaspect.cpp5
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;
}