diff options
-rw-r--r-- | src/core/aspects/qaspectengine.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp index 82b06866a..627925c97 100644 --- a/src/core/aspects/qaspectengine.cpp +++ b/src/core/aspects/qaspectengine.cpp @@ -61,11 +61,10 @@ namespace Qt3D { */ QAspectEnginePrivate::QAspectEnginePrivate(QAspectEngine *qq) : QObjectPrivate() - , m_postman(new QPostman()) - , m_scene(new QScene(qq)) + , m_postman(Q_NULLPTR) + , m_scene(Q_NULLPTR) { q_ptr = qq; - m_postman->setScene(m_scene); qRegisterMetaType<Qt3D::QAbstractAspect *>(); qRegisterMetaType<Qt3D::QObserverInterface *>(); qRegisterMetaType<Qt3D::QEntity *>(); @@ -81,6 +80,9 @@ QAspectEngine::QAspectEngine(QObject *parent) qCDebug(Aspects) << Q_FUNC_INFO; Q_D(QAspectEngine); + d->m_scene = new QScene(this); + d->m_postman = new QPostman(this); + d->m_postman->setScene(d->m_scene); d->m_aspectThread = new QAspectThread(this); d->m_aspectThread->waitForStart(QThread::HighestPriority); } @@ -90,13 +92,20 @@ QAspectEngine::QAspectEngine(QAspectEnginePrivate &dd, QObject *parent) : QObject(dd, parent) { Q_D(QAspectEngine); + d->m_scene = new QScene(this); + d->m_postman = new QPostman(this); + d->m_postman->setScene(d->m_scene); d->m_aspectThread = new QAspectThread(this); d->m_aspectThread->waitForStart(QThread::HighestPriority); } QAspectEngine::~QAspectEngine() { + Q_D(QAspectEngine); shutdown(); + delete d->m_aspectThread; + delete d->m_postman; + delete d->m_scene; } void QAspectEngine::initNodeTree(QNode *node) const |