moGL  travis-test-3
Modern OpenGL wrapper, thin C++14 header-only layer on top of the OpenGL 4.5+ core spec
 All Classes Namespaces Files Functions Variables Defines
Classes | Public Member Functions
mogl::ShaderProgram Class Reference

#include <shaderprogram.hpp>

Inheritance diagram for mogl::ShaderProgram:
Inheritance graph
[legend]
Collaboration diagram for mogl::ShaderProgram:
Collaboration graph
[legend]

List of all members.

Classes

struct  SubroutineUniform

Public Member Functions

 ShaderProgram ()
 ~ShaderProgram ()
void attach (const Shader &object)
void detach (const Shader &object)
void bindAttribLocation (GLuint location, const std::string &attribute)
bool link ()
void use ()
const std::string & getLog () const
GLuint getAttribLocation (const std::string &name) const
GLuint getUniformLocation (const std::string &name) const
void setTransformFeedbackVaryings (GLsizei count, const char **varyings, GLenum bufferMode)
void setVertexAttribPointer (GLuint location, GLint size, GLenum type, GLboolean normalized=GL_FALSE, GLsizei stride=0, const GLvoid *pointerOffset=nullptr)
void setVertexAttribPointer (const std::string &name, GLint size, GLenum type, GLboolean normalized=GL_FALSE, GLsizei stride=0, const GLvoid *pointerOffset=nullptr)
template<class T >
void setUniform (const std::string &name, T v1)
template<class T >
void setUniform (const std::string &name, T v1, T v2)
template<class T >
void setUniform (const std::string &name, T v1, T v2, T v3)
template<class T >
void setUniform (const std::string &name, T v1, T v2, T v3, T v4)
template<std::size_t Size, class T >
void setUniformPtr (const std::string &name, const T *ptr, GLsizei count=1)
template<std::size_t Columns, std::size_t Rows, class T >
void setUniformMatrixPtr (const std::string &name, const T *ptr, GLboolean transpose=GL_FALSE, GLsizei count=1)
template<std::size_t Size, class T >
void setUniformMatrixPtr (const std::string &name, const T *ptr, GLboolean transpose=GL_FALSE, GLsizei count=1)
void setUniformSubroutine (GLenum type, const std::string &uniform, const std::string &subroutine)
void printDebug ()
void get (GLenum property, GLint *value)
GLint get (GLenum property)
void set (GLenum property, GLint value)
bool isHandleValid () const override final
template<>
void setUniform (const std::string &name, GLfloat v1)
template<>
void setUniform (const std::string &name, GLfloat v1, GLfloat v2)
template<>
void setUniform (const std::string &name, GLfloat v1, GLfloat v2, GLfloat v3)
template<>
void setUniform (const std::string &name, GLfloat v1, GLfloat v2, GLfloat v3, GLfloat v4)
template<>
void setUniform (const std::string &name, GLint v1)
template<>
void setUniform (const std::string &name, GLint v1, GLint v2)
template<>
void setUniform (const std::string &name, GLint v1, GLint v2, GLint v3)
template<>
void setUniform (const std::string &name, GLint v1, GLint v2, GLint v3, GLint v4)
template<>
void setUniform (const std::string &name, GLuint v1)
template<>
void setUniform (const std::string &name, GLuint v1, GLuint v2)
template<>
void setUniform (const std::string &name, GLuint v1, GLuint v2, GLuint v3)
template<>
void setUniform (const std::string &name, GLuint v1, GLuint v2, GLuint v3, GLuint v4)
template<>
void setUniformPtr (const std::string &name, const GLfloat *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLfloat *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLfloat *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLfloat *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLuint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLuint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLuint *ptr, GLsizei count)
template<>
void setUniformPtr (const std::string &name, const GLuint *ptr, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)
template<>
void setUniformMatrixPtr (const std::string &name, const GLfloat *ptr, GLboolean transpose, GLsizei count)

Constructor & Destructor Documentation


Member Function Documentation

void mogl::ShaderProgram::attach ( const Shader object) [inline]
void mogl::ShaderProgram::bindAttribLocation ( GLuint  location,
const std::string &  attribute 
) [inline]
void mogl::ShaderProgram::detach ( const Shader object) [inline]
void mogl::ShaderProgram::get ( GLenum  property,
GLint *  value 
) [inline]
GLint mogl::ShaderProgram::get ( GLenum  property) [inline]
GLuint mogl::ShaderProgram::getAttribLocation ( const std::string &  name) const [inline]
const std::string & mogl::ShaderProgram::getLog ( ) const [inline]
GLuint mogl::ShaderProgram::getUniformLocation ( const std::string &  name) const [inline]
bool mogl::ShaderProgram::isHandleValid ( ) const [inline, override, virtual]
bool mogl::ShaderProgram::link ( ) [inline]
void mogl::ShaderProgram::set ( GLenum  property,
GLint  value 
) [inline]
void mogl::ShaderProgram::setTransformFeedbackVaryings ( GLsizei  count,
const char **  varyings,
GLenum  bufferMode 
) [inline]
template<class T >
void mogl::ShaderProgram::setUniform ( const std::string &  name,
v1 
)
template<class T >
void mogl::ShaderProgram::setUniform ( const std::string &  name,
v1,
v2 
)
template<class T >
void mogl::ShaderProgram::setUniform ( const std::string &  name,
v1,
v2,
v3 
)
template<class T >
void mogl::ShaderProgram::setUniform ( const std::string &  name,
v1,
v2,
v3,
v4 
)
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLfloat  v1 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLfloat  v1,
GLfloat  v2 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLfloat  v1,
GLfloat  v2,
GLfloat  v3 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLfloat  v1,
GLfloat  v2,
GLfloat  v3,
GLfloat  v4 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLint  v1 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLint  v1,
GLint  v2 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLint  v1,
GLint  v2,
GLint  v3 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLint  v1,
GLint  v2,
GLint  v3,
GLint  v4 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLuint  v1 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLuint  v1,
GLuint  v2 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLuint  v1,
GLuint  v2,
GLuint  v3 
) [inline]
template<>
void mogl::ShaderProgram::setUniform ( const std::string &  name,
GLuint  v1,
GLuint  v2,
GLuint  v3,
GLuint  v4 
) [inline]
template<std::size_t Columns, std::size_t Rows, class T >
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const T *  ptr,
GLboolean  transpose = GL_FALSE,
GLsizei  count = 1 
)
template<std::size_t Size, class T >
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const T *  ptr,
GLboolean  transpose = GL_FALSE,
GLsizei  count = 1 
)
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformMatrixPtr ( const std::string &  name,
const GLfloat *  ptr,
GLboolean  transpose,
GLsizei  count 
) [inline]
template<std::size_t Size, class T >
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const T *  ptr,
GLsizei  count = 1 
)
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLfloat *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLfloat *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLfloat *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLfloat *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLuint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLuint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLuint *  ptr,
GLsizei  count 
) [inline]
template<>
void mogl::ShaderProgram::setUniformPtr ( const std::string &  name,
const GLuint *  ptr,
GLsizei  count 
) [inline]
void mogl::ShaderProgram::setUniformSubroutine ( GLenum  type,
const std::string &  uniform,
const std::string &  subroutine 
) [inline]
void mogl::ShaderProgram::setVertexAttribPointer ( GLuint  location,
GLint  size,
GLenum  type,
GLboolean  normalized = GL_FALSE,
GLsizei  stride = 0,
const GLvoid *  pointerOffset = nullptr 
) [inline]
void mogl::ShaderProgram::setVertexAttribPointer ( const std::string &  name,
GLint  size,
GLenum  type,
GLboolean  normalized = GL_FALSE,
GLsizei  stride = 0,
const GLvoid *  pointerOffset = nullptr 
) [inline]
void mogl::ShaderProgram::use ( ) [inline]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Defines