cubos::engine::ShaderBuilder class final

Configures compile-time shader parameters using #define macros.

Constructors, destructors, conversion operators

ShaderBuilder(cubos::core::gl::RenderDevice& renderDevice, const cubos::core::gl::Stage stage, std::string contents)
Creates a shader builder.

Public functions

auto with(const std::string& defineName) -> ShaderBuilder&
Defines a parameter with no value.
auto with(const std::string& defineName, const std::string& defineValue) -> ShaderBuilder&
Defines a parameter with a value.
auto build() const -> cubos::core::gl::ShaderStage
Compiles a shader from the source code stored in the builder.

Function documentation

cubos::engine::ShaderBuilder::ShaderBuilder(cubos::core::gl::RenderDevice& renderDevice, const cubos::core::gl::Stage stage, std::string contents)

Creates a shader builder.

Parameters
renderDevice Render device used to create the shader.
stage Shader stage to create.
contents Shader source code.

ShaderBuilder& cubos::engine::ShaderBuilder::with(const std::string& defineName)

Defines a parameter with no value.

Parameters
defineName Parameter name to define.
Returns This shader builder (for chaining calls).

ShaderBuilder& cubos::engine::ShaderBuilder::with(const std::string& defineName, const std::string& defineValue)

Defines a parameter with a value.

Parameters
defineName Parameter name to define.
defineValue Parameter value.
Returns This shader builder (for chaining calls).

cubos::core::gl::ShaderStage cubos::engine::ShaderBuilder::build() const

Compiles a shader from the source code stored in the builder.

Returns Shader stage.