diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-03-31 11:38:39 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-03-31 13:03:06 +0300 |
commit | 91704d001196be41d9cc59b22692b73cf8d409d9 (patch) | |
tree | 32144bf50b395058b757e424520f627e1a539733 | |
parent | 02d02acf8a0544024b4ee54259503a0834e13e2b (diff) |
Add import scene children if imported scene is outside viewportv5.15.0-beta3
Change-Id: I85bc47c126ed58597a12bbeb9af29571cf84b9f8
Fixes: QDS-1877
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | src/quick3d/qquick3dscenerenderer.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/quick3d/qquick3dscenerenderer.cpp b/src/quick3d/qquick3dscenerenderer.cpp index e26fb004..e742cfb0 100644 --- a/src/quick3d/qquick3dscenerenderer.cpp +++ b/src/quick3d/qquick3dscenerenderer.cpp @@ -342,10 +342,18 @@ void QQuick3DSceneRenderer::synchronize(QQuick3DViewport *item, const QSize &siz removeNodeFromLayer(m_importRootNode); if (importRootNode) { - // if root node has already parent at this point - // it means "importScene: MyScene { }" type of inclusion. + // if importScene has the rendered viewport as ancestor, it probably means + // "importScene: MyScene { }" type of inclusion. // In this case don't duplicate content by adding it again. - const bool isEmbedded = importRootNode->parent; + QObject *sceneParent = importScene->parent(); + bool isEmbedded = false; + while (sceneParent) { + if (sceneParent == item) { + isEmbedded = true; + break; + } + sceneParent = sceneParent->parent(); + } if (!isEmbedded) m_layer->addChildrenToLayer(*importRootNode); } |