remove indirection in vertex builder
This commit is contained in:
@ -218,29 +218,18 @@ VertexBufferBuilder build_vertex_buffer(VertexBuffer buffer, size_t bytes) {
|
||||
CRY("build_vertex_buffer", "Error mapping a vertex array buffer");
|
||||
|
||||
return (VertexBufferBuilder) {
|
||||
.mapping = mapping,
|
||||
.bytes_left = bytes,
|
||||
.base = mapping,
|
||||
.size = bytes,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
bool push_to_vertex_buffer_builder(VertexBufferBuilder *builder,
|
||||
void const *bytes, size_t size) {
|
||||
if (builder->bytes_left == 0)
|
||||
return false;
|
||||
void finish_vertex_builder(VertexBufferBuilder *builder) {
|
||||
glUnmapBuffer(GL_ARRAY_BUFFER);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
||||
memcpy(builder->mapping, bytes, size);
|
||||
builder->bytes_left -= size;
|
||||
|
||||
/* trigger data send */
|
||||
if (builder->bytes_left == 0) {
|
||||
glUnmapBuffer(GL_ARRAY_BUFFER);
|
||||
return false;
|
||||
}
|
||||
|
||||
builder->mapping = (void *)((uintptr_t)builder->mapping + size);
|
||||
|
||||
return true;
|
||||
builder->base = 0;
|
||||
builder->size = 0;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user