nCine::RHI::Software::SwShaderUniforms class

Manages the loose-uniform caches of a program (aliased as RHI::ShaderUniforms).

Owns a SwUniformCache for every active uniform of a program that is not part of a block, distributes a shared host data buffer across them, and on CommitUniforms() publishes every dirty value to the program (the software analogue of uploading uniforms). The managed set can be restricted to an include-only or exclude list of null-separated names.

Public types

using UniformHashMapType = std::vector<SwUniformCache>

Constructors, destructors, conversion operators

SwShaderUniforms()
SwShaderUniforms(SwShaderProgram* shaderProgram) explicit
SwShaderUniforms(SwShaderProgram* shaderProgram, const char* includeOnly, const char* exclude)

Public functions

void SetProgram(SwShaderProgram* shaderProgram)
void SetProgram(SwShaderProgram* shaderProgram, const char* includeOnly, const char* exclude)
void SetUniformsDataPointer(std::uint8_t* dataPointer)
void SetDirty(bool isDirty)
auto GetUniformCount() const -> std::uint32_t
auto HasUniform(const char* name) const -> bool
auto GetUniform(const char* name) -> SwUniformCache*
auto GetAllUniforms() const -> const UniformHashMapType&
Returns the container of all managed uniform caches (range-iterates as SwUniformCache&).
void MarkDirty()
void CommitUniforms()