#ifndef RASTERISER_H
#define RASTERISER_H

#include "c_cpp_aliases/aliases.h"
#include "list/typed_list.h"
#include "vector/vec.h"
#include "window/window.h"

MAKE_LIST_TYPE(f32);

typedef struct {
  vec2i_t p0;
  vec2i_t p1;
} line_t;

typedef struct {
  vec2i_t p0;
  vec2i_t p1;
  vec2i_t p2;
} triangle_t;

void draw_wireframe_triangle(window_t *wnd, triangle_t triangle,
                             colour_t colour);
void draw_filled_triangle(window_t *wnd, triangle_t triangle, colour_t colour);
void draw_line(window_t *wnd, line_t line, colour_t colour);

#endif // !RASTERISER_H