nCine::RHI::Vulkan::VulkanShaderUniforms class

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

Owns a VulkanUniformCache 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<VulkanUniformCache>

Constructors, destructors, conversion operators

VulkanShaderUniforms()
VulkanShaderUniforms(VulkanShaderProgram* shaderProgram) explicit
VulkanShaderUniforms(VulkanShaderProgram* shaderProgram, const char* includeOnly, const char* exclude)

Public functions

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