Compiled and linked shader program.
More...
#include <visuals/shaders/ShaderProgram.hpp>
|
| ShaderProgram (ShaderType shaderType, bool useDefaultShaders=true) |
| Create shader program.
|
|
| ShaderProgram (const std::vector< Shader > &shaders, bool useDefaultShaders=true) |
| Create shader program.
|
|
| ShaderProgram (Utilities::Stream &stream) |
| Create from serialized data.
|
|
| ShaderProgram () |
| Create empty program.
|
|
uint32_t | AddShader (Shader shader) |
| Add shader stage to program.
|
|
void | RemoveShader (uint32_t location) |
| Remove shader from program.
|
|
void | RelinkProgram () |
| Relink program after shader changes.
|
|
void | DeleteProgram () |
| Deletes program and all shaders from OpenGL.
|
|
void | SetShaderUniform (const char *name, Utilities::Matrix4 value) const |
| Set matrix uniform.
|
|
void | SetShaderUniform (const char *name, Utilities::Color value) const |
| Set color uniform.
|
|
void | SetShaderUniform (const char *name, Utilities::Vector3 value) const |
| Set vector3 uniform.
|
|
void | SetShaderUniform (const char *name, Utilities::Vector2 value) const |
| Set vector2 uniform.
|
|
void | SetShaderUniform (const char *name, bool value) const |
| Set boolean uniform.
|
|
void | SetShaderUniform (const char *name, int32_t value) const |
| Set integer uniform.
|
|
void | SetShaderUniform (const char *name, uint32_t value) const |
| Set unsigned integer uniform.
|
|
void | SetShaderUniform (const char *name, float value) const |
| Set float uniform.
|
|
void | SetShaderUniform (const char *name, double value) const |
| Set double uniform.
|
|
uint32_t | GetLocation () const |
| Get OpenGL program ID.
|
|
bool | IsModified () const |
| Check if program needs relinking.
|
|
ShaderType | GetType () const |
| Get program shader type.
|
|
Utilities::Stream | Export (Utilities::StreamType type) const |
| Serialize shader program to a stream.
|
|
|
uint32_t | location |
| OpenGL program ID.
|
|
ShaderType | shaderType |
| Type of shaders in program.
|
|
bool | modified |
| Whether program needs relinking.
|
|
std::map< uint32_t, Shader > | shaders |
| Shaders by OpenGL ID.
|
|
Compiled and linked shader program.
Manages multiple shader stages combined into a complete program. Handles uniform updates and shader program state.
◆ ShaderProgram() [1/3]
StevEngine::Renderer::ShaderProgram::ShaderProgram |
( |
ShaderType | shaderType, |
|
|
bool | useDefaultShaders = true ) |
Create shader program.
- Parameters
-
shaderType | Type of shaders in program |
useDefaultShaders | Add default engine shaders to program |
◆ ShaderProgram() [2/3]
StevEngine::Renderer::ShaderProgram::ShaderProgram |
( |
const std::vector< Shader > & | shaders, |
|
|
bool | useDefaultShaders = true ) |
Create shader program.
The shader type will be inferred from the first shader in vector, any shader of different type will be ignored.
- Parameters
-
shaders | Vector of shaders to initialize program with. |
useDefaultShaders | Add default engine shaders to program |
◆ ShaderProgram() [3/3]
Create from serialized data.
- Parameters
-
stream | Stream containing serialized component data |
◆ AddShader()
uint32_t StevEngine::Renderer::ShaderProgram::AddShader |
( |
Shader | shader | ) |
|
Add shader stage to program.
- Parameters
-
- Returns
- OpenGL shader ID
◆ Export()
Utilities::Stream StevEngine::Renderer::ShaderProgram::Export |
( |
Utilities::StreamType | type | ) |
const |
Serialize shader program to a stream.
- Parameters
-
type | Type of stream to export to |
- Returns
- Serialized stream
◆ GetLocation()
uint32_t StevEngine::Renderer::ShaderProgram::GetLocation |
( |
| ) |
const |
|
inline |
Get OpenGL program ID.
- Returns
- Program location in OpenGL
◆ GetType()
ShaderType StevEngine::Renderer::ShaderProgram::GetType |
( |
| ) |
const |
|
inline |
Get program shader type.
- Returns
- Type of shaders in program
◆ IsModified()
bool StevEngine::Renderer::ShaderProgram::IsModified |
( |
| ) |
const |
|
inline |
Check if program needs relinking.
- Returns
- true if shaders were modified
◆ RemoveShader()
void StevEngine::Renderer::ShaderProgram::RemoveShader |
( |
uint32_t | location | ) |
|
Remove shader from program.
- Parameters
-
location | OpenGL shader ID to remove |
◆ SetShaderUniform() [1/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
bool | value ) const |
Set boolean uniform.
- Parameters
-
name | Uniform name in shader |
value | Boolean value |
◆ SetShaderUniform() [2/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
double | value ) const |
Set double uniform.
- Parameters
-
name | Uniform name in shader |
value | Double value |
◆ SetShaderUniform() [3/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
float | value ) const |
Set float uniform.
- Parameters
-
name | Uniform name in shader |
value | Float value |
◆ SetShaderUniform() [4/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
int32_t | value ) const |
Set integer uniform.
- Parameters
-
name | Uniform name in shader |
value | Integer value |
◆ SetShaderUniform() [5/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
uint32_t | value ) const |
Set unsigned integer uniform.
- Parameters
-
name | Uniform name in shader |
value | Unsigned integer value |
◆ SetShaderUniform() [6/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
Utilities::Color | value ) const |
Set color uniform.
- Parameters
-
name | Uniform name in shader |
value | Color value |
◆ SetShaderUniform() [7/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
Utilities::Matrix4 | value ) const |
Set matrix uniform.
- Parameters
-
name | Uniform name in shader |
value | Matrix value |
◆ SetShaderUniform() [8/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
Utilities::Vector2 | value ) const |
Set vector2 uniform.
- Parameters
-
name | Uniform name in shader |
value | Vector value |
◆ SetShaderUniform() [9/9]
void StevEngine::Renderer::ShaderProgram::SetShaderUniform |
( |
const char * | name, |
|
|
Utilities::Vector3 | value ) const |
Set vector3 uniform.
- Parameters
-
name | Uniform name in shader |
value | Vector value |
The documentation for this class was generated from the following files: