Files
renderer/mesh.odin
2025-11-25 19:15:18 +01:00

37 lines
797 B
Odin

package renderer
Mesh :: struct {
amount_of_indices: u32,
backend: Mesh_Backend,
}
Mesh_Handle :: distinct u32
Buffer_Handle :: distinct u32
create_mesh :: proc(renderer: ^Renderer, vertices: []f32, indices: []u32) -> (Mesh, bool) { // TODO: SS - Should probably return a Mesh_Handle.
mesh: Mesh
if len(vertices) == 0 {
return {}, false
}
if len(indices) == 0 {
return {}, false
}
m: Mesh
m.amount_of_indices = u32(len(indices))
when RENDER_BACKEND_OPENGL {
opengl_mesh, ok := opengl_create_mesh(renderer, vertices, indices)
if !ok {
return {}, false
}
m.backend = opengl_mesh
}
else {
#assert(false)
}
return m, true
}