summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/aspects/qaspectengine.cpp15
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