summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}