|
| OpenGLShaderProgram (const OpenGLContext &) noexcept |
| Creates a shader for use in a particular GL context. More...
|
|
| ~OpenGLShaderProgram () noexcept |
| Destructor. More...
|
|
bool | addFragmentShader (const String &shaderSourceCode) |
| Compiles and adds a fragment shader to this program. More...
|
|
bool | addShader (const String &shaderSourceCode, GLenum shaderType) |
| Compiles and adds a shader to this program. More...
|
|
bool | addVertexShader (const String &shaderSourceCode) |
| Compiles and adds a fragment shader to this program. More...
|
|
const String & | getLastError () const noexcept |
| Get the output for the last shader compilation or link that failed. More...
|
|
GLuint | getProgramID () const noexcept |
| The ID number of the compiled program. More...
|
|
GLint | getUniformIDFromName (const char *uniformName) const noexcept |
| Get the uniform ID from the variable name. More...
|
|
bool | link () noexcept |
| Links all the compiled shaders into a usable program. More...
|
|
void | release () noexcept |
| Deletes the program. More...
|
|
void | setUniform (const char *uniformName, const GLfloat *values, GLsizei numValues) noexcept |
| Sets a vector float uniform. More...
|
|
void | setUniform (const char *uniformName, GLfloat value) noexcept |
| Sets a float uniform. More...
|
|
void | setUniform (const char *uniformName, GLfloat x, GLfloat y) noexcept |
| Sets a vec2 uniform. More...
|
|
void | setUniform (const char *uniformName, GLfloat x, GLfloat y, GLfloat z) noexcept |
| Sets a vec3 uniform. More...
|
|
void | setUniform (const char *uniformName, GLfloat x, GLfloat y, GLfloat z, GLfloat w) noexcept |
| Sets a vec4 uniform. More...
|
|
void | setUniform (const char *uniformName, GLint value) noexcept |
| Sets an int uniform. More...
|
|
void | setUniform (const char *uniformName, GLint x, GLint y, GLint z, GLint w) noexcept |
| Sets a vec4 uniform. More...
|
|
void | setUniformMat2 (const char *uniformName, const GLfloat *values, GLint count, GLboolean transpose) noexcept |
| Sets a 2x2 matrix float uniform. More...
|
|
void | setUniformMat3 (const char *uniformName, const GLfloat *values, GLint count, GLboolean transpose) noexcept |
| Sets a 3x3 matrix float uniform. More...
|
|
void | setUniformMat4 (const char *uniformName, const GLfloat *values, GLint count, GLboolean transpose) noexcept |
| Sets a 4x4 matrix float uniform. More...
|
|
void | use () const noexcept |
| Selects this program into the current context. More...
|
|
Manages an OpenGL shader program.
@tags{OpenGL}
bool juce::OpenGLShaderProgram::addShader |
( |
const String & |
shaderSourceCode, |
|
|
GLenum |
shaderType |
|
) |
| |
Compiles and adds a shader to this program.
After adding all your shaders, remember to call link() to link them into a usable program.
If your app is built in debug mode, this method will assert if the program fails to compile correctly.
The shaderType parameter could be GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, etc.
- Returns
- true if the shader compiled successfully. If not, you can call getLastError() to find out what happened.