diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-05-17 19:41:35 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-20 18:18:27 +0000 |
commit | c4ff7c7a417b1b1e6bb3e0099209cd4ff7a4d09d (patch) | |
tree | 55d0eef86cb5baefeb1eee7dfec6375be956ea87 /src | |
parent | 9ffb65683ae756697bfc98490d25c71e66fc77f8 (diff) |
Only try to create render jobs if we have a settings object
Task-number: QTBUG-42353
Task-number: QTBUG-51035
Change-Id: Ic6ebaace64d314d23d85c38ed93029498167832f
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index fac2687bb..ee8df1992 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -303,8 +303,11 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time) // 6 PickBoundingVolumeJob // 7 Cleanup Job (depends on RV) - // Create jobs to load in any meshes that are pending - if (d->m_renderer != nullptr && d->m_renderer->isRunning()) { + // Ensure we have a settings object. It may get deleted by the call to + // QChangeArbiter::syncChanges() that happens just before the render aspect is + // asked for jobs to execute (this function). If that is the case, the RenderSettings will + // be null and we should not generate any jobs. + if (d->m_renderer != nullptr && d->m_renderer->isRunning() && d->m_renderer->settings()) { // don't spawn any jobs, if the renderer decides to skip this frame if (!d->m_renderer->shouldRender()) { d->m_renderer->skipNextFrame(); |