From 4fad7f872d4582095b3bf23d18692059b577ba38 Mon Sep 17 00:00:00 2001 From: Svenn-Arne Dragly Date: Wed, 27 Feb 2019 09:48:48 +0100 Subject: Dragon: Add get function that asserts if element does not exist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ää Reviewed-by: Miikka Heikkinen --- src/runtime/dragon/dragonrenderer.cpp | 4 ++-- 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); } -- cgit v1.2.3