LDKRHIBuffer
typedef LDKRHIResource LDKRHIBuffer;
typedef LDKRHIResource LDKRHIBuffer;
typedef struct LDKRHIBufferDesc{
uint32_t size;
uint32_t usage;
LDKRHIMemoryUsage memory_usage;
const void *initial_data;
LDKRHIBufferStatsClass stats_class;
}LDKRHIBufferDesc;
Optional diagnostic classification for per-frame buffer upload statistics.
typedef enum LDKRHIBufferStatsClass{
LDK_RHI_BUFFER_STATS_AUTO=0,
LDK_RHI_BUFFER_STATS_UNIFORM,
LDK_RHI_BUFFER_STATS_VERTEX,
LDK_RHI_BUFFER_STATS_INDEX,
LDK_RHI_BUFFER_STATS_INSTANCE,
LDK_RHI_BUFFER_STATS_OTHER
}LDKRHIBufferStatsClass;
typedef enum LDKRHIBufferUsage{
LDK_RHI_BUFFER_USAGE_NONE=0,
LDK_RHI_BUFFER_USAGE_VERTEX=1<<0,
LDK_RHI_BUFFER_USAGE_INDEX=1<<1,
LDK_RHI_BUFFER_USAGE_UNIFORM=1<<2,
LDK_RHI_BUFFER_USAGE_STORAGE=1<<3,
LDK_RHI_BUFFER_USAGE_TRANSFER_SRC=1<<4,
LDK_RHI_BUFFER_USAGE_TRANSFER_DST=1<<5
}LDKRHIBufferUsage;
typedef struct LDKRHIVertexBufferLayoutDesc{
uint32_t stride;
uint32_t attribute_count;
LDKRHIVertexAttributeDesc attributes[LDK_RHI_VERTEX_ATTRIBUTE_MAX];
LDKRHIVertexInputRate input_rate;
}LDKRHIVertexBufferLayoutDesc;
Creates a GPU buffer.
LDK_API LDKRHIBuffer ldk_rhi_buffer_create(
LDKRHIContext *context,
const LDKRHIBufferDesc *desc
);
LDKRHIContext *contextconst LDKRHIBufferDesc *descA valid buffer handle on success, or an invalid handle on failure.
Initializes a buffer descriptor with default values.
LDK_API void ldk_rhi_buffer_desc_defaults(LDKRHIBufferDesc *desc);
LDKRHIBufferDesc *descDestroys a GPU buffer.
LDK_API void ldk_rhi_buffer_destroy(
LDKRHIContext *context,
LDKRHIBuffer buffer
);
LDKRHIContext *contextLDKRHIBuffer bufferUpdates a region of a buffer.
LDK_API bool ldk_rhi_buffer_update(
LDKRHIContext *context,
LDKRHIBuffer buffer,
uint32_t offset,
uint32_t size,
const void *data
);
LDKRHIContext *contextLDKRHIBuffer bufferuint32_t offsetuint32_t sizeconst void *datatrue if the update succeeded, false otherwise.
Checks if a buffer handle is valid.
LDK_API bool ldk_rhi_is_valid_buffer(LDKRHIBuffer buffer);
LDKRHIBuffer buffertrue if valid, false otherwise.
Validates a buffer descriptor.
LDK_API bool ldk_rhi_is_valid_buffer_desc(const LDKRHIBufferDesc *desc);
const LDKRHIBufferDesc *desctrue if valid, false otherwise.