summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/shader_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-02-11 08:47:00 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-02-21 10:36:29 +0000
commit2fd869c0f36e821d0bfdb3a4edbb344a0d4190b9 (patch)
tree9b442a6a50ac34ccdeb620295df0fa0402648f51 /src/render/materialsystem/shader_p.h
parent1e409bf2e5e7e21a25d9913ea044fe08db6ff787 (diff)
RenderViews: use int comparison rather than string for uniforms filtering
Provides a non negligible gain in performance. Change-Id: I1165d1fcd044e3bdebf286539da2f5316f764540 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/materialsystem/shader_p.h')
-rw-r--r--src/render/materialsystem/shader_p.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h
index 88694fd98..794ccc77d 100644
--- a/src/render/materialsystem/shader_p.h
+++ b/src/render/materialsystem/shader_p.h
@@ -84,6 +84,10 @@ public:
void updateUniforms(GraphicsContext *ctx, const ShaderParameterPack &pack);
void setFragOutputs(const QHash<QString, int> &fragOutputs);
+ QVector<int> uniformsNamesIds() const;
+ QVector<int> uniformBlockNamesIds() const;
+ QVector<int> storageBlockNamesIds() const;
+
QVector<QString> uniformsNames() const;
QVector<QString> attributesNames() const;
QVector<QString> uniformBlockNames() const;
@@ -100,11 +104,14 @@ public:
QVector<ShaderStorageBlock> storageBlocks() const;
QHash<QString, ShaderUniform> activeUniformsForUniformBlock(int blockIndex) const;
- ShaderUniformBlock uniformBlock(int blockIndex);
- ShaderUniformBlock uniformBlock(const QString &blockName);
- ShaderStorageBlock storageBlock(int blockIndex);
- ShaderStorageBlock storageBlock(const QString &blockName);
+ ShaderUniformBlock uniformBlockForBlockIndex(int blockNameId);
+ ShaderUniformBlock uniformBlockForBlockNameId(int blockIndex);
+ ShaderUniformBlock uniformBlockForBlockName(const QString &blockName);
+
+ ShaderStorageBlock storageBlockForBlockIndex(int blockIndex);
+ ShaderStorageBlock storageBlockForBlockNameId(int blockNameId);
+ ShaderStorageBlock storageBlockForBlockName(const QString &blockName);
private:
QOpenGLShaderProgram *m_program;
@@ -113,16 +120,19 @@ private:
QOpenGLShaderProgram *createDefaultProgram();
QVector<QString> m_uniformsNames;
+ QVector<int> m_uniformsNamesIds;
QVector<ShaderUniform> m_uniforms;
QVector<QString> m_attributesNames;
QVector<ShaderAttribute> m_attributes;
QVector<QString> m_uniformBlockNames;
+ QVector<int> m_uniformBlockNamesIds;
QVector<ShaderUniformBlock> m_uniformBlocks;
QHash<int, QHash<QString, ShaderUniform> > m_uniformBlockIndexToShaderUniforms;
QVector<QString> m_shaderStorageBlockNames;
+ QVector<int> m_shaderStorageBlockNamesIds;
QVector<ShaderStorageBlock> m_shaderStorageBlocks;
QHash<QString, int> m_fragOutputs;