From 65dcd66f76074be8f977ca5cd08ee61d5fc03e30 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sat, 22 Jun 2024 20:41:57 +0100 Subject: [PATCH] Add line_t struct and update draw_line function --- include/rasteriser/rasteriser.h | 7 ++++++- src/rasteriser/rasteriser.c | 15 ++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/rasteriser/rasteriser.h b/include/rasteriser/rasteriser.h index 7c6a071..7287fed 100644 --- a/include/rasteriser/rasteriser.h +++ b/include/rasteriser/rasteriser.h @@ -4,6 +4,11 @@ #include "vector/vec.h" #include "window/window.h" -void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour); +typedef struct { + vec2i_t p0; + vec2i_t p1; +} line_t; + +void draw_line(window_t *wnd, line_t line, colour_t colour); #endif // !RASTERISER_H diff --git a/src/rasteriser/rasteriser.c b/src/rasteriser/rasteriser.c index acfe74b..b1041ae 100644 --- a/src/rasteriser/rasteriser.c +++ b/src/rasteriser/rasteriser.c @@ -1,16 +1,17 @@ +#include "rasteriser/rasteriser.h" #include "c_cpp_aliases/aliases.h" #include "vector/vec.h" #include "window/window.h" -void draw_line(window_t *wnd, vec2i_t p0, vec2i_t p1, colour_t colour) { - if (p1.x < p0.x) { - vec_swap(vec2i_t, p0, p1); +void draw_line(window_t *wnd, line_t line, colour_t colour) { + if (line.p1.x < line.p0.x) { + vec_swap(vec2i_t, line.p0, line.p1); } - i32 x0 = p0.x; - i32 y0 = p0.y; - i32 x1 = p1.x; - i32 y1 = p1.y; + i32 x0 = line.p0.x; + i32 y0 = line.p0.y; + i32 x1 = line.p1.x; + i32 y1 = line.p1.y; f32 a = ((f32)y1 - y0) / ((f32)x1 - x0); f32 y = y0;