diff options
Diffstat (limited to 'src/plugins/renderers/opengl/renderer/renderer.cpp')
-rw-r--r-- | src/plugins/renderers/opengl/renderer/renderer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/plugins/renderers/opengl/renderer/renderer.cpp b/src/plugins/renderers/opengl/renderer/renderer.cpp index efccc7e44..13eb85d6f 100644 --- a/src/plugins/renderers/opengl/renderer/renderer.cpp +++ b/src/plugins/renderers/opengl/renderer/renderer.cpp @@ -1607,6 +1607,7 @@ Renderer::ViewSubmissionResultData Renderer::submitRenderViews(const std::vector static_cast<Render::RenderCapture*>(m_nodesManager->frameGraphManager()->lookupNode(renderView->renderCaptureNodeId())); renderCapture->addRenderCapture(request.captureId, image); const QNodeId renderCaptureId = renderView->renderCaptureNodeId(); + QMutexLocker lock(&m_pendingRenderCaptureSendRequestsMutex); if (!Qt3DCore::contains(m_pendingRenderCaptureSendRequests, renderCaptureId)) m_pendingRenderCaptureSendRequests.push_back(renderView->renderCaptureNodeId()); } @@ -1717,7 +1718,9 @@ void Renderer::jobsDone(Qt3DCore::QAspectManager *manager) // called in main thread once all jobs are done running // sync captured renders to frontend + QMutexLocker lock(&m_pendingRenderCaptureSendRequestsMutex); const std::vector<Qt3DCore::QNodeId> pendingCaptureIds = Qt3DCore::moveAndClear(m_pendingRenderCaptureSendRequests); + lock.unlock(); for (const Qt3DCore::QNodeId &id : pendingCaptureIds) { auto *backend = static_cast<Qt3DRender::Render::RenderCapture *> (m_nodesManager->frameGraphManager()->lookupNode(id)); |