summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/shader_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-12-08 11:42:25 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-01-13 10:55:14 +0000
commit5c89a2c7e43f930758b207acb0e89cd7477c4f60 (patch)
treefd5be7ec340fd085be1beb24fdeba987a4bbef52 /src/render/materialsystem/shader_p.h
parent7f308fe0a9ec54d30c886203876d765e284f3826 (diff)
Shaders: retrieve SSBO block
Change-Id: I62065d30b197367c8e5e03099c3af034892c4038 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.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h
index cc38f8c4a..d4839dba4 100644
--- a/src/render/materialsystem/shader_p.h
+++ b/src/render/materialsystem/shader_p.h
@@ -84,6 +84,7 @@ public:
QVector<QString> uniformsNames() const;
QVector<QString> attributesNames() const;
QVector<QString> uniformBlockNames() const;
+ QVector<QString> storageBlockNames() const;
QVector<QByteArray> shaderCode() const;
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
@@ -93,11 +94,15 @@ public:
QVector<ShaderUniform> uniforms() const;
QVector<ShaderAttribute> attributes() const;
QVector<ShaderUniformBlock> uniformBlocks() const;
+ QVector<ShaderStorageBlock> storageBlocks() const;
- QHash<QString, ShaderUniform> activeUniformsForBlock(int blockIndex) 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);
+
private:
QOpenGLShaderProgram *m_program;
@@ -112,7 +117,10 @@ private:
QVector<QString> m_uniformBlockNames;
QVector<ShaderUniformBlock> m_uniformBlocks;
- QHash<int, QHash<QString, ShaderUniform> > m_blockIndexToShaderUniforms;
+ QHash<int, QHash<QString, ShaderUniform> > m_uniformBlockIndexToShaderUniforms;
+
+ QVector<QString> m_shaderStorageBlockNames;
+ QVector<ShaderStorageBlock> m_shaderStorageBlocks;
QHash<QString, int> m_fragOutputs;
@@ -128,6 +136,7 @@ private:
void initializeUniforms(const QVector<ShaderUniform> &uniformsDescription);
void initializeAttributes(const QVector<ShaderAttribute> &attributesDescription);
void initializeUniformBlocks(const QVector<ShaderUniformBlock> &uniformBlockDescription);
+ void initializeShaderStorageBlocks(const QVector<ShaderStorageBlock> &shaderStorageBlockDescription);
void initialize(const Shader &other);