diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-08-08 13:18:04 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-08-09 07:31:06 +0000 |
commit | edbc111a363ad88e144ac3472b73c802286b0f12 (patch) | |
tree | b849c86a75dbd5246d4ed6f35906d6eff18ecd0b | |
parent | 89b923242ad4697ec005aeb0f24659d85fb03c9e (diff) |
Renderer: properly destroy pending renderqueue
On shutdown it may happen that we have a renderqueue that we haven't rendered
because the surface was destroyed prior to it being completed. If that's the
case we properly destroy it.
Change-Id: I945213abdae7809a9973a03dddae57e3377dfee0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | src/render/backend/renderer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/render/backend/renderer.cpp b/src/render/backend/renderer.cpp index eb65984c9..66efb6dcb 100644 --- a/src/render/backend/renderer.cpp +++ b/src/render/backend/renderer.cpp @@ -290,6 +290,12 @@ void Renderer::shutdown() { qCDebug(Backend) << Q_FUNC_INFO << "Requesting renderer shutdown"; m_running.store(0); + + // We delete any renderqueue that we may not have had time to render + // before the surface was destroyed + qDeleteAll(m_renderQueue->nextFrameQueue()); + m_renderQueue->reset(); + if (!m_renderThread) { releaseGraphicsResources(); } else { |