summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2019-03-08 16:20:21 +0200
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2019-03-11 08:52:44 +0000
commite9c23418a55a1cff6e944f5c4023b988704d6aa9 (patch)
treebded35611c97ac88815bf6775a3f889735ac6f86
parent4c622dd9ead44f33ad7996fbf86f995f8401bd6a (diff)
Fix crash when adding a layer
stereoModeParam needs to be parented to the layerSceneRootEntity like other parameters or runtime will crash when the compositor layer chain is rebuilt. If it is not explicitly parented, the renderpass will own it and delete it when it gets destroyed during rebuild. Task-number: QT3DS-3092 Change-Id: Ide3af92ec5af5eab3413b9ab8833a2138865410d Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
-rw-r--r--src/runtime/q3dsscenemanager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/runtime/q3dsscenemanager.cpp b/src/runtime/q3dsscenemanager.cpp
index eae193a..6c40962 100644
--- a/src/runtime/q3dsscenemanager.cpp
+++ b/src/runtime/q3dsscenemanager.cpp
@@ -3923,8 +3923,11 @@ void Q3DSSceneManager::buildLayerQuadEntity(Q3DSLayerNode *layer3DS, Qt3DCore::Q
renderPass->addParameter(data->eyeRight->compositorSourceParam);
- if (data->stereoModeParam)
+ if (data->stereoModeParam) {
+ if (!data->stereoModeParam->parent())
+ data->stereoModeParam->setParent(data->layerSceneRootEntity);
renderPass->addParameter(data->stereoModeParam);
+ }
}
technique->addRenderPass(renderPass);