taisei/src/renderer/gl33/vertex_buffer.c
2024-05-17 14:11:48 +02:00

46 lines
1.5 KiB
C

/*
* This software is licensed under the terms of the MIT License.
* See COPYING for further information.
* ---
* Copyright (c) 2011-2024, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2024, Andrei Alexeyev <akari@taisei-project.org>.
*/
#include "vertex_buffer.h"
#include "../glcommon/debug.h"
#include "gl33.h"
VertexBuffer* gl33_vertex_buffer_create(size_t capacity, void *data) {
VertexBuffer *vbuf = (VertexBuffer*)gl33_buffer_create(GL33_BUFFER_BINDING_ARRAY, sizeof(VertexBuffer));
gl33_buffer_init(&vbuf->cbuf, capacity, data, GL_STATIC_DRAW);
snprintf(vbuf->cbuf.debug_label, sizeof(vbuf->cbuf.debug_label), "VBO #%i", vbuf->cbuf.gl_handle);
log_debug("Created VBO %u with %zukb of storage", vbuf->cbuf.gl_handle, vbuf->cbuf.size / 1024);
return vbuf;
}
void gl33_vertex_buffer_destroy(VertexBuffer *vbuf) {
log_debug("Deleted VBO %u with %zukb of storage", vbuf->cbuf.gl_handle, vbuf->cbuf.size / 1024);
gl33_buffer_destroy(&vbuf->cbuf);
}
void gl33_vertex_buffer_invalidate(VertexBuffer *vbuf) {
gl33_buffer_invalidate(&vbuf->cbuf);
}
const char* gl33_vertex_buffer_get_debug_label(VertexBuffer *vbuf) {
return vbuf->cbuf.debug_label;
}
void gl33_vertex_buffer_set_debug_label(VertexBuffer *vbuf, const char *label) {
glcommon_set_debug_label(vbuf->cbuf.debug_label, "VBO", GL_BUFFER, vbuf->cbuf.gl_handle, label);
}
void gl33_vertex_buffer_flush(VertexBuffer *vbuf) {
gl33_buffer_flush(&vbuf->cbuf);
}
SDL_RWops* gl33_vertex_buffer_get_stream(VertexBuffer *vbuf) {
return gl33_buffer_get_stream(&vbuf->cbuf);
}