diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-10-30 15:30:52 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-11-14 06:16:56 +0000 |
commit | f1b333c36a19cf85eab798fc1b1952ed063fedfe (patch) | |
tree | bed08fc0bd5d4a4e925d368786f3e8398e2ec908 /src/render/renderers/opengl/renderer | |
parent | a3761a118f07dd3d4bebc3b28fff01b5f91a0016 (diff) |
QComputeCommand allow to control the run behavior
It can either be Continuous, like it was until now or Manual.
When in manual mode, the compute shader will only be executed
by calling trigger()
Change-Id: Icaae24f4691ccd821297f967d564e7a883fa60b5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/renderers/opengl/renderer')
-rw-r--r-- | src/render/renderers/opengl/renderer/renderview.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/render/renderers/opengl/renderer/renderview.cpp b/src/render/renderers/opengl/renderer/renderview.cpp index 66299e430..39fed2294 100644 --- a/src/render/renderers/opengl/renderer/renderview.cpp +++ b/src/render/renderers/opengl/renderer/renderview.cpp @@ -714,6 +714,11 @@ QVector<RenderCommand *> RenderView::buildComputeRenderCommands(const QVector<En if ((computeJob = entity->renderComponent<ComputeCommand>()) != nullptr && computeJob->isEnabled()) { + // Note: if frameCount has reached 0 in the previous frame, isEnabled + // would be false + if (computeJob->runType() == QComputeCommand::Manual) + computeJob->updateFrameCount(); + const Qt3DCore::QNodeId materialComponentId = entity->componentUuid<Material>(); const QVector<RenderPassParameterData> renderPassData = m_parameters.value(materialComponentId); |