Public Member Functions

  • ~GlslProg ()
  • void
    bind () const
  • GLuint
    getHandle () const
  • void
    uniform (const std::string &name, bool data) const
  • void
    uniform (const std::string &name, int data) const
  • void
    uniform (const std::string &name, float data) const
  • void
    uniform (const std::string &name, uint32_t data) const
  • void
    uniform (int location, uint32_t data) const
  • void
    uniform (int location, bool data) const
  • void
    uniform (int location, int data) const
  • void
    uniform (int location, float data) const
  • void
    uniform (const std::string &name, const vec2 &data) const
  • void
    uniform (const std::string &name, const vec3 &data) const
  • void
    uniform (const std::string &name, const vec4 &data) const
  • void
    uniform (int location, const vec2 &data) const
  • void
    uniform (int location, const vec3 &data) const
  • void
    uniform (int location, const vec4 &data) const
  • void
    uniform (const std::string &name, const ivec2 &data) const
  • void
    uniform (const std::string &name, const ivec3 &data) const
  • void
    uniform (const std::string &name, const ivec4 &data) const
  • void
    uniform (int location, const ivec2 &data) const
  • void
    uniform (int location, const ivec3 &data) const
  • void
    uniform (int location, const ivec4 &data) const
  • void
    uniform (const std::string &name, const uvec2 &data) const
  • void
    uniform (const std::string &name, const uvec3 &data) const
  • void
    uniform (const std::string &name, const uvec4 &data) const
  • void
    uniform (int location, const uvec2 &data) const
  • void
    uniform (int location, const uvec3 &data) const
  • void
    uniform (int location, const uvec4 &data) const
  • void
    uniform (const std::string &name, const mat2 &data, bool transpose=false) const
  • void
    uniform (const std::string &name, const mat3 &data, bool transpose=false) const
  • void
    uniform (const std::string &name, const mat4 &data, bool transpose=false) const
  • void
    uniform (int location, const mat2 &data, bool transpose=false) const
  • void
    uniform (int location, const mat3 &data, bool transpose=false) const
  • void
    uniform (int location, const mat4 &data, bool transpose=false) const
  • void
    uniform (const std::string &name, const uint32_t *data, int count) const
  • void
    uniform (int location, const uint32_t *data, int count) const
  • void
    uniform (const std::string &name, const int *data, int count) const
  • void
    uniform (int location, const int *data, int count) const
  • void
    uniform (const std::string &name, const float *data, int count) const
  • void
    uniform (int location, const float *data, int count) const
  • void
    uniform (const std::string &name, const ivec2 *data, int count) const
  • void
    uniform (const std::string &name, const vec2 *data, int count) const
  • void
    uniform (const std::string &name, const vec3 *data, int count) const
  • void
    uniform (const std::string &name, const vec4 *data, int count) const
  • void
    uniform (int location, const ivec2 *data, int count) const
  • void
    uniform (int location, const vec2 *data, int count) const
  • void
    uniform (int location, const vec3 *data, int count) const
  • void
    uniform (int location, const vec4 *data, int count) const
  • void
    uniform (const std::string &name, const mat2 *data, int count, bool transpose=false) const
  • void
    uniform (const std::string &name, const mat3 *data, int count, bool transpose=false) const
  • void
    uniform (const std::string &name, const mat4 *data, int count, bool transpose=false) const
  • void
    uniform (int location, const mat2 *data, int count, bool transpose=false) const
  • void
    uniform (int location, const mat3 *data, int count, bool transpose=false) const
  • void
    uniform (int location, const mat4 *data, int count, bool transpose=false) const
  • bool
    hasAttribSemantic (geom::Attrib semantic) const
  • GLint
    getAttribSemanticLocation (geom::Attrib semantic) const
  • GLint
    operator[] (geom::Attrib sem) const
  • std::string
    getShaderLog (GLuint handle) const
  • string
    cppTypeToGlslTypeName ()
  • void
    uniformFunc (int location, const uint32_t &data) const
  • void
    uniformFunc (int location, const uvec2 &data) const
  • void
    uniformFunc (int location, const uvec3 &data) const
  • void
    uniformFunc (int location, const uvec4 &data) const
  • void
    uniformFunc (int location, const uint32_t *data, int count) const
  • void
    uniformFunc (int location, const int &data) const
  • void
    uniformFunc (int location, const ivec2 &data) const
  • void
    uniformFunc (int location, const ivec3 &data) const
  • void
    uniformFunc (int location, const ivec4 &data) const
  • void
    uniformFunc (int location, const int *data, int count) const
  • void
    uniformFunc (int location, const ivec2 *data, int count) const
  • void
    uniformFunc (int location, const float &data) const
  • void
    uniformFunc (int location, const vec2 &data) const
  • void
    uniformFunc (int location, const vec3 &data) const
  • void
    uniformFunc (int location, const vec4 &data) const
  • void
    uniformMatFunc (int location, const mat2 &data, bool transpose) const
  • void
    uniformMatFunc (int location, const mat3 &data, bool transpose) const
  • void
    uniformMatFunc (int location, const mat4 &data, bool transpose) const
  • void
    uniformFunc (int location, const float *data, int count) const
  • void
    uniformFunc (int location, const vec2 *data, int count) const
  • void
    uniformFunc (int location, const vec3 *data, int count) const
  • void
    uniformFunc (int location, const vec4 *data, int count) const
  • void
    uniformMatFunc (int location, const mat2 *data, int count, bool transpose) const
  • void
    uniformMatFunc (int location, const mat3 *data, int count, bool transpose) const
  • void
    uniformMatFunc (int location, const mat4 *data, int count, bool transpose) const

Static Public Member Functions

  • create (const Format &format)
  • create (DataSourceRef vertexShader, DataSourceRef fragmentShader=DataSourceRef(), DataSourceRef geometryShader=DataSourceRef(), DataSourceRef tessEvalShader=DataSourceRef(), DataSourceRef tessCtrlShader=DataSourceRef())
  • create (const std::string &vertexShader, const std::string &fragmentShader=std::string(), const std::string &geometryShader=std::string(), const std::string &tessEvalShader=std::string(), const std::string &tessCtrlShader=std::string())

Protected Member Functions

  • GlslProg (const Format &format)
  • void
    bindImpl () const
  • GLuint
    loadShader (const std::string &shaderSource, const fs::path &shaderPath, GLint shaderType, const ShaderPreprocessorRef &preprocessor)
  • void
    link ()
  • void
    uniformFunc (int location, const T &data) const
  • void
    uniformMatFunc (int location, const T &data, bool transpose) const
  • void
    uniformFunc (int location, const T *data, int count) const
  • void
    uniformMatFunc (int location, const T *data, int count, bool transpose) const
  • bool
    checkUniformType (GLenum uniformType, std::string &typeName) const
  • void
    uniformFunc (int location, const bool &data) const
  • std::string
    cppTypeToGlslTypeName ()

Protected Attributes

  • GLuint
    mHandle
  • std::vector< Attribute >
    mAttributes
  • std::vector< Uniform >
    mUniforms
  • std::unique_ptr< UniformValueCache >
    mUniformValueCache
  • std::set< std::string >
    mLoggedUniformNames
  • std::set< int >
    mLoggedUniformLocations
  • std::string
    mLabel
  • std::vector< fs::path >
    mShaderPreprocessorIncludedFiles

Friends

  • friend class
  • friend CI_API std::ostream &
    operator<< (std::ostream &os, const GlslProg &rhs)