17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-10 19:33:02 +01:00

feat(render): a geometry chunk emptied in place, the kind of its primitive told; a chunk gaining or losing its userdata gets a new buffer

Erase() empties a chunk and keeps its handle to be filled again, for geometry made anew as it changes. Primitive() tells whether a chunk holds triangles or strips, -1 from a renderer which doesn't know. The VAO bank reused the buffer of a chunk of the same length even when the userdata came or went, the layout of the buffer differing then.
This commit is contained in:
maj00r
2026-11-03 21:50:31 +01:00
parent 823807201c
commit a24118baf7
8 changed files with 88 additions and 2 deletions

View File

@@ -1758,6 +1758,11 @@ bool opengl_renderer::Append(gfx::vertex_array &Vertices, gfx::userdata_array &U
return m_geometry.append( Vertices, Userdata, Geometry );
}
void opengl_renderer::Erase( gfx::geometry_handle const &Geometry )
{
m_geometry.erase( Geometry );
}
// provides direct access to vertex data of specfied chunk
gfx::index_array const &
opengl_renderer::Indices( gfx::geometry_handle const &Geometry ) const {