diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-01-27 09:33:16 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-01-27 11:29:29 +0100 |
commit | 292dbe36a8ffa811eb950b2cec4f954e23652eaa (patch) | |
tree | 98eb3ceda4013f53a11fe73b5d19462deedd1365 | |
parent | 48c8f339f09c5274536222bce159a6d0394dbede (diff) |
Shader: make uniform block accessors const
To prevent any container detaching
Change-Id: Ie7de744fd492efaab49aa133a7904b293dc7d178
Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r-- | src/render/materialsystem/shader.cpp | 51 | ||||
-rw-r--r-- | src/render/materialsystem/shader_p.h | 12 |
2 files changed, 30 insertions, 33 deletions
diff --git a/src/render/materialsystem/shader.cpp b/src/render/materialsystem/shader.cpp index d42b0dda7..c46a66a22 100644 --- a/src/render/materialsystem/shader.cpp +++ b/src/render/materialsystem/shader.cpp @@ -202,59 +202,56 @@ QHash<QString, ShaderUniform> Shader::activeUniformsForUniformBlock(int blockInd return m_uniformBlockIndexToShaderUniforms.value(blockIndex); } -ShaderUniformBlock Shader::uniformBlockForBlockIndex(int blockIndex) +ShaderUniformBlock Shader::uniformBlockForBlockIndex(int blockIndex) const { - for (int i = 0, m = m_uniformBlocks.size(); i < m; ++i) { - if (m_uniformBlocks[i].m_index == blockIndex) { - return m_uniformBlocks[i]; - } + for (const ShaderUniformBlock &block : qAsConst(m_uniformBlocks)) { + if (block.m_index == blockIndex) + return block; } return ShaderUniformBlock(); } -ShaderUniformBlock Shader::uniformBlockForBlockNameId(int blockNameId) +ShaderUniformBlock Shader::uniformBlockForBlockNameId(int blockNameId) const { - for (int i = 0, m = m_uniformBlocks.size(); i < m; ++i) { - if (m_uniformBlocks[i].m_nameId == blockNameId) { - return m_uniformBlocks[i]; - } + for (const ShaderUniformBlock &block : qAsConst(m_uniformBlocks)) { + if (block.m_nameId == blockNameId) + return block; } return ShaderUniformBlock(); } -ShaderUniformBlock Shader::uniformBlockForBlockName(const QString &blockName) +ShaderUniformBlock Shader::uniformBlockForBlockName(const QString &blockName) const { - for (int i = 0, m = m_uniformBlocks.size(); i < m; ++i) { - if (m_uniformBlocks[i].m_name == blockName) { - return m_uniformBlocks[i]; - } + for (const ShaderUniformBlock &block : qAsConst(m_uniformBlocks)) { + if (block.m_name == blockName) + return block; } return ShaderUniformBlock(); } -ShaderStorageBlock Shader::storageBlockForBlockIndex(int blockIndex) +ShaderStorageBlock Shader::storageBlockForBlockIndex(int blockIndex) const { - for (int i = 0, m = m_shaderStorageBlockNames.size(); i < m; ++i) { - if (m_shaderStorageBlocks[i].m_index == blockIndex) - return m_shaderStorageBlocks[i]; + for (const ShaderStorageBlock &block: qAsConst(m_shaderStorageBlocks)) { + if (block.m_index == blockIndex) + return block; } return ShaderStorageBlock(); } -ShaderStorageBlock Shader::storageBlockForBlockNameId(int blockNameId) +ShaderStorageBlock Shader::storageBlockForBlockNameId(int blockNameId) const { - for (int i = 0, m = m_shaderStorageBlockNames.size(); i < m; ++i) { - if (m_shaderStorageBlocks[i].m_nameId == blockNameId) - return m_shaderStorageBlocks[i]; + for (const ShaderStorageBlock &block: qAsConst(m_shaderStorageBlocks)) { + if (block.m_nameId == blockNameId) + return block; } return ShaderStorageBlock(); } -ShaderStorageBlock Shader::storageBlockForBlockName(const QString &blockName) +ShaderStorageBlock Shader::storageBlockForBlockName(const QString &blockName) const { - for (int i = 0, m = m_shaderStorageBlockNames.size(); i < m; ++i) { - if (m_shaderStorageBlocks[i].m_name == blockName) - return m_shaderStorageBlocks[i]; + for (const ShaderStorageBlock &block: qAsConst(m_shaderStorageBlocks)) { + if (block.m_name == blockName) + return block; } return ShaderStorageBlock(); } diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h index 9eb24904c..e47dfb90f 100644 --- a/src/render/materialsystem/shader_p.h +++ b/src/render/materialsystem/shader_p.h @@ -111,13 +111,13 @@ public: QHash<QString, ShaderUniform> activeUniformsForUniformBlock(int blockIndex) const; - ShaderUniformBlock uniformBlockForBlockIndex(int blockNameId); - ShaderUniformBlock uniformBlockForBlockNameId(int blockIndex); - ShaderUniformBlock uniformBlockForBlockName(const QString &blockName); + ShaderUniformBlock uniformBlockForBlockIndex(int blockNameId) const; + ShaderUniformBlock uniformBlockForBlockNameId(int blockIndex) const; + ShaderUniformBlock uniformBlockForBlockName(const QString &blockName) const; - ShaderStorageBlock storageBlockForBlockIndex(int blockIndex); - ShaderStorageBlock storageBlockForBlockNameId(int blockNameId); - ShaderStorageBlock storageBlockForBlockName(const QString &blockName); + ShaderStorageBlock storageBlockForBlockIndex(int blockIndex) const; + ShaderStorageBlock storageBlockForBlockNameId(int blockNameId) const; + ShaderStorageBlock storageBlockForBlockName(const QString &blockName) const; inline QString log() const { return m_log; } inline QShaderProgram::Status status() const { return m_status; } |