summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-08-08 13:18:04 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-08-09 07:31:06 +0000
commitedbc111a363ad88e144ac3472b73c802286b0f12 (patch)
treeb849c86a75dbd5246d4ed6f35906d6eff18ecd0b
parent89b923242ad4697ec005aeb0f24659d85fb03c9e (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.cpp6
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 {