package render

import rb "../render_backend"

Renderer :: struct {
	backend: ^rb.Backend,
	frame:   rb.Render_Frame,
}

create :: proc(backend: ^rb.Backend) -> Renderer {
	return {backend = backend}
}

destroy :: proc(renderer: ^Renderer) {
	renderer.backend.api.destroy(renderer.backend.data)
}

begin_frame :: proc(renderer: ^Renderer) {
}

draw_triangle :: proc(renderer: ^Renderer, triangle: rb.Triangle) {
}

end_frame :: proc(renderer: ^Renderer) {
	backend := renderer.backend

	backend.api.begin_frame(backend.data)
	backend.api.draw_triangles(backend.data, renderer.frame.triangles[:])
	backend.api.end_frame(backend.data)

	clear(&renderer.frame.triangles)
}