GPUVertBuf: GL Backend Isolation

Part of the Vulkan port T68990

This makes a few changes in how the data is being handled by the
backend to allow more flexibility in the future.

The overall code logic is left unchanged.
This commit is contained in:
2020-09-07 01:20:55 +02:00
parent bb2aeb4504
commit c38debd39f
7 changed files with 224 additions and 167 deletions

View File

@@ -122,7 +122,7 @@ void GLVertArray::update_bindings(const GLuint vao,
for (int v = GPU_BATCH_VBO_MAX_LEN - 1; v > -1; v--) {
GLVertBuf *vbo = batch->verts_(v);
if (vbo) {
GPU_vertbuf_use(batch->verts[v]);
vbo->bind();
attr_mask &= ~vbo_bind(interface, &vbo->format, 0, vbo->vertex_len, false);
}
}
@@ -130,7 +130,7 @@ void GLVertArray::update_bindings(const GLuint vao,
for (int v = GPU_BATCH_INST_VBO_MAX_LEN - 1; v > -1; v--) {
GLVertBuf *vbo = batch->inst_(v);
if (vbo) {
GPU_vertbuf_use(batch->inst[v]);
vbo->bind();
attr_mask &= ~vbo_bind(interface, &vbo->format, base_instance, vbo->vertex_len, true);
}
}