summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2015-12-01 12:02:19 +0100
committerKevin Ottens <kevin.ottens@kdab.com>2015-12-01 14:23:52 +0000
commitc509c85b63cb062aaf7b1a3044dcbb6d80610c89 (patch)
tree08ff2b0922773aa0cb610722fee57ab7ecb33a44
parent40c2346f137623629983de94ffcb045f5f8ce35e (diff)
Move the QT3D_REGISTER_*_ASPECT macros to QAbstractAspect
First step toward turning QAspectFactory into a private class. Change-Id: Ia62aae820fde1ab3cee0c5852d10981c6b9f4970 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/core/aspects/qabstractaspect.h26
-rw-r--r--src/core/aspects/qaspectfactory.cpp4
-rw-r--r--src/core/aspects/qaspectfactory.h19
-rw-r--r--src/input/frontend/qinputaspect.cpp1
-rw-r--r--src/logic/qlogicaspect.cpp1
-rw-r--r--src/render/frontend/qrenderaspect.cpp1
6 files changed, 28 insertions, 24 deletions
diff --git a/src/core/aspects/qabstractaspect.h b/src/core/aspects/qabstractaspect.h
index a0b298cb2..55ded6e5b 100644
--- a/src/core/aspects/qabstractaspect.h
+++ b/src/core/aspects/qabstractaspect.h
@@ -109,4 +109,30 @@ void QAbstractAspect::registerBackendType(const QBackendNodeFunctorPtr &functor)
QT_END_NAMESPACE
+#define QT3D_REGISTER_NAMESPACED_ASPECT(name, AspectNamespace, AspectType) \
+ QT_BEGIN_NAMESPACE \
+ namespace Qt3DCore { \
+ typedef QAbstractAspect *(*AspectCreateFunction)(QObject *); \
+ QT3DCORESHARED_EXPORT void qt3d_QAspectFactory_addDefaultFactory(const QString &, AspectCreateFunction); \
+ } \
+ QT_END_NAMESPACE \
+ namespace { \
+ QAbstractAspect *qt3d_ ## AspectType ## _createFunction(QObject *parent) \
+ { \
+ using namespace AspectNamespace; \
+ return new AspectType(parent); \
+ } \
+ \
+ void qt3d_ ## AspectType ## _registerFunction() \
+ { \
+ using namespace AspectNamespace; \
+ qt3d_QAspectFactory_addDefaultFactory(QStringLiteral(name), qt3d_ ## AspectType ## _createFunction); \
+ } \
+ \
+ Q_CONSTRUCTOR_FUNCTION(qt3d_ ## AspectType ## _registerFunction) \
+ }
+
+#define QT3D_REGISTER_ASPECT(name, AspectType) \
+ QT3D_REGISTER_NAMESPACED_ASPECT(name, QT_PREPEND_NAMESPACE(Qt3DCore), AspectType)
+
#endif // QT3DCORE_ABSTRACTASPECT_H
diff --git a/src/core/aspects/qaspectfactory.cpp b/src/core/aspects/qaspectfactory.cpp
index 673ff5bdd..ff1bc7d2b 100644
--- a/src/core/aspects/qaspectfactory.cpp
+++ b/src/core/aspects/qaspectfactory.cpp
@@ -48,8 +48,8 @@ namespace Qt3DCore {
typedef QHash<QString, QAspectFactory::CreateFunction> defaultFactories_t;
Q_GLOBAL_STATIC(defaultFactories_t, defaultFactories)
-QT3DCORESHARED_EXPORT void qt3d_QAspectFactoryPrivate_addDefaultFactory(const QString &name,
- QAspectFactory::CreateFunction factory)
+QT3DCORESHARED_EXPORT void qt3d_QAspectFactory_addDefaultFactory(const QString &name,
+ QAspectFactory::CreateFunction factory)
{
defaultFactories->insert(name, factory);
}
diff --git a/src/core/aspects/qaspectfactory.h b/src/core/aspects/qaspectfactory.h
index 9280c5340..d0f867f6e 100644
--- a/src/core/aspects/qaspectfactory.h
+++ b/src/core/aspects/qaspectfactory.h
@@ -89,23 +89,4 @@ private:
QT_END_NAMESPACE
-#define QT3D_REGISTER_NAMESPACED_ASPECT(name, AspectNamespace, AspectType) \
- QT_BEGIN_NAMESPACE \
- namespace Qt3DCore { \
- QT3DCORESHARED_EXPORT void qt3d_QAspectFactoryPrivate_addDefaultFactory(const QString &, QAspectFactory::CreateFunction); \
- } \
- QT_END_NAMESPACE \
- namespace { \
- void qt3d_ ## AspectType ## _registerFunction() \
- { \
- using namespace QT_PREPEND_NAMESPACE(Qt3DCore); \
- qt3d_QAspectFactoryPrivate_addDefaultFactory(QStringLiteral(name), &QAspectFactory::functionHelper<AspectNamespace::AspectType>); \
- } \
- \
- Q_CONSTRUCTOR_FUNCTION(qt3d_ ## AspectType ## _registerFunction) \
- }
-
-#define QT3D_REGISTER_ASPECT(name, AspectType) \
- QT3D_REGISTER_NAMESPACED_ASPECT(name, , AspectType)
-
#endif // QT3DCORE_QASPECTFACTORY_H
diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp
index dd214c163..d07a5b366 100644
--- a/src/input/frontend/qinputaspect.cpp
+++ b/src/input/frontend/qinputaspect.cpp
@@ -42,7 +42,6 @@
#include "keyboardinput_p.h"
#include "mousecontroller_p.h"
#include "mouseinput_p.h"
-#include <Qt3DCore/qaspectfactory.h>
#include <Qt3DCore/qnodevisitor.h>
#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DInput/qkeyboardcontroller.h>
diff --git a/src/logic/qlogicaspect.cpp b/src/logic/qlogicaspect.cpp
index 098aa1793..c73091b21 100644
--- a/src/logic/qlogicaspect.cpp
+++ b/src/logic/qlogicaspect.cpp
@@ -47,7 +47,6 @@
#include <Qt3DCore/qnode.h>
#include <Qt3DCore/private/qchangearbiter_p.h>
#include <Qt3DCore/private/qscene_p.h>
-#include <Qt3DCore/qaspectfactory.h>
#include <Qt3DCore/qservicelocator.h>
#include <QThread>
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index d6e0541c6..13b629373 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -122,7 +122,6 @@
#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DCore/qnode.h>
-#include <Qt3DCore/qaspectfactory.h>
#include <Qt3DCore/qservicelocator.h>
#include <QDebug>