UI quad and Vector2 uniform.
This commit is contained in:
22
pass.odin
22
pass.odin
@@ -40,9 +40,10 @@ Uniform :: union {
|
||||
Uniform_Matrix4f32,
|
||||
Uniform_Matrix4f32_Pointer,
|
||||
|
||||
Uniform_Vector2,
|
||||
Uniform_Vector2_Pointer,
|
||||
Uniform_Vector3,
|
||||
Uniform_Vector3_Pointer,
|
||||
|
||||
Uniform_Vector4,
|
||||
Uniform_Vector4_Pointer,
|
||||
|
||||
@@ -73,6 +74,15 @@ Uniform_Matrix4f32_Pointer :: struct {
|
||||
value: ^linalg.Matrix4f32,
|
||||
}
|
||||
|
||||
Uniform_Vector2 :: struct {
|
||||
name: string,
|
||||
value: [2]f32,
|
||||
}
|
||||
Uniform_Vector2_Pointer :: struct {
|
||||
name: string,
|
||||
value: ^[2]f32,
|
||||
}
|
||||
|
||||
Uniform_Vector3 :: struct {
|
||||
name: string,
|
||||
value: [3]f32,
|
||||
@@ -278,13 +288,15 @@ add_command_to_pass :: proc(renderer: ^Renderer, pass: ^Pass, command: Draw_Comm
|
||||
}
|
||||
|
||||
execute_pass :: proc(renderer: ^Renderer, pass: ^Pass, view_matrix, projection_matrix: linalg.Matrix4x4f32) { // TODO: SS - Move to 'pass.odin'.
|
||||
// fmt.printfln("Executing pass '%v'.", pass.name)
|
||||
// log.infof("Executing pass '%v'.", pass.name)
|
||||
|
||||
assert(renderer != nil)
|
||||
assert(pass != nil)
|
||||
|
||||
switch &t in &pass.type {
|
||||
case Scene_Pass: {
|
||||
// temp_draw_count := 0
|
||||
|
||||
apply_polygon_mode(renderer, renderer.polygon_mode)
|
||||
|
||||
assert(t.output_rt != nil)
|
||||
@@ -310,6 +322,8 @@ execute_pass :: proc(renderer: ^Renderer, pass: ^Pass, view_matrix, projection_m
|
||||
|
||||
sort_draw_commands(renderer, &t)
|
||||
|
||||
// TODO: SS - Frustum-culling.
|
||||
|
||||
for &dc in &t.draw_commands { // TODO: SS - Don't think we need the address of the draw-commands.
|
||||
model_matrix := linalg.identity(linalg.Matrix4x4f32)
|
||||
|
||||
@@ -335,6 +349,8 @@ execute_pass :: proc(renderer: ^Renderer, pass: ^Pass, view_matrix, projection_m
|
||||
|
||||
// Draw the mesh.
|
||||
draw_mesh(&dc.mesh)
|
||||
|
||||
// temp_draw_count += 1
|
||||
}
|
||||
|
||||
// Clear the pass' draw-commands.
|
||||
@@ -343,6 +359,8 @@ execute_pass :: proc(renderer: ^Renderer, pass: ^Pass, view_matrix, projection_m
|
||||
// TODO: SS - "Deactivate" the pass?
|
||||
|
||||
apply_polygon_mode(renderer, .Fill)
|
||||
|
||||
// log.infof(" Done! Drew %v meshes.", temp_draw_count)
|
||||
}
|
||||
case Post_Processing_Pass: {
|
||||
// Execute the post-processing nodes.
|
||||
|
||||
Reference in New Issue
Block a user