StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Renderer::ComputeShader Class Reference
Inheritance diagram for StevEngine::Renderer::ComputeShader:
StevEngine::Renderer::ShaderProgram

Public Member Functions

 ComputeShader (const char *source)
 Create compute shader program , with a single shader from source.
 
 ComputeShader (const std::vector< Shader > &shaders)
 Create compute shader program.
 
 ComputeShader (Utilities::Stream &stream)
 Create from serialized data.
 
void Run (const Visuals::ComputeTexture &output) const
 Run the compute shader.
 
void Run (const Visuals::ComputeTexture &output, uint32_t groupsX, uint32_t groupsY, uint32_t groupsZ=1) const
 Run the compute shader.
 
void Run (uint32_t groupsX, uint32_t groupsY, uint32_t groupsZ=1) const
 Run the compute shader.
 
- Public Member Functions inherited from StevEngine::Renderer::ShaderProgram
 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.
 

Additional Inherited Members

- Protected Attributes inherited from StevEngine::Renderer::ShaderProgram
uint32_t location
 OpenGL program ID.
 
ShaderType shaderType
 Type of shaders in program.
 
bool modified
 Whether program needs relinking.
 
std::map< uint32_t, Shadershaders
 Shaders by OpenGL ID.
 

Constructor & Destructor Documentation

◆ ComputeShader() [1/3]

StevEngine::Renderer::ComputeShader::ComputeShader ( const char * source)

Create compute shader program , with a single shader from source.

Parameters
sourceSource for the default shader to create

◆ ComputeShader() [2/3]

StevEngine::Renderer::ComputeShader::ComputeShader ( const std::vector< Shader > & shaders)
inline

Create compute shader program.

Parameters
shadersVector of shaders to initialize program with.

◆ ComputeShader() [3/3]

StevEngine::Renderer::ComputeShader::ComputeShader ( Utilities::Stream & stream)
inline

Create from serialized data.

Parameters
streamStream containing serialized component data

Member Function Documentation

◆ Run() [1/3]

void StevEngine::Renderer::ComputeShader::Run ( const Visuals::ComputeTexture & output) const
inline

Run the compute shader.

Group size is a single pixel of the output texture;

Parameters
outputCompute texture to save output of shader to

◆ Run() [2/3]

void StevEngine::Renderer::ComputeShader::Run ( const Visuals::ComputeTexture & output,
uint32_t groupsX,
uint32_t groupsY,
uint32_t groupsZ = 1 ) const

Run the compute shader.

Parameters
outputCompute texture to save output of shader to
groupsXNumber of groups to use on the X-axis
groupsYNumber of groups to use on the Y-axis
groupsZNumber of groups to use on the Z-axis

◆ Run() [3/3]

void StevEngine::Renderer::ComputeShader::Run ( uint32_t groupsX,
uint32_t groupsY,
uint32_t groupsZ = 1 ) const

Run the compute shader.

Parameters
groupsXNumber of groups to use on the X-axis
groupsYNumber of groups to use on the Y-axis
groupsZNumber of groups to use on the Z-axis

The documentation for this class was generated from the following files: