diff options
author | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-01 12:02:19 +0100 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@kdab.com> | 2015-12-01 14:23:52 +0000 |
commit | c509c85b63cb062aaf7b1a3044dcbb6d80610c89 (patch) | |
tree | 08ff2b0922773aa0cb610722fee57ab7ecb33a44 /src/core/aspects/qabstractaspect.h | |
parent | 40c2346f137623629983de94ffcb045f5f8ce35e (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>
Diffstat (limited to 'src/core/aspects/qabstractaspect.h')
-rw-r--r-- | src/core/aspects/qabstractaspect.h | 26 |
1 files changed, 26 insertions, 0 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 |