diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-12-08 11:42:25 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-01-13 10:55:14 +0000 |
commit | 5c89a2c7e43f930758b207acb0e89cd7477c4f60 (patch) | |
tree | fd5be7ec340fd085be1beb24fdeba987a4bbef52 /src/render/materialsystem/shader_p.h | |
parent | 7f308fe0a9ec54d30c886203876d765e284f3826 (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.h | 13 |
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); |