nCine::RHI::D3D11::D3D11ShaderUniforms class

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

Owns a D3D11UniformCache 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 managed set can be restricted to an include-only or exclude list of null-separated names.

Public types

using UniformHashMapType = std::vector<D3D11UniformCache>

Constructors, destructors, conversion operators

D3D11ShaderUniforms()
D3D11ShaderUniforms(D3D11ShaderProgram* shaderProgram) explicit
D3D11ShaderUniforms(D3D11ShaderProgram* shaderProgram, const char* includeOnly, const char* exclude)

Public functions

void SetProgram(D3D11ShaderProgram* shaderProgram)
void SetProgram(D3D11ShaderProgram* 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) -> D3D11UniformCache*
auto GetAllUniforms() const -> const UniformHashMapType&
Returns the container of all managed uniform caches (range-iterates as D3D11UniformCache&).
void MarkDirty()
void CommitUniforms()