diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2019-03-08 16:20:21 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2019-03-11 08:52:44 +0000 |
commit | e9c23418a55a1cff6e944f5c4023b988704d6aa9 (patch) | |
tree | bded35611c97ac88815bf6775a3f889735ac6f86 | |
parent | 4c622dd9ead44f33ad7996fbf86f995f8401bd6a (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.cpp | 5 |
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); |