|
CGVIS Utils
|
OpenGL shader program with helpers for creation and data binding. More...
#include <GLProgram.h>
Public Member Functions | |
| ~GLProgram () | |
| Destroy and delete owned GL shader objects and program. | |
| GLProgram (const GLProgram &other) | |
| Copy‑construct a new program with duplicated shaders and linkage. | |
| GLProgram & | operator= (const GLProgram &other) |
| Copy‑assign, releasing current GL objects and recreating from other. | |
| void | unsetTexture1D (GLenum unit) const |
Unbind any 1D texture from texture unit unit. | |
| void | unsetTexture2D (GLenum unit) const |
Unbind any 2D texture from texture unit unit. | |
| void | unsetTexture3D (GLenum unit) const |
Unbind any 3D texture from texture unit unit. | |
| void | enable () const |
| Bind this program for subsequent draw calls (glUseProgram). | |
| void | disable () const |
| Unbind any program (glUseProgram(0)). | |
Introspection | |
| GLint | getAttributeLocation (const std::string &id) const |
| Query an attribute location by name. | |
| GLint | getUniformLocation (const std::string &id) const |
| Query a uniform location by name. | |
Uniform setters (by name) | |
Upload scalar, vector, and matrix values. | |
| void | setUniform (const std::string &id, float value) const |
| void | setUniform (const std::string &id, const Vec2 &value) const |
| void | setUniform (const std::string &id, const Vec3 &value) const |
| void | setUniform (const std::string &id, const Vec4 &value) const |
| void | setUniform (const std::string &id, int value) const |
| void | setUniform (const std::string &id, const Vec2i &value) const |
| void | setUniform (const std::string &id, const Mat4 &value, bool transpose=false) const |
Texture setters (by name) | |
| void | setTexture (const std::string &id, const GLDepthTexture &texture, GLenum unit=0) const |
| void | setTexture (const std::string &id, const GLTexture1D &texture, GLenum unit=0) const |
| void | setTexture (const std::string &id, const GLTextureCube &texture, GLenum unit=0) const |
| void | setTexture (const std::string &id, const GLTexture2D &texture, GLenum unit=0) const |
| void | setTexture (const std::string &id, const GLTexture3D &texture, GLenum unit=0) const |
Uniform setters (by location) | |
Upload scalar, vector, matrix values and arrays using a known location. | |
| void | setUniform (GLint id, float value) const |
| void | setUniform (GLint id, const Vec2 &value) const |
| void | setUniform (GLint id, const Vec3 &value) const |
| void | setUniform (GLint id, const Vec4 &value) const |
| void | setUniform (GLint id, int value) const |
| void | setUniform (GLint id, const Vec2i &value) const |
| void | setUniform (GLint id, const Vec3i &value) const |
| void | setUniform (GLint id, const Vec4i &value) const |
| void | setUniform (GLint id, const Mat4 &value, bool transpose=false) const |
| void | setUniform (GLint id, const std::vector< float > &value) const |
| void | setUniform (GLint id, const std::vector< Vec2 > &value) const |
| void | setUniform (GLint id, const std::vector< Vec3 > &value) const |
| void | setUniform (GLint id, const std::vector< Vec4 > &value) const |
| void | setUniform (GLint id, const std::vector< int > &value) const |
| void | setUniform (GLint id, const std::vector< Vec2i > &value) const |
| void | setUniform (GLint id, const std::vector< Vec3i > &value) const |
| void | setUniform (GLint id, const std::vector< Vec4i > &value) const |
| void | setUniform (GLint id, const std::vector< Mat4 > &value, bool transpose=false) const |
Texture setters (by location) | |
| void | setTexture (GLint id, const GLTexture1D &texture, GLenum unit=0) const |
| void | setTexture (GLint id, const GLDepthTexture &texture, GLenum unit=0) const |
| void | setTexture (GLint id, const GLTextureCube &texture, GLenum unit=0) const |
| void | setTexture (GLint id, const GLTexture2D &texture, GLenum unit=0) const |
| void | setTexture (GLint id, const GLTexture3D &texture, GLenum unit=0) const |
Static Public Member Functions | |
Factory helpers | |
Create a program from multiple shader sources (files or strings). | |
| static GLProgram | createFromFiles (const std::vector< std::string > &vs, const std::vector< std::string > &fs, const std::vector< std::string > &gs=std::vector< std::string >()) |
| Build from lists of filenames per stage. | |
| static GLProgram | createFromStrings (const std::vector< std::string > &vs, const std::vector< std::string > &fs, const std::vector< std::string > &gs=std::vector< std::string >()) |
| Build directly from in‑memory source strings per stage. | |
| static GLProgram | createFromFile (const std::string &vs, const std::string &fs, const std::string &gs="") |
| Convenience overload for a single file per stage. | |
| static GLProgram | createFromString (const std::string &vs, const std::string &fs, const std::string &gs="") |
| Convenience overload for a single source string per stage. | |
OpenGL shader program with helpers for creation and data binding.
| GLProgram::~GLProgram | ( | ) |
Destroy and delete owned GL shader objects and program.
| GLProgram::GLProgram | ( | const GLProgram & | other | ) |
Copy‑construct a new program with duplicated shaders and linkage.
|
static |
Convenience overload for a single file per stage.
|
static |
Build from lists of filenames per stage.
| vs | Vertex shader files (each is a full shader or snippet). |
| fs | Fragment shader files. |
| gs | Geometry shader files (optional; may contain empty strings). |
| ProgramException | on file read errors. |
|
static |
Convenience overload for a single source string per stage.
|
static |
Build directly from in‑memory source strings per stage.
| vs | Vertex shader source strings. |
| fs | Fragment shader source strings. |
| gs | Geometry shader source strings (optional; empty strings ignored). |
| void GLProgram::disable | ( | ) | const |
Unbind any program (glUseProgram(0)).
| void GLProgram::enable | ( | ) | const |
Bind this program for subsequent draw calls (glUseProgram).
| GLint GLProgram::getAttributeLocation | ( | const std::string & | id | ) | const |
Query an attribute location by name.
| id | Attribute identifier in the shader. |
| ProgramException | when the attribute cannot be located. |
| GLint GLProgram::getUniformLocation | ( | const std::string & | id | ) | const |
Query a uniform location by name.
| id | Uniform identifier in the shader. |
| ProgramException | when the uniform cannot be located. |
Copy‑assign, releasing current GL objects and recreating from other.
| void GLProgram::setTexture | ( | const std::string & | id, |
| const GLDepthTexture & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | const std::string & | id, |
| const GLTexture1D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | const std::string & | id, |
| const GLTexture2D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | const std::string & | id, |
| const GLTexture3D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | const std::string & | id, |
| const GLTextureCube & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | GLint | id, |
| const GLDepthTexture & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | GLint | id, |
| const GLTexture1D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | GLint | id, |
| const GLTexture2D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | GLint | id, |
| const GLTexture3D & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setTexture | ( | GLint | id, |
| const GLTextureCube & | texture, | ||
| GLenum | unit = 0 ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| const Mat4 & | value, | ||
| bool | transpose = false ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| const Vec2 & | value ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| const Vec2i & | value ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| const Vec3 & | value ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| const Vec4 & | value ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| float | value ) const |
| void GLProgram::setUniform | ( | const std::string & | id, |
| int | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Mat4 & | value, | ||
| bool | transpose = false ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< float > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< int > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Mat4 > & | value, | ||
| bool | transpose = false ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec2 > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec2i > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec3 > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec3i > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec4 > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const std::vector< Vec4i > & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec2 & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec2i & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec3 & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec3i & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec4 & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| const Vec4i & | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| float | value ) const |
| void GLProgram::setUniform | ( | GLint | id, |
| int | value ) const |
| void GLProgram::unsetTexture1D | ( | GLenum | unit | ) | const |
Unbind any 1D texture from texture unit unit.
| void GLProgram::unsetTexture2D | ( | GLenum | unit | ) | const |
Unbind any 2D texture from texture unit unit.
| void GLProgram::unsetTexture3D | ( | GLenum | unit | ) | const |
Unbind any 3D texture from texture unit unit.