Skip to content

finite_render_create_generic_buffer

The finite_render_create_generic_buffer function creates a Vulkan buffer with associated memory and optionally separates vertex and index data.

bool finite_render_create_generic_buffer(FiniteRender *render, FiniteRenderBufferInfo *info, FiniteRenderMemAllocInfo *mem_info, uint64_t vertexSize, FiniteRenderReturnBuffer *rtrn)
TypeDescription
FiniteRender *renderThe FiniteRender object associated with the Vulkan device.
FiniteRenderBufferInfo *infoBuffer creation info struct.
FiniteRenderMemAllocInfo *mem_infoMemory allocation info struct for selecting memory type and flags.
uint64_t vertexSizeSize in bytes of the vertex portion of the buffer.
FiniteRenderReturnBuffer *rtrnPointer to a struct that receives the created buffer, memory, and vertex/index offsets.
FiniteRenderReturnBuffer buf;
FiniteRenderBufferInfo bufferInfo = {
.next = NULL,
.flags = 0,
.size = 1024,
.useFlags = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
.sharing = VK_SHARING_MODE_EXCLUSIVE,
._fIndex = 0,
.fIndex = NULL
};
FiniteRenderMemAllocInfo memInfo = {
.next = NULL,
.flags = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
};
bool result = finite_render_create_generic_buffer(myRender, &bufferInfo, &memInfo, 512, &buf);

This function must have valid FiniteRender, FiniteRenderBufferInfo, and FiniteRenderMemAllocInfo structs.

vertexSize must be smaller than or equal to info->size. The remaining portion is considered index data.