diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-03-02 10:58:46 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-03-16 11:21:07 +0000 |
commit | 00b7e4b76ab0454178a7f6412100152cc52d0581 (patch) | |
tree | 43f3486a16a58378a2b069d68e31a27d3370a0c0 /src/render/backend/renderview.cpp | |
parent | c1b495f70c3b4f0c23d44dfcd99aed5882312100 (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.cpp | 4 |
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 |