summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2015-12-04 15:29:45 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-12-14 13:18:18 +0000
commitdc6e9d02ac1a9030308f2cdf11f96d4d3612fd6d (patch)
tree6a048366b8b69c9b271d1f2922c80080f4a7a098
parentb93a30ab9e11663921fd583700f992da2a6b8448 (diff)
Remove initialize/shutdown from APIv5.6.0-beta1
Hiding them in QAspectEnginePrivate and calling them when needed from setRootEntity. Change-Id: I4c3dfb19d84ae90cc15bbff29a4abd0705bb61dc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--examples/qt3d/anaglyph-rendering/main.cpp1
-rw-r--r--examples/qt3d/assimp-cpp/main.cpp1
-rw-r--r--examples/qt3d/assimp/main.cpp1
-rw-r--r--examples/qt3d/basicshapes-cpp/main.cpp1
-rw-r--r--examples/qt3d/bigmodel-qml/main.cpp1
-rw-r--r--examples/qt3d/bigscene-cpp/main.cpp1
-rw-r--r--examples/qt3d/bigscene-instanced-qml/main.cpp1
-rw-r--r--examples/qt3d/clip-planes-qml/main.cpp1
-rw-r--r--examples/qt3d/cpp_example/main.cpp1
-rw-r--r--examples/qt3d/custom-mesh-cpp/main.cpp1
-rw-r--r--examples/qt3d/custom-mesh-qml/main.cpp1
-rw-r--r--examples/qt3d/cylinder-cpp/main.cpp1
-rw-r--r--examples/qt3d/cylinder-qml/main.cpp1
-rw-r--r--examples/qt3d/deferred-renderer-qml/main.cpp1
-rw-r--r--examples/qt3d/dynamicscene-cpp/main.cpp1
-rw-r--r--examples/qt3d/enabled-qml/main.cpp1
-rw-r--r--examples/qt3d/gltf/main.cpp1
-rw-r--r--examples/qt3d/gooch-qml/main.cpp1
-rw-r--r--examples/qt3d/instanced-arrays-qml/main.cpp1
-rw-r--r--examples/qt3d/keyboardinput-qml/main.cpp1
-rw-r--r--examples/qt3d/lights/main.cpp1
-rw-r--r--examples/qt3d/loader-qml/main.cpp1
-rw-r--r--examples/qt3d/materials-cpp/main.cpp1
-rw-r--r--examples/qt3d/materials/main.cpp1
-rw-r--r--examples/qt3d/mouseinput-qml/main.cpp1
-rw-r--r--examples/qt3d/multiviewport/main.cpp1
-rw-r--r--examples/qt3d/picking-qml/main.cpp1
-rw-r--r--examples/qt3d/plasma/main.cpp1
-rw-r--r--examples/qt3d/playground-qml/main.cpp1
-rw-r--r--examples/qt3d/qgltf/main.cpp1
-rw-r--r--examples/qt3d/shadow-map-qml/main.cpp1
-rw-r--r--examples/qt3d/simple-qml/main.cpp1
-rw-r--r--examples/qt3d/simple-shaders-qml/main.cpp1
-rw-r--r--examples/qt3d/skybox/main.cpp1
-rw-r--r--examples/qt3d/tessellation-modes/main.cpp1
-rw-r--r--examples/qt3d/torus-qml/main.cpp1
-rw-r--r--examples/qt3d/transforms-qml/main.cpp1
-rw-r--r--examples/qt3d/transparency-qml/main.cpp1
-rw-r--r--examples/qt3d/wave/main.cpp1
-rw-r--r--examples/qt3d/wireframe/main.cpp1
-rw-r--r--src/core/aspects/qaspectengine.cpp36
-rw-r--r--src/core/aspects/qaspectengine.h3
-rw-r--r--src/core/aspects/qaspectengine_p.h3
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp1
-rw-r--r--src/quick3d/quick3d/qqmlaspectengine.cpp1
-rw-r--r--src/render/frontend/qwindow.cpp1
-rw-r--r--tests/auto/core/qaspectengine/tst_qaspectengine.cpp1
47 files changed, 22 insertions, 64 deletions
diff --git a/examples/qt3d/anaglyph-rendering/main.cpp b/examples/qt3d/anaglyph-rendering/main.cpp
index 281f69dd8..c9843e10c 100644
--- a/examples/qt3d/anaglyph-rendering/main.cpp
+++ b/examples/qt3d/anaglyph-rendering/main.cpp
@@ -55,7 +55,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.qmlEngine()->rootContext()->setContextProperty("_window", &view);
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/assimp-cpp/main.cpp b/examples/qt3d/assimp-cpp/main.cpp
index f1349bda2..bd077568b 100644
--- a/examples/qt3d/assimp-cpp/main.cpp
+++ b/examples/qt3d/assimp-cpp/main.cpp
@@ -110,7 +110,6 @@ int main(int ac, char **av)
Qt3DInput::QInputAspect *inputAspect = new Qt3DInput::QInputAspect();
engine.registerAspect(new Qt3DRender::QRenderAspect());
engine.registerAspect(inputAspect);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/assimp/main.cpp b/examples/qt3d/assimp/main.cpp
index a637d47ae..1b59163f2 100644
--- a/examples/qt3d/assimp/main.cpp
+++ b/examples/qt3d/assimp/main.cpp
@@ -103,7 +103,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
qmlRegisterType<SceneHelper>("Qt3D.Examples", 2, 0, "SceneHelper");
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/basicshapes-cpp/main.cpp b/examples/qt3d/basicshapes-cpp/main.cpp
index f21ff51d3..7b6bc6f9f 100644
--- a/examples/qt3d/basicshapes-cpp/main.cpp
+++ b/examples/qt3d/basicshapes-cpp/main.cpp
@@ -90,7 +90,6 @@ int main(int argc, char **argv)
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(view));
diff --git a/examples/qt3d/bigmodel-qml/main.cpp b/examples/qt3d/bigmodel-qml/main.cpp
index 9629097fc..0d944c883 100644
--- a/examples/qt3d/bigmodel-qml/main.cpp
+++ b/examples/qt3d/bigmodel-qml/main.cpp
@@ -56,7 +56,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/bigscene-cpp/main.cpp b/examples/qt3d/bigscene-cpp/main.cpp
index 47a2766ff..6d3405ec0 100644
--- a/examples/qt3d/bigscene-cpp/main.cpp
+++ b/examples/qt3d/bigscene-cpp/main.cpp
@@ -68,7 +68,6 @@ int main(int ac, char **av)
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/bigscene-instanced-qml/main.cpp b/examples/qt3d/bigscene-instanced-qml/main.cpp
index a7112627b..1a538e49d 100644
--- a/examples/qt3d/bigscene-instanced-qml/main.cpp
+++ b/examples/qt3d/bigscene-instanced-qml/main.cpp
@@ -50,7 +50,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/clip-planes-qml/main.cpp b/examples/qt3d/clip-planes-qml/main.cpp
index d33b2a690..3ee54692b 100644
--- a/examples/qt3d/clip-planes-qml/main.cpp
+++ b/examples/qt3d/clip-planes-qml/main.cpp
@@ -49,7 +49,6 @@ int main(int argc, char* argv[])
Qt3DCore::Quick::QQmlAspectEngine engine;
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/cpp_example/main.cpp b/examples/qt3d/cpp_example/main.cpp
index 7f2fc31ac..242867566 100644
--- a/examples/qt3d/cpp_example/main.cpp
+++ b/examples/qt3d/cpp_example/main.cpp
@@ -70,7 +70,6 @@ int main(int ac, char **av)
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/custom-mesh-cpp/main.cpp b/examples/qt3d/custom-mesh-cpp/main.cpp
index 6b8da8490..e7b804a28 100644
--- a/examples/qt3d/custom-mesh-cpp/main.cpp
+++ b/examples/qt3d/custom-mesh-cpp/main.cpp
@@ -67,7 +67,6 @@ int main(int argc, char* argv[])
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/custom-mesh-qml/main.cpp b/examples/qt3d/custom-mesh-qml/main.cpp
index 41e7f51ff..a308bfacc 100644
--- a/examples/qt3d/custom-mesh-qml/main.cpp
+++ b/examples/qt3d/custom-mesh-qml/main.cpp
@@ -50,7 +50,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/cylinder-cpp/main.cpp b/examples/qt3d/cylinder-cpp/main.cpp
index a4d190200..ff996d6c5 100644
--- a/examples/qt3d/cylinder-cpp/main.cpp
+++ b/examples/qt3d/cylinder-cpp/main.cpp
@@ -67,7 +67,6 @@ int main(int argc, char **argv)
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/cylinder-qml/main.cpp b/examples/qt3d/cylinder-qml/main.cpp
index 6c0fead34..c5654586c 100644
--- a/examples/qt3d/cylinder-qml/main.cpp
+++ b/examples/qt3d/cylinder-qml/main.cpp
@@ -56,7 +56,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/deferred-renderer-qml/main.cpp b/examples/qt3d/deferred-renderer-qml/main.cpp
index 7b003ebcc..65edece13 100644
--- a/examples/qt3d/deferred-renderer-qml/main.cpp
+++ b/examples/qt3d/deferred-renderer-qml/main.cpp
@@ -52,7 +52,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/dynamicscene-cpp/main.cpp b/examples/qt3d/dynamicscene-cpp/main.cpp
index 3435c79fa..29c920cd8 100644
--- a/examples/qt3d/dynamicscene-cpp/main.cpp
+++ b/examples/qt3d/dynamicscene-cpp/main.cpp
@@ -58,7 +58,6 @@ int main(int argc, char* argv[])
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/enabled-qml/main.cpp b/examples/qt3d/enabled-qml/main.cpp
index ca4d4c63c..53939cc62 100644
--- a/examples/qt3d/enabled-qml/main.cpp
+++ b/examples/qt3d/enabled-qml/main.cpp
@@ -51,7 +51,6 @@ int main(int argc, char *argv[])
Window view;
Qt3DCore::Quick::QQmlAspectEngine engine;
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/gltf/main.cpp b/examples/qt3d/gltf/main.cpp
index 75c8f7db7..51bde76a6 100644
--- a/examples/qt3d/gltf/main.cpp
+++ b/examples/qt3d/gltf/main.cpp
@@ -57,7 +57,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/gooch-qml/main.cpp b/examples/qt3d/gooch-qml/main.cpp
index 5c7390d10..c84ba5dd7 100644
--- a/examples/qt3d/gooch-qml/main.cpp
+++ b/examples/qt3d/gooch-qml/main.cpp
@@ -58,7 +58,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/instanced-arrays-qml/main.cpp b/examples/qt3d/instanced-arrays-qml/main.cpp
index cbadc0f88..ca100d238 100644
--- a/examples/qt3d/instanced-arrays-qml/main.cpp
+++ b/examples/qt3d/instanced-arrays-qml/main.cpp
@@ -51,7 +51,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/keyboardinput-qml/main.cpp b/examples/qt3d/keyboardinput-qml/main.cpp
index 8cd37750d..072fef361 100644
--- a/examples/qt3d/keyboardinput-qml/main.cpp
+++ b/examples/qt3d/keyboardinput-qml/main.cpp
@@ -50,7 +50,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/lights/main.cpp b/examples/qt3d/lights/main.cpp
index 51857b171..eb4a0f5b0 100644
--- a/examples/qt3d/lights/main.cpp
+++ b/examples/qt3d/lights/main.cpp
@@ -53,7 +53,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/loader-qml/main.cpp b/examples/qt3d/loader-qml/main.cpp
index a7112627b..1a538e49d 100644
--- a/examples/qt3d/loader-qml/main.cpp
+++ b/examples/qt3d/loader-qml/main.cpp
@@ -50,7 +50,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/materials-cpp/main.cpp b/examples/qt3d/materials-cpp/main.cpp
index db24f96fe..b9f7a72d7 100644
--- a/examples/qt3d/materials-cpp/main.cpp
+++ b/examples/qt3d/materials-cpp/main.cpp
@@ -64,7 +64,6 @@ int main(int argc, char* argv[])
engine.registerAspect(new Qt3DRender::QRenderAspect());
Qt3DInput::QInputAspect *input = new Qt3DInput::QInputAspect;
engine.registerAspect(input);
- engine.initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/materials/main.cpp b/examples/qt3d/materials/main.cpp
index 885d51803..e2eb9aa9c 100644
--- a/examples/qt3d/materials/main.cpp
+++ b/examples/qt3d/materials/main.cpp
@@ -51,7 +51,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/mouseinput-qml/main.cpp b/examples/qt3d/mouseinput-qml/main.cpp
index 2ec7d4560..c102cfa2d 100644
--- a/examples/qt3d/mouseinput-qml/main.cpp
+++ b/examples/qt3d/mouseinput-qml/main.cpp
@@ -55,7 +55,6 @@ int main(int argc, char *argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl(QStringLiteral("qrc:/main.qml")));
diff --git a/examples/qt3d/multiviewport/main.cpp b/examples/qt3d/multiviewport/main.cpp
index 01cb089a6..254254111 100644
--- a/examples/qt3d/multiviewport/main.cpp
+++ b/examples/qt3d/multiviewport/main.cpp
@@ -53,7 +53,6 @@ int main(int ac, char **av)
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/picking-qml/main.cpp b/examples/qt3d/picking-qml/main.cpp
index a9a64fa64..d8d66801e 100644
--- a/examples/qt3d/picking-qml/main.cpp
+++ b/examples/qt3d/picking-qml/main.cpp
@@ -56,7 +56,6 @@ int main(int argc, char *argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.qmlEngine()->rootContext()->setContextProperty("_view", &view);
engine.setSource(QUrl(QStringLiteral("qrc:/main.qml")));
diff --git a/examples/qt3d/plasma/main.cpp b/examples/qt3d/plasma/main.cpp
index a159c4c6d..bfd3cfa64 100644
--- a/examples/qt3d/plasma/main.cpp
+++ b/examples/qt3d/plasma/main.cpp
@@ -56,7 +56,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/playground-qml/main.cpp b/examples/qt3d/playground-qml/main.cpp
index b7fef41e8..7db0725ce 100644
--- a/examples/qt3d/playground-qml/main.cpp
+++ b/examples/qt3d/playground-qml/main.cpp
@@ -55,7 +55,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/qgltf/main.cpp b/examples/qt3d/qgltf/main.cpp
index 080c007ec..bc18004c7 100644
--- a/examples/qt3d/qgltf/main.cpp
+++ b/examples/qt3d/qgltf/main.cpp
@@ -57,7 +57,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/shadow-map-qml/main.cpp b/examples/qt3d/shadow-map-qml/main.cpp
index 7c575293a..f455f8d66 100644
--- a/examples/qt3d/shadow-map-qml/main.cpp
+++ b/examples/qt3d/shadow-map-qml/main.cpp
@@ -53,7 +53,6 @@ int main(int argc, char* argv[])
view.resize(1600, 800);
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/simple-qml/main.cpp b/examples/qt3d/simple-qml/main.cpp
index 973cb173a..2305a685e 100644
--- a/examples/qt3d/simple-qml/main.cpp
+++ b/examples/qt3d/simple-qml/main.cpp
@@ -52,7 +52,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
engine.aspectEngine()->registerAspect(new Qt3DLogic::QLogicAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/simple-shaders-qml/main.cpp b/examples/qt3d/simple-shaders-qml/main.cpp
index 41e7f51ff..a308bfacc 100644
--- a/examples/qt3d/simple-shaders-qml/main.cpp
+++ b/examples/qt3d/simple-shaders-qml/main.cpp
@@ -50,7 +50,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/skybox/main.cpp b/examples/qt3d/skybox/main.cpp
index 5a676ed2b..54c4b6650 100644
--- a/examples/qt3d/skybox/main.cpp
+++ b/examples/qt3d/skybox/main.cpp
@@ -56,7 +56,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/tessellation-modes/main.cpp b/examples/qt3d/tessellation-modes/main.cpp
index cd7240080..427058be3 100644
--- a/examples/qt3d/tessellation-modes/main.cpp
+++ b/examples/qt3d/tessellation-modes/main.cpp
@@ -58,7 +58,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
// Register our custom types
qmlRegisterType<TessellatedQuadMesh>("Qt3D.Examples", 1, 0, "TessellatedQuadMesh");
diff --git a/examples/qt3d/torus-qml/main.cpp b/examples/qt3d/torus-qml/main.cpp
index b6e04b8da..24dbf55d5 100644
--- a/examples/qt3d/torus-qml/main.cpp
+++ b/examples/qt3d/torus-qml/main.cpp
@@ -55,7 +55,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/transforms-qml/main.cpp b/examples/qt3d/transforms-qml/main.cpp
index b08758b49..c01e066fe 100644
--- a/examples/qt3d/transforms-qml/main.cpp
+++ b/examples/qt3d/transforms-qml/main.cpp
@@ -52,7 +52,6 @@ int main(int argc, char* argv[])
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/transparency-qml/main.cpp b/examples/qt3d/transparency-qml/main.cpp
index 5850736ba..1119d6a21 100644
--- a/examples/qt3d/transparency-qml/main.cpp
+++ b/examples/qt3d/transparency-qml/main.cpp
@@ -49,7 +49,6 @@ int main(int argc, char* argv[])
Qt3DCore::Quick::QQmlAspectEngine engine;
engine.aspectEngine()->registerAspect(new Qt3DRender::QRenderAspect());
engine.aspectEngine()->registerAspect(new Qt3DInput::QInputAspect());
- engine.aspectEngine()->initialize();
QVariantMap data;
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
diff --git a/examples/qt3d/wave/main.cpp b/examples/qt3d/wave/main.cpp
index eb6830b8f..c8c456f1a 100644
--- a/examples/qt3d/wave/main.cpp
+++ b/examples/qt3d/wave/main.cpp
@@ -58,7 +58,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/examples/qt3d/wireframe/main.cpp b/examples/qt3d/wireframe/main.cpp
index c466283de..de613c520 100644
--- a/examples/qt3d/wireframe/main.cpp
+++ b/examples/qt3d/wireframe/main.cpp
@@ -58,7 +58,6 @@ int main(int argc, char* argv[])
data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(&view)));
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view));
engine.aspectEngine()->setData(data);
- engine.aspectEngine()->initialize();
engine.setSource(QUrl("qrc:/main.qml"));
view.show();
diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp
index 5ac6f8c5d..eefe020cb 100644
--- a/src/core/aspects/qaspectengine.cpp
+++ b/src/core/aspects/qaspectengine.cpp
@@ -116,7 +116,7 @@ QAspectEngine::QAspectEngine(QObject *parent)
QAspectEngine::~QAspectEngine()
{
Q_D(QAspectEngine);
- shutdown();
+ setRootEntity(Q_NULLPTR);
delete d->m_aspectThread;
delete d->m_postman;
delete d->m_scene;
@@ -128,44 +128,39 @@ void QAspectEnginePrivate::initNodeTree(QNode *node)
visitor.traverse(node, this, &QAspectEnginePrivate::initNode, &QAspectEnginePrivate::initEntity);
}
-void QAspectEngine::initialize()
+void QAspectEnginePrivate::initialize()
{
- Q_D(QAspectEngine);
- QChangeArbiter *arbiter = d->m_aspectThread->aspectManager()->changeArbiter();
- d->m_scene->setArbiter(arbiter);
+ QChangeArbiter *arbiter = m_aspectThread->aspectManager()->changeArbiter();
+ m_scene->setArbiter(arbiter);
QChangeArbiter::createUnmanagedThreadLocalChangeQueue(arbiter);
QMetaObject::invokeMethod(arbiter,
"setPostman",
- Q_ARG(Qt3DCore::QAbstractPostman*, d->m_postman));
+ Q_ARG(Qt3DCore::QAbstractPostman*, m_postman));
QMetaObject::invokeMethod(arbiter,
"setScene",
- Q_ARG(Qt3DCore::QScene*, d->m_scene));
+ Q_ARG(Qt3DCore::QScene*, m_scene));
}
-void QAspectEngine::shutdown()
+void QAspectEnginePrivate::shutdown()
{
- Q_D(QAspectEngine);
qCDebug(Aspects) << Q_FUNC_INFO;
- // Unset the root entity
- setRootEntity(Q_NULLPTR);
-
// Cleanup the scene before quitting the backend
- d->m_scene->setArbiter(Q_NULLPTR);
- QChangeArbiter *arbiter = d->m_aspectThread->aspectManager()->changeArbiter();
+ m_scene->setArbiter(Q_NULLPTR);
+ QChangeArbiter *arbiter = m_aspectThread->aspectManager()->changeArbiter();
QChangeArbiter::destroyUnmanagedThreadLocalChangeQueue(arbiter);
// Tell the aspect thread to exit
// This will return only after the aspectManager has
// exited its exec loop
- d->m_aspectThread->aspectManager()->quit();
+ m_aspectThread->aspectManager()->quit();
// Wait for thread to exit
- d->m_aspectThread->wait();
+ m_aspectThread->wait();
qCDebug(Aspects) << Q_FUNC_INFO << "deleting aspects";
// Deletes aspects in the same thread as the one they were created in
- qDeleteAll(d->m_aspects);
+ qDeleteAll(m_aspects);
qCDebug(Aspects) << Q_FUNC_INFO << "Shutdown complete";
}
@@ -265,15 +260,22 @@ void QAspectEngine::setRootEntity(QEntity *root)
if (d->m_root == root)
return;
+ const bool shutdownNeeded = d->m_root;
+
// Set the new root object. This will cause the old tree to be deleted
// and the deletion of the old frontend tree will cause the backends to
// free any related resources
d->m_root.reset(root);
+ if (shutdownNeeded)
+ d->shutdown();
+
// Do we actually have a new scene?
if (!d->m_root)
return;
+ d->initialize();
+
// The aspect engine takes ownership of the scene root. We also set the
// parent of the scene root to be the engine
static_cast<QObject *>(d->m_root.data())->setParent(this);
diff --git a/src/core/aspects/qaspectengine.h b/src/core/aspects/qaspectengine.h
index ef30a2a56..b472e4130 100644
--- a/src/core/aspects/qaspectengine.h
+++ b/src/core/aspects/qaspectengine.h
@@ -59,9 +59,6 @@ public:
explicit QAspectEngine(QObject *parent = 0);
~QAspectEngine();
- void initialize();
- void shutdown();
-
void setRootEntity(QEntity *root);
QSharedPointer<QEntity> rootEntity() const;
diff --git a/src/core/aspects/qaspectengine_p.h b/src/core/aspects/qaspectengine_p.h
index 71f8bd8fc..030c3de13 100644
--- a/src/core/aspects/qaspectengine_p.h
+++ b/src/core/aspects/qaspectengine_p.h
@@ -77,6 +77,9 @@ public:
QSharedPointer<QEntity> m_root;
QList<QAbstractAspect*> m_aspects;
+ void initialize();
+ void shutdown();
+
void initNodeTree(QNode *node);
void initNode(QNode *node);
void initEntity(QEntity *entity);
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp
index b8f590d84..ef839ae87 100644
--- a/src/quick3d/imports/scene3d/scene3ditem.cpp
+++ b/src/quick3d/imports/scene3d/scene3ditem.cpp
@@ -479,7 +479,6 @@ Scene3DItem::Scene3DItem(QQuickItem *parent)
m_aspectEngine->setData(data);
m_aspectEngine->registerAspect(m_renderAspect);
- m_aspectEngine->initialize();
}
Scene3DItem::~Scene3DItem()
diff --git a/src/quick3d/quick3d/qqmlaspectengine.cpp b/src/quick3d/quick3d/qqmlaspectengine.cpp
index c6c2a6b3d..cf2372ca5 100644
--- a/src/quick3d/quick3d/qqmlaspectengine.cpp
+++ b/src/quick3d/quick3d/qqmlaspectengine.cpp
@@ -77,7 +77,6 @@ void QQmlAspectEngine::setSource(const QUrl &source)
Q_D(QQmlAspectEngine);
if (d->m_component) {
- d->m_aspectEngine->shutdown();
d->m_aspectEngine->setRootEntity(Q_NULLPTR);
d->m_component = Q_NULLPTR;
}
diff --git a/src/render/frontend/qwindow.cpp b/src/render/frontend/qwindow.cpp
index d5033c312..07db56bba 100644
--- a/src/render/frontend/qwindow.cpp
+++ b/src/render/frontend/qwindow.cpp
@@ -173,7 +173,6 @@ void QWindow::show()
data.insert(QStringLiteral("eventSource"), QVariant::fromValue(this));
d->m_engine->setData(data);
- d->m_engine->initialize();
d->m_root->addComponent(d->m_frameGraph);
d->m_engine->setRootEntity(d->m_root);
diff --git a/tests/auto/core/qaspectengine/tst_qaspectengine.cpp b/tests/auto/core/qaspectengine/tst_qaspectengine.cpp
index 4f9bd7b14..f6cd73485 100644
--- a/tests/auto/core/qaspectengine/tst_qaspectengine.cpp
+++ b/tests/auto/core/qaspectengine/tst_qaspectengine.cpp
@@ -130,7 +130,6 @@ private Q_SLOTS:
// An initialized engine (so that the arbiter has been fed)
QAspectEngine engine;
- engine.initialize();
// WHEN
engine.setRootEntity(root);