diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-08-03 11:00:49 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-08-03 11:23:07 +0000 |
commit | 59e4269998ed8f27e67bfcae21c5b966f0b23475 (patch) | |
tree | 6aa6e129f6180f558e9f4e7c51cbd9bb8f47f106 /src/imports/studio3d/q3dsstudio3ditem.cpp | |
parent | 6830a0cf89b0b7b6c99f8a1ae36cf19075e1a28e (diff) |
Fix two sources of crashes when (un)loading a Studio3D
Task-number: QT3DS-1995
Change-Id: Ie9a5ded67edba5d9c0247fb381254558e381bf3a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/imports/studio3d/q3dsstudio3ditem.cpp')
-rw-r--r-- | src/imports/studio3d/q3dsstudio3ditem.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/imports/studio3d/q3dsstudio3ditem.cpp b/src/imports/studio3d/q3dsstudio3ditem.cpp index eded414..4bf64e8 100644 --- a/src/imports/studio3d/q3dsstudio3ditem.cpp +++ b/src/imports/studio3d/q3dsstudio3ditem.cpp @@ -459,7 +459,10 @@ void Q3DSStudio3DItem::itemChange(QQuickItem::ItemChange change, void Q3DSStudio3DItem::startEngine() { // set root entity - m_engine->start(); + if (m_engine) + m_engine->start(); + else + qWarning("No engine (no window for item?), cannot start"); } void Q3DSStudio3DItem::destroyEngine() @@ -548,6 +551,7 @@ void Q3DSStudio3DItem::releaseEngineAndRenderer() EngineReleaser *er = new EngineReleaser(m_engine); RendererReleaser *rr = new RendererReleaser(m_renderer, er); window()->scheduleRenderJob(rr, QQuickWindow::BeforeSynchronizingStage); + m_renderer->invalidateItem(); m_renderer = nullptr; m_engine = nullptr; } |