Small simplification of access to GL Buffers
This commit is contained in:
+5
-24
@@ -81,36 +81,17 @@ HOOK(void, FASTCALL, rob_chara_age_age_object__disp, 0x0000000140541D50,
|
||||
|
||||
rob_age_age_obj->obj_vert_buf.cycle_index();
|
||||
|
||||
GLuint buffer = rob_age_age_obj->obj_vert_buf.get_buffer();
|
||||
size_t vtx_data;
|
||||
if (GL_VERSION_4_5) {
|
||||
vtx_data = (size_t)glMapNamedBuffer(buffer, GL_WRITE_ONLY);
|
||||
if (!vtx_data) {
|
||||
glUnmapNamedBuffer(buffer);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
gl_state_bind_array_buffer(buffer);
|
||||
vtx_data = (size_t)glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
|
||||
if (!vtx_data) {
|
||||
glUnmapBuffer(GL_ARRAY_BUFFER);
|
||||
gl_state_bind_array_buffer(0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
GLArrayBuffer buffer = rob_age_age_obj->obj_vert_buf.get_buffer();
|
||||
size_t vtx_data = (size_t)buffer.MapMemory();
|
||||
if (!vtx_data)
|
||||
return;
|
||||
|
||||
size_t vertex_array_size = rob_age_age_obj->vertex_array_size;
|
||||
for (int32_t i = 0; i < disp_count; i++)
|
||||
memmove((void*)(vtx_data + vertex_array_size * i),
|
||||
(void*)((size_t)rob_age_age_obj->vertex_data + vertex_array_size * v44[i].second), vertex_array_size);
|
||||
|
||||
if (GL_VERSION_4_5)
|
||||
glUnmapNamedBuffer(buffer);
|
||||
else {
|
||||
glUnmapBuffer(GL_ARRAY_BUFFER);
|
||||
gl_state_bind_array_buffer(0);
|
||||
}
|
||||
buffer.UnmapMemory();
|
||||
|
||||
rob_age_age_obj->mesh.num_vertex = disp_count * rob_age_age_obj->num_vertex;
|
||||
rob_age_age_obj->sub_mesh.num_index = disp_count * rob_age_age_obj->num_index;
|
||||
|
||||
Reference in New Issue
Block a user