137 inline GLuint GetProgramHandle()
const;
138 inline std::vector<Input>
const& GetInputs()
const;
139 inline std::vector<Output>
const& GetOutputs()
const;
140 inline std::vector<Uniform>
const& GetUniforms()
const;
141 inline std::vector<DataBlock>
const& GetUniformBlocks()
const;
142 inline std::vector<BufferVariable>
const& GetBufferVariables()
const;
143 inline std::vector<DataBlock>
const& GetBufferBlocks()
const;
144 inline std::vector<AtomicCounterBuffer>
const& GetAtomicCounterBuffers()
const;
148 void GetComputeShaderWorkGroupSize(
GLint &numXThreads,
GLint& numYThreads,
GLint& numZThreads)
const;
151 void Print(std::ofstream& output)
const;
154 void ReflectProgramInputs();
155 void ReflectProgramOutputs();
156 void ReflectUniforms();
158 std::vector<DataBlock>& blocks);
159 void ReflectAtomicCounterBuffers();
161 std::vector<std::string>& subroutines);
163 std::vector<SubroutineUniform>& subUniforms);
164 void ReflectBufferVariables();
165 void ReflectTransformFeedbackVaryings();
166 void ReflectTransformFeedbackBuffers();
223 inline std::vector<GLSLReflection::Input>
const&
229 inline std::vector<GLSLReflection::Output>
const&
235 inline std::vector<GLSLReflection::Uniform>
const&
241 inline std::vector<GLSLReflection::DataBlock>
const&
244 return mUniformBlocks;
247 inline std::vector<GLSLReflection::BufferVariable>
const&
250 return mBufferVariables;
253 inline std::vector<GLSLReflection::DataBlock>
const&
256 return mShaderStorageBlocks;
259 inline std::vector<GLSLReflection::AtomicCounterBuffer>
const&
262 return mAtomicCounterBuffers;
std::vector< GLint > activeVariables
std::vector< std::string > mTessEvaluationSubroutines
std::vector< BufferVariable > const & GetBufferVariables() const
std::vector< AtomicCounterBuffer > const & GetAtomicCounterBuffers() const
std::vector< Output > mOutputs
std::vector< SubroutineUniform > mTessControlSubroutineUniforms
std::vector< TransformFeedbackBuffer > mTransformFeedbackBuffers
std::vector< GLint > activeVariables
std::vector< DataBlock > const & GetBufferBlocks() const
GLsizei const GLfloat * value
GLuint const GLchar * name
std::vector< Input > const & GetInputs() const
std::vector< SubroutineUniform > mVertexSubroutineUniforms
std::vector< TransformFeedbackVarying > mTransformFeedbackVaryings
std::vector< SubroutineUniform > mPixelSubroutineUniforms
std::vector< std::string > mGeometrySubroutines
std::vector< SubroutineUniform > mComputeSubroutineUniforms
std::vector< Uniform > mUniforms
std::vector< std::string > mTessControlSubroutines
GLsizei const GLchar *const * string
std::vector< DataBlock > mShaderStorageBlocks
std::vector< DataBlock > mUniformBlocks
std::vector< SubroutineUniform > mGeometrySubroutineUniforms
std::vector< BufferVariable > mBufferVariables
GLuint GetProgramHandle() const
std::vector< std::string > mPixelSubroutines
std::vector< std::string > mVertexSubroutines
std::vector< Output > const & GetOutputs() const
std::map< GLenum, int > mShaderTypeMap
std::vector< DataBlock > const & GetUniformBlocks() const
std::vector< AtomicCounterBuffer > mAtomicCounterBuffers
std::vector< std::string > mComputeSubroutines
std::vector< Input > mInputs
GLint topLevelArrayStride
std::vector< SubroutineUniform > mTessEvaluationSubroutineUniforms
std::vector< Uniform > const & GetUniforms() const