Force bind buffers at vertex array cache update

This commit is contained in:
korenkonder
2023-12-20 12:29:51 +03:00
parent 06337c0bef
commit 6eb44568ac
+18 -18
View File
@@ -319,22 +319,22 @@ namespace mdl {
glGenVertexArrays(1, &vertex_array->vertex_array);
gl_state_bind_vertex_array(vertex_array->vertex_array);
glVertexAttrib4f(POSITION_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(BONE_WEIGHT_INDEX, 0.0f, 0.0f, 0.0f, 0.0f);
glVertexAttrib4f(NORMAL_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(COLOR0_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f(COLOR1_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f(MORPH_COLOR_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f(TANGENT_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(UNKNOWN_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(TEXCOORD0_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(TEXCOORD1_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(MORPH_POSITION_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(MORPH_NORMAL_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(MORPH_TANGENT_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( POSITION_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( BONE_WEIGHT_INDEX, 0.0f, 0.0f, 0.0f, 0.0f);
glVertexAttrib4f( NORMAL_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( COLOR0_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f( COLOR1_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f( MORPH_COLOR_INDEX, 1.0f, 1.0f, 1.0f, 1.0f);
glVertexAttrib4f( TANGENT_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( UNKNOWN_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( TEXCOORD0_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( TEXCOORD1_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( MORPH_POSITION_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( MORPH_NORMAL_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f( MORPH_TANGENT_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(MORPH_TEXCOORD0_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(MORPH_TEXCOORD1_INDEX, 0.0f, 0.0f, 0.0f, 1.0f);
glVertexAttrib4f(BONE_INDEX_INDEX, 0.0f, 0.0f, 0.0f, 0.0f);
glVertexAttrib4f( BONE_INDEX_INDEX, 0.0f, 0.0f, 0.0f, 0.0f);
}
vertex_array->vertex_buffer = vertex_buffer;
@@ -348,7 +348,7 @@ namespace mdl {
vertex_attrib_buffer_binding, sizeof(vertex_attrib_buffer_binding));
gl_state_bind_vertex_array(vertex_array->vertex_array);
gl_state_bind_array_buffer(vertex_buffer);
gl_state_bind_array_buffer(vertex_buffer, true);
if (index_buffer)
gl_state_bind_element_array_buffer(index_buffer, true);
@@ -496,7 +496,7 @@ namespace mdl {
}
if (morph_vertex_buffer) {
gl_state_bind_array_buffer(morph_vertex_buffer);
gl_state_bind_array_buffer(morph_vertex_buffer, true);
size_t offset = 0;
if (vertex_format & OBJ_VERTEX_POSITION) {
@@ -1135,7 +1135,7 @@ namespace mdl {
if (etc_vertex_array->vertex_buffer.IsNull())
etc_vertex_array->vertex_buffer.Create(sizeof(float_t) * vtx_data.size());
etc_vertex_array->vertex_buffer.Bind();
etc_vertex_array->vertex_buffer.Bind(true);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float_t)
* vtx_data.size(), vtx_data.data());
@@ -1143,7 +1143,7 @@ namespace mdl {
if (etc_vertex_array->index_buffer.IsNull())
etc_vertex_array->index_buffer.Create(sizeof(uint32_t) * vtx_indices.size());
etc_vertex_array->index_buffer.Bind();
etc_vertex_array->index_buffer.Bind(true);
glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, sizeof(uint32_t)
* vtx_indices.size(), vtx_indices.data());
}