UgUniformBuffer
Uniform buffer with descriptor set management
It
Uniform buffer with its descriptor set and mapped CPU pointer
struct It {
UgBuffer.It buffer;
VkDescriptorSetLayout setLayout;
U0* mappedData;
U32 binding;
U32 size;
VkDescriptorSet descriptorSet;
U32 cursor;
};create
Create a uniform buffer and allocate its descriptor set
UgUniformBuffer.It create(UgContext.It& ctx, U32 binding, U32 size);Parameters
ctx— Vulkan contextbinding— Descriptor binding indexsize— Size of the uniform buffer in bytes
Returns — Initialized uniform buffer
bind
Bind the uniform buffer's descriptor set to the command buffer
U0 bind(UgUniformBuffer.It& uniformBuffer, VkCommandBuffer cmdBuffer, VkPipelineLayout pipelineLayout);Parameters
uniformBuffer— Uniform buffer to bindcmdBuffer— Active command bufferpipelineLayout— Pipeline layout the descriptor set is compatible with
destroy
Destroy the uniform buffer and release its descriptor set
U0 destroy(UgContext.It& ctx, UgUniformBuffer.It& uniformBuffer);Parameters
ctx— Vulkan contextuniformBuffer— Uniform buffer to destroy
reset
Reset the write cursor back to the beginning of the buffer
U0 reset(UgUniformBuffer.It& uniformBuffer);Parameters
uniformBuffer— Uniform buffer to reset
setFloat
Write a float value at the current cursor position
U0 setFloat(UgUniformBuffer.It& buffer, F32 value);Parameters
buffer— Uniform buffer to write intovalue— Float value to write
setVec2f
Write a 2-component float vector at the current cursor position
U0 setVec2f(UgUniformBuffer.It& buffer, VectorF.It vec);Parameters
buffer— Uniform buffer to write intovec— Vector to write
setVec3f
Write a 3-component float vector at the current cursor position
U0 setVec3f(UgUniformBuffer.It& buffer, VectorF.It vec);Parameters
buffer— Uniform buffer to write intovec— Vector to write
setVec4f
Write a 4-component float vector at the current cursor position
U0 setVec4f(UgUniformBuffer.It& buffer, VectorF.It vec);Parameters
buffer— Uniform buffer to write intovec— Vector to write
setMat
Write a 4×4 matrix at the current cursor position
U0 setMat(UgUniformBuffer.It& buffer, Matrix.It mat);Parameters
buffer— Uniform buffer to write intomat— Matrix to write