summaryrefslogtreecommitdiffstats
path: root/src/render/backend/renderview.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-03-02 10:58:46 +0100
committerPaul Lemire <paul.lemire@kdab.com>2018-03-16 11:21:07 +0000
commit00b7e4b76ab0454178a7f6412100152cc52d0581 (patch)
tree43f3486a16a58378a2b069d68e31a27d3370a0c0 /src/render/backend/renderview.cpp
parentc1b495f70c3b4f0c23d44dfcd99aed5882312100 (diff)
Perform Shader loading within frame
- CommandThread has been improved to not use an exec loop and properly instantiate its own GL context + GraphicsContext that is bound to an offscreen surface - The dirtyShaderGathering job has been renamed and now performs the loading of shaders and their introspection. It is also run before the materiaparameter gathering, so that these jobs and the following can assume a shader is ready Change-Id: I6d99b3a104bd96530dc45f4b05d3aaac09d2d077 Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/backend/renderview.cpp')
-rw-r--r--src/render/backend/renderview.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/render/backend/renderview.cpp b/src/render/backend/renderview.cpp
index 8a45e1fa9..c29448570 100644
--- a/src/render/backend/renderview.cpp
+++ b/src/render/backend/renderview.cpp
@@ -934,8 +934,8 @@ void RenderView::setShaderAndUniforms(RenderCommand *command,
if (rPass != nullptr) {
// Index Shader by Shader UUID
command->m_shader = m_manager->lookupHandle<Shader, ShaderManager, HShader>(rPass->shaderProgram());
- Shader *shader = nullptr;
- if ((shader = m_manager->data<Shader, ShaderManager>(command->m_shader)) != nullptr) {
+ Shader *shader = m_manager->data<Shader, ShaderManager>(command->m_shader);
+ if (shader != nullptr && shader->isLoaded()) {
command->m_shaderDna = shader->dna();
// Builds the QUniformPack, sets shader standard uniforms and store attributes name / glname bindings