Successfully rendered a quad!
This commit is contained in:
@@ -65,17 +65,32 @@ set_viewport :: proc(renderer: ^Renderer, x, y, width, height: u16) {
|
||||
}
|
||||
}
|
||||
|
||||
@(private="file") clear_screen :: proc(renderer: ^Renderer) { // TODO: SS - Add options here to say if you want to clear depth or not, for example.
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
opengl_clear_screen(renderer)
|
||||
}
|
||||
}
|
||||
|
||||
render_frame :: proc(renderer: ^Renderer) {
|
||||
pipeline := &renderer.pipeline
|
||||
for i in 0 ..< pipeline.amount_of_passes {
|
||||
pass := pipeline.passes[i]
|
||||
|
||||
// TODO: SS - "Activate" the pass.
|
||||
set_clear_color(renderer, pass.clear_color)
|
||||
clear_screen(renderer)
|
||||
|
||||
// TODO: SS - Loop over the pass' render-commands.
|
||||
for i in 0..<pass.draw_command_count {
|
||||
command := &pass.draw_commands[i]
|
||||
|
||||
activate_material(&command.material)
|
||||
|
||||
draw_mesh(&command.mesh)
|
||||
}
|
||||
|
||||
// TODO: SS - "Deactivate" the pass.
|
||||
|
||||
// Clear the pass' draw-commands.
|
||||
pass.draw_command_count = 0
|
||||
}
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
@@ -90,4 +105,20 @@ destroy :: proc(renderer: ^Renderer) {
|
||||
|
||||
assert(renderer != nil)
|
||||
free(renderer)
|
||||
}
|
||||
|
||||
@(private) activate_material :: proc(material: ^Material) {
|
||||
assert(material != nil)
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
opengl_activate_material(material)
|
||||
}
|
||||
}
|
||||
|
||||
@(private) draw_mesh :: proc(mesh: ^Mesh) {
|
||||
assert(mesh != nil)
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
opengl_draw_mesh(mesh)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user