Skip to content

finite_render_write_to_descriptor

Writes one or more descriptors to a Vulkan descriptor set. Depending on the FiniteRenderDescriptorInfo type, it can update buffer or image descriptors.

bool finite_render_write_to_descriptor( FiniteRender *render, FiniteRenderWriteSetInfo **info, FiniteRenderDescriptorInfo *desc_info, uint32_t _infos);
TypeDescription
FiniteRender *renderThe render context containing Vulkan device handles.
FiniteRenderWriteSetInfo **infoArray of descriptor write information structures.
FiniteRenderDescriptorInfo *desc_infoOptional descriptor info containing buffer or image data to write.
uint32_t _infosThe number of elements in the info array.
FiniteRenderBufferInfo buffer_info = {
.size = 1024,
.useFlags = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
.sharing = VK_SHARING_MODE_EXCLUSIVE,
._fIndex = 1,
.fIndex = (uint32_t[]){0}
};
FiniteRenderMemAllocInfo mem_info = {
.flags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
};
FiniteRenderReturnBuffer ubo;
finite_render_create_generic_buffer(
render,
&buffer_info,
&mem_info,
sizeof(float) * 16, // example size
&ubo
);
FiniteRenderDescriptorInfo desc_info = {
.type = FINITE_DESCRIPTOR_BUFFER,
.buffer = ubo.buf,
.buffer_offset = 0,
.buffer_range = buffer_info.size
};
FiniteRenderWriteSetInfo write_info = {
.dstSet = render->myDescriptorSet,
.dstBinding = 0,
.dstArrayElement = 0,
.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
._descriptors = 1,
.bufferInfo = NULL,
.imageInfo = NULL,
.texelBufferView = NULL,
.next = NULL
};
FiniteRenderWriteSetInfo *infos[] = { &write_info };
finite_render_write_to_descriptor(render, infos, &desc_info, 1);