80 lines
1.6 KiB
C
80 lines
1.6 KiB
C
#ifndef WINDOW_H
|
|
#define WINDOW_H
|
|
|
|
#include "aliases/aliases.h"
|
|
#include <SDL2/SDL_pixels.h>
|
|
#include <SDL2/SDL_render.h>
|
|
#include <SDL2/SDL_video.h>
|
|
#include <stdbool.h>
|
|
|
|
typedef struct point point;
|
|
typedef struct line line;
|
|
typedef struct triangle triangle;
|
|
typedef struct quad quad;
|
|
typedef struct rect rect;
|
|
typedef struct window window;
|
|
|
|
struct point {
|
|
i32 x;
|
|
i32 y;
|
|
};
|
|
|
|
struct line {
|
|
point p0;
|
|
point p1;
|
|
};
|
|
|
|
struct triangle {
|
|
point p0;
|
|
point p1;
|
|
point p2;
|
|
};
|
|
|
|
struct quad {
|
|
point p0;
|
|
point p1;
|
|
point p2;
|
|
point p3;
|
|
};
|
|
|
|
struct rect {
|
|
point topleft;
|
|
i32 w;
|
|
i32 h;
|
|
};
|
|
|
|
struct window {
|
|
u32 id;
|
|
u64 x;
|
|
u64 y;
|
|
u64 width;
|
|
u64 height;
|
|
const char *title;
|
|
SDL_Window *window;
|
|
SDL_Renderer *renderer;
|
|
};
|
|
|
|
typedef struct colour colour;
|
|
struct colour {
|
|
union {
|
|
u32 abgr;
|
|
SDL_Color colour;
|
|
};
|
|
};
|
|
|
|
bool init_window(window *wnd, const char *title, u32 width, u32 height, i32 x,
|
|
i32 y);
|
|
void cleanup_window(window *wnd);
|
|
void clear_window(const window *wnd, colour colour);
|
|
void swap_buffers(const window *wnd);
|
|
void draw_point(const window *wnd, point p, colour colour);
|
|
void draw_line(const window *wnd, const line *ln, colour colour);
|
|
void draw_triangle(const window *wnd, triangle triangle, colour colour);
|
|
void fill_triangle(const window *wnd, triangle triangle, colour colour);
|
|
void draw_quad(const window *wnd, quad qd, colour colour);
|
|
void fill_quad(const window *wnd, quad qd, colour colour);
|
|
void draw_rect(const window *wnd, rect rec, colour colour);
|
|
void fill_rect(const window *wnd, rect rec, colour colour);
|
|
|
|
#endif // !WINDOW_H
|