summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/aspects/qabstractaspect.cpp30
-rw-r--r--src/core/aspects/qabstractaspect.h8
-rw-r--r--src/input/frontend/qinputaspect.cpp30
-rw-r--r--src/input/frontend/qinputaspect.h5
-rw-r--r--src/logic/qlogicaspect.cpp31
-rw-r--r--src/logic/qlogicaspect.h6
-rw-r--r--src/render/frontend/qrenderaspect.cpp29
-rw-r--r--src/render/frontend/qrenderaspect.h5
8 files changed, 39 insertions, 105 deletions
diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp
index 8c2e58939..3db95d315 100644
--- a/src/core/aspects/qabstractaspect.cpp
+++ b/src/core/aspects/qabstractaspect.cpp
@@ -41,6 +41,8 @@
#include <Qt3DCore/private/qaspectjobmanager_p.h>
#include <private/qchangearbiter_p.h>
#include <Qt3DCore/private/qscene_p.h>
+#include <Qt3DCore/qnodevisitor.h>
+#include <Qt3DCore/qscenepropertychange.h>
QT_BEGIN_NAMESPACE
@@ -92,6 +94,23 @@ void QAbstractAspect::registerBackendType(const QMetaObject &obj, const QBackend
d->m_backendCreatorFunctors.insert(className(obj), functor);
}
+void QAbstractAspect::sceneNodeAdded(QSceneChangePtr &e)
+{
+ QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
+ QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
+ QNode *n = nodePtr.data();
+ QNodeVisitor visitor;
+ visitor.traverse(n, this, &QAbstractAspect::visitNode);
+}
+
+void QAbstractAspect::sceneNodeRemoved(QSceneChangePtr &e)
+{
+ QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
+ QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
+ QNode *n = nodePtr.data();
+ QAbstractAspect::clearBackendNode(n);
+}
+
QVariant QAbstractAspect::executeCommand(const QStringList &args)
{
Q_UNUSED(args);
@@ -167,6 +186,12 @@ void QAbstractAspect::clearBackendNode(QNode *frontend) const
}
}
+void QAbstractAspect::setRootEntity(QEntity *rootObject)
+{
+ QNodeVisitor visitor;
+ visitor.traverse(rootObject, this, &QAbstractAspect::visitNode);
+}
+
void QAbstractAspect::registerAspect(QEntity *rootObject)
{
Q_D(QAbstractAspect);
@@ -203,6 +228,11 @@ void QAbstractAspect::onShutdown()
{
}
+void QAbstractAspect::visitNode(QNode *node)
+{
+ createBackendNode(node);
+}
+
} // of namespace Qt3DCore
QT_END_NAMESPACE
diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h
index 1aec7aa5f..7d121d9ae 100644
--- a/src/core/aspects/qabstractaspect.h
+++ b/src/core/aspects/qabstractaspect.h
@@ -81,6 +81,9 @@ public:
void registerBackendType(const QBackendNodeFunctorPtr &functor);
void registerBackendType(const QMetaObject &, const QBackendNodeFunctorPtr &functor);
+ void sceneNodeAdded(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
+ void sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
+
virtual QVariant executeCommand(const QStringList &args);
protected:
@@ -90,13 +93,16 @@ protected:
QBackendNode *getBackendNode(QNode *frontend) const;
void clearBackendNode(QNode *frontend) const;
+ virtual void setRootEntity(QEntity *rootObject);
+
private:
- virtual void setRootEntity(QEntity *rootObject) = 0;
virtual void onInitialize(const QVariantMap &data) = 0;
virtual void onStartup();
virtual void onShutdown();
virtual void onCleanup() = 0;
+ virtual void visitNode(QNode *node);
+
Q_DECLARE_PRIVATE(QAbstractAspect)
friend class QAspectManager;
};
diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp
index d07a5b366..220484d4d 100644
--- a/src/input/frontend/qinputaspect.cpp
+++ b/src/input/frontend/qinputaspect.cpp
@@ -42,8 +42,6 @@
#include "keyboardinput_p.h"
#include "mousecontroller_p.h"
#include "mouseinput_p.h"
-#include <Qt3DCore/qnodevisitor.h>
-#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DInput/qkeyboardcontroller.h>
#include <Qt3DInput/qkeyboardinput.h>
#include <Qt3DInput/qmousecontroller.h>
@@ -185,29 +183,6 @@ QVector<QAspectJobPtr> QInputAspect::jobsToExecute(qint64 time)
return jobs;
}
-void QInputAspect::sceneNodeAdded(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QNodeVisitor visitor;
- visitor.traverse(n, this, &QInputAspect::visitNode);
-}
-
-void QInputAspect::sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QAbstractAspect::clearBackendNode(n);
-}
-
-void QInputAspect::setRootEntity(Qt3DCore::QEntity *rootObject)
-{
- QNodeVisitor visitor;
- visitor.traverse(rootObject, this, &QInputAspect::visitNode);
-}
-
void QInputAspect::onInitialize(const QVariantMap &)
{
Q_D(QInputAspect);
@@ -232,11 +207,6 @@ void QInputAspect::onCleanup()
d->m_inputHandler.reset(Q_NULLPTR);
}
-void QInputAspect::visitNode(Qt3DCore::QNode *node)
-{
- QAbstractAspect::createBackendNode(node);
-}
-
} // namespace Qt3DInput
QT_END_NAMESPACE
diff --git a/src/input/frontend/qinputaspect.h b/src/input/frontend/qinputaspect.h
index 78054e08d..9d0292c46 100644
--- a/src/input/frontend/qinputaspect.h
+++ b/src/input/frontend/qinputaspect.h
@@ -63,20 +63,15 @@ public:
QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
- void sceneNodeAdded(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
- void sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
-
public Q_SLOTS:
void setCamera(Qt3DCore::QCamera *camera);
private:
- void setRootEntity(Qt3DCore::QEntity *rootObject) Q_DECL_OVERRIDE;
void onInitialize(const QVariantMap &data) Q_DECL_OVERRIDE;
void onStartup() Q_DECL_OVERRIDE;
void onShutdown() Q_DECL_OVERRIDE;
void onCleanup() Q_DECL_OVERRIDE;
- void visitNode(Qt3DCore::QNode *node);
void loadInputDevicePlugins();
Q_DECLARE_PRIVATE(QInputAspect)
diff --git a/src/logic/qlogicaspect.cpp b/src/logic/qlogicaspect.cpp
index c73091b21..a34dffe89 100644
--- a/src/logic/qlogicaspect.cpp
+++ b/src/logic/qlogicaspect.cpp
@@ -41,9 +41,6 @@
#include "manager_p.h"
#include "qlogiccomponent.h"
-#include <Qt3DCore/qnodevisitor.h>
-#include <Qt3DCore/qscenepropertychange.h>
-
#include <Qt3DCore/qnode.h>
#include <Qt3DCore/private/qchangearbiter_p.h>
#include <Qt3DCore/private/qscene_p.h>
@@ -106,29 +103,6 @@ QVector<QAspectJobPtr> QLogicAspect::jobsToExecute(qint64 time)
return jobs;
}
-void QLogicAspect::sceneNodeAdded(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QNodeVisitor visitor;
- visitor.traverse(n, this, &QLogicAspect::visitNode);
-}
-
-void QLogicAspect::sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QAbstractAspect::clearBackendNode(n);
-}
-
-void QLogicAspect::setRootEntity(Qt3DCore::QEntity *rootObject)
-{
- QNodeVisitor visitor;
- visitor.traverse(rootObject, this, &QLogicAspect::visitNode);
-}
-
void QLogicAspect::onInitialize(const QVariantMap &data)
{
Q_UNUSED(data);
@@ -152,11 +126,6 @@ void QLogicAspect::onShutdown()
d->m_executor->clearQueueAndProceed();
}
-void QLogicAspect::visitNode(Qt3DCore::QNode *node)
-{
- QAbstractAspect::createBackendNode(node);
-}
-
} // namespace Qt3DLogic
QT_END_NAMESPACE
diff --git a/src/logic/qlogicaspect.h b/src/logic/qlogicaspect.h
index eaf74e7a2..3abc5e03b 100644
--- a/src/logic/qlogicaspect.h
+++ b/src/logic/qlogicaspect.h
@@ -54,21 +54,15 @@ public:
QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
- void sceneNodeAdded(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
- void sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
-
protected:
void registerBackendTypes();
private:
- void setRootEntity(Qt3DCore::QEntity *rootObject) Q_DECL_OVERRIDE;
void onInitialize(const QVariantMap &data) Q_DECL_OVERRIDE;
void onStartup() Q_DECL_OVERRIDE;
void onShutdown() Q_DECL_OVERRIDE;
void onCleanup() Q_DECL_OVERRIDE;
- void visitNode(Qt3DCore::QNode *node);
-
Q_DECLARE_PRIVATE(QLogicAspect)
QLogicAspect(QLogicAspectPrivate &dd, QObject *parent);
};
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 13b629373..3d53a0723 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -118,8 +118,6 @@
#include <Qt3DCore/qentity.h>
#include <Qt3DCore/qtransform.h>
-#include <Qt3DCore/qnodevisitor.h>
-#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DCore/qnode.h>
#include <Qt3DCore/qservicelocator.h>
@@ -394,23 +392,6 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
return jobs;
}
-void QRenderAspect::sceneNodeAdded(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QNodeVisitor visitor;
- visitor.traverse(n, this, &QRenderAspect::visitNode);
-}
-
-void QRenderAspect::sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e)
-{
- QScenePropertyChangePtr propertyChange = e.staticCast<QScenePropertyChange>();
- QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
- QNode *n = nodePtr.data();
- QAbstractAspect::clearBackendNode(n);
-}
-
qint64 QRenderAspect::time() const
{
Q_D(const QRenderAspect);
@@ -419,10 +400,9 @@ qint64 QRenderAspect::time() const
void QRenderAspect::setRootEntity(Qt3DCore::QEntity *rootObject)
{
- // setSceneGraphRoot is synchronized using the Renderer's mutex
+ QAbstractAspect::setRootEntity(rootObject);
+
Q_D(QRenderAspect);
- QNodeVisitor visitor;
- visitor.traverse(rootObject, this, &QRenderAspect::visitNode);
d->m_renderer->setSceneRoot(d->m_renderer->nodeManagers()->lookupResource<Render::Entity, Render::EntityManager>(rootObject->id()));
}
@@ -474,11 +454,6 @@ void QRenderAspect::onCleanup()
d->m_renderer = Q_NULLPTR;
}
-void QRenderAspect::visitNode(Qt3DCore::QNode *node)
-{
- QAbstractAspect::createBackendNode(node);
-}
-
// Returns a vector of jobs to be performed for dirty buffers
// 1 dirty buffer == 1 job, all job can be performed in parallel
QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::createRenderBufferJobs()
diff --git a/src/render/frontend/qrenderaspect.h b/src/render/frontend/qrenderaspect.h
index eb548a917..50f1008b7 100644
--- a/src/render/frontend/qrenderaspect.h
+++ b/src/render/frontend/qrenderaspect.h
@@ -70,9 +70,6 @@ public:
QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) Q_DECL_OVERRIDE;
- void sceneNodeAdded(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
- void sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
-
qint64 time() const;
protected:
@@ -86,8 +83,6 @@ protected:
void onShutdown() Q_DECL_OVERRIDE;
void onCleanup() Q_DECL_OVERRIDE;
- void visitNode(Qt3DCore::QNode *node);
-
QVector<Qt3DCore::QAspectJobPtr> createRenderBufferJobs();
QVector<Qt3DCore::QAspectJobPtr> createGeometryRendererJobs();