Files
Gryphn/projects/core/src/buffers/gryphn_buffer.c
2025-07-03 13:30:47 -04:00

24 lines
1.1 KiB
C

#include "gryphn_buffer.h"
#include "output_device/gryphn_output_device.h"
#include "instance/gryphn_instance.h"
gnReturnCode gnCreateBuffer(gnBufferHandle* buffer, gnOutputDeviceHandle device, gnBufferInfo info) {
*buffer = malloc(sizeof(struct gnBuffer_t));
(*buffer)->device = device;
(*buffer)->info = info;
return device->instance->callingLayer->deviceFunctions._gnCreateBuffer(*buffer, device, info);
}
void gnBufferData(gnBufferHandle buffer, size_t dataSize, void* data) {
buffer->device->instance->callingLayer->deviceFunctions._gnBufferData(buffer, dataSize, data);
}
void gnBufferSubData(gnBufferHandle buffer, size_t offset, size_t dataSize, gnBufferMemory data) {
buffer->device->instance->callingLayer->deviceFunctions._gnBufferSubData(buffer, offset, dataSize, data);
}
void* gnMapBuffer(gnBufferHandle buffer) {
if (buffer->info.usage == GN_STATIC_DRAW) return NULL;
return buffer->device->instance->callingLayer->deviceFunctions._gnMapBuffer(buffer);
}
void gnDestroyBuffer(gnBufferHandle buffer) {
buffer->device->instance->callingLayer->deviceFunctions._gnDestroyBuffer(buffer);
}