diff options
author | Svenn-Arne Dragly <s@dragly.com> | 2019-02-27 09:48:48 +0100 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2019-03-21 12:58:19 +0000 |
commit | 4fad7f872d4582095b3bf23d18692059b577ba38 (patch) | |
tree | 7d20f213b6f31c53f18c6c3ef6f142f2ecdfc34a | |
parent | f79131795da23912908ae0fee8a9accd276fb181 (diff) |
Dragon: Add get function that asserts if element does not exist
With operator[], a default-constructed element would be created,
which could later lead to errors. By asserting earlier, it is easier to
catch errors while debugging.
Change-Id: I784a0b9712d78bd80bccc7b3667847bcd4ef691c
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/runtime/dragon/dragonrenderer.cpp | 4 | ||||
-rw-r--r-- | src/runtime/dragon/dragontrackingchangescontainer_p.h | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/runtime/dragon/dragonrenderer.cpp b/src/runtime/dragon/dragonrenderer.cpp index 72b7301..2fef519 100644 --- a/src/runtime/dragon/dragonrenderer.cpp +++ b/src/runtime/dragon/dragonrenderer.cpp @@ -466,7 +466,7 @@ Renderer::Frame Renderer::doRender(Renderer::Frame frame) // TODO actually check if attributes changed (see requiresVAOAttributeUpdate and requiresFullVAOUpdate) if (!frame.uploadedVaos.contains(vaoKey)) { // TODO make createVertexArrayObject take the shader and geometry (or just command) and return a complete VAO instead - const auto &glShader = frame.uploadedShaders[command.m_shader->peerId()]; + const auto &glShader = frame.uploadedShaders.get(command.m_shader->peerId()); const auto &geometry = command.m_geometry; const auto &vao = activeSurface.createVertexArrayObject( vaoKey, glShader, geometry, attributes, frame.uploadedBuffers); @@ -591,7 +591,7 @@ Renderer::Frame Renderer::doRender(Renderer::Frame frame) // TODO upload geometry data (in a job) // TODO prepare shader uniforms // TODO check if anything is missing from commands (see old prepareCommandSubmission) - const auto &glShader = frame.uploadedShaders[command.m_shader->peerId()]; + const auto &glShader = frame.uploadedShaders.get(command.m_shader->peerId()); stateSet = activeSurface.applyStateSet(stateSet, command.m_renderStateSet.get()); diff --git a/src/runtime/dragon/dragontrackingchangescontainer_p.h b/src/runtime/dragon/dragontrackingchangescontainer_p.h index bba173c..7128f12 100644 --- a/src/runtime/dragon/dragontrackingchangescontainer_p.h +++ b/src/runtime/dragon/dragontrackingchangescontainer_p.h @@ -174,8 +174,9 @@ public: m_container.insert(key, value); } - T value(const Key & key) + T get(const Key & key) { + Q_ASSERT(m_container.contains(key)); return m_container.value(key); } |