summaryrefslogtreecommitdiffstats
path: root/src/imports/studio3d/q3dsstudio3ditem.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2018-08-03 11:00:49 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-08-03 11:23:07 +0000
commit59e4269998ed8f27e67bfcae21c5b966f0b23475 (patch)
tree6aa6e129f6180f558e9f4e7c51cbd9bb8f47f106 /src/imports/studio3d/q3dsstudio3ditem.cpp
parent6830a0cf89b0b7b6c99f8a1ae36cf19075e1a28e (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.cpp6
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;
}