diff --git a/src/rasteriser/main.c b/src/rasteriser/main.c index 7233bc6..8a85beb 100644 --- a/src/rasteriser/main.c +++ b/src/rasteriser/main.c @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include int main(void) { diff --git a/src/rasteriser/rasteriser.c b/src/rasteriser/rasteriser.c index b86def6..5e8058e 100644 --- a/src/rasteriser/rasteriser.c +++ b/src/rasteriser/rasteriser.c @@ -7,6 +7,7 @@ #include "window/window.h" #include #include +#include #include #include #include @@ -232,8 +233,8 @@ void draw_filled_triangle(window_t *wnd, Arena *arena, triangle_t triangle) { i32 index = -1; i64 xl = -1; i64 xr = -1; - f32 current_z = INFINITY; - f32 new_z = INFINITY; + f32 current_z = 0.0f; + f32 new_z = 0.0f; for (i64 y = y0; y <= y2; ++y) { index = y - y0; @@ -247,7 +248,7 @@ void draw_filled_triangle(window_t *wnd, Arena *arena, triangle_t triangle) { current_z = get_z_pixel(wnd, x, y); new_z = list_get(z_segment, x - xl); - if (new_z > current_z) { + if (new_z >= current_z) { set_z_pixel(wnd, x, y, new_z); set_pixel(wnd, x, y, triangle.colour); }