summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvenn-Arne Dragly <s@dragly.com>2019-02-27 09:48:48 +0100
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2019-03-21 12:58:19 +0000
commit4fad7f872d4582095b3bf23d18692059b577ba38 (patch)
tree7d20f213b6f31c53f18c6c3ef6f142f2ecdfc34a
parentf79131795da23912908ae0fee8a9accd276fb181 (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.cpp4
-rw-r--r--src/runtime/dragon/dragontrackingchangescontainer_p.h3
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);
}