From dc6e9d02ac1a9030308f2cdf11f96d4d3612fd6d Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Fri, 4 Dec 2015 15:29:45 +0100 Subject: Remove initialize/shutdown from API Hiding them in QAspectEnginePrivate and calling them when needed from setRootEntity. Change-Id: I4c3dfb19d84ae90cc15bbff29a4abd0705bb61dc Reviewed-by: Sean Harmer --- examples/qt3d/anaglyph-rendering/main.cpp | 1 - examples/qt3d/assimp-cpp/main.cpp | 1 - examples/qt3d/assimp/main.cpp | 1 - examples/qt3d/basicshapes-cpp/main.cpp | 1 - examples/qt3d/bigmodel-qml/main.cpp | 1 - examples/qt3d/bigscene-cpp/main.cpp | 1 - examples/qt3d/bigscene-instanced-qml/main.cpp | 1 - examples/qt3d/clip-planes-qml/main.cpp | 1 - examples/qt3d/cpp_example/main.cpp | 1 - examples/qt3d/custom-mesh-cpp/main.cpp | 1 - examples/qt3d/custom-mesh-qml/main.cpp | 1 - examples/qt3d/cylinder-cpp/main.cpp | 1 - examples/qt3d/cylinder-qml/main.cpp | 1 - examples/qt3d/deferred-renderer-qml/main.cpp | 1 - examples/qt3d/dynamicscene-cpp/main.cpp | 1 - examples/qt3d/enabled-qml/main.cpp | 1 - examples/qt3d/gltf/main.cpp | 1 - examples/qt3d/gooch-qml/main.cpp | 1 - examples/qt3d/instanced-arrays-qml/main.cpp | 1 - examples/qt3d/keyboardinput-qml/main.cpp | 1 - examples/qt3d/lights/main.cpp | 1 - examples/qt3d/loader-qml/main.cpp | 1 - examples/qt3d/materials-cpp/main.cpp | 1 - examples/qt3d/materials/main.cpp | 1 - examples/qt3d/mouseinput-qml/main.cpp | 1 - examples/qt3d/multiviewport/main.cpp | 1 - examples/qt3d/picking-qml/main.cpp | 1 - examples/qt3d/plasma/main.cpp | 1 - examples/qt3d/playground-qml/main.cpp | 1 - examples/qt3d/qgltf/main.cpp | 1 - examples/qt3d/shadow-map-qml/main.cpp | 1 - examples/qt3d/simple-qml/main.cpp | 1 - examples/qt3d/simple-shaders-qml/main.cpp | 1 - examples/qt3d/skybox/main.cpp | 1 - examples/qt3d/tessellation-modes/main.cpp | 1 - examples/qt3d/torus-qml/main.cpp | 1 - examples/qt3d/transforms-qml/main.cpp | 1 - examples/qt3d/transparency-qml/main.cpp | 1 - examples/qt3d/wave/main.cpp | 1 - examples/qt3d/wireframe/main.cpp | 1 - src/core/aspects/qaspectengine.cpp | 36 ++++++++++++---------- src/core/aspects/qaspectengine.h | 3 -- src/core/aspects/qaspectengine_p.h | 3 ++ src/quick3d/imports/scene3d/scene3ditem.cpp | 1 - src/quick3d/quick3d/qqmlaspectengine.cpp | 1 - src/render/frontend/qwindow.cpp | 1 - .../auto/core/qaspectengine/tst_qaspectengine.cpp | 1 - 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(&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(&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(&view))); data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view)); engine.aspectEngine()->setData(data); - engine.aspectEngine()->initialize(); qmlRegisterType("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(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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&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(&view))); data.insert(QStringLiteral("eventSource"), QVariant::fromValue(&view)); engine.aspectEngine()->setData(data); - engine.aspectEngine()->initialize(); // Register our custom types qmlRegisterType("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(&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(&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(&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(&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(&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(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 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 m_root; QList 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); -- cgit v1.2.3