diff options
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/renderers/rhi/renderer/renderer.cpp b/src/plugins/renderers/rhi/renderer/renderer.cpp index 1f3043fd4..5d25e3257 100644 --- a/src/plugins/renderers/rhi/renderer/renderer.cpp +++ b/src/plugins/renderers/rhi/renderer/renderer.cpp @@ -2746,14 +2746,15 @@ bool Renderer::executeCommandsSubmission(const RHIPassInfo &passInfo) readBackResult->completed = [this, readBackResult, renderCaptureId, request] () { const QImage::Format fmt = QImage::Format_RGBA8888_Premultiplied; // fits QRhiTexture::RGBA8 const uchar *p = reinterpret_cast<const uchar *>(readBackResult->data.constData()); - const QImage image(p, readBackResult->pixelSize.width(), readBackResult->pixelSize.height(), fmt); + const QImage image(p, readBackResult->pixelSize.width(), readBackResult->pixelSize.height(), fmt, [] (void *ptr) { + delete static_cast<QRhiReadbackResult *>(ptr); + }, readBackResult); Render::RenderCapture *renderCapture = static_cast<Render::RenderCapture*>(m_nodesManager->frameGraphManager()->lookupNode(renderCaptureId)); renderCapture->addRenderCapture(request.captureId, image); QMutexLocker lock(&m_pendingRenderCaptureSendRequestsMutex); if (!Qt3DCore::contains(m_pendingRenderCaptureSendRequests, renderCaptureId)) m_pendingRenderCaptureSendRequests.push_back(renderCaptureId); - delete readBackResult; }; QRhiReadbackDescription readbackDesc; |