cg-from-scratch/include/window/window.h

37 lines
754 B
C

#ifndef WINDOW_H
#define WINDOW_H
#include "c_cpp_aliases/aliases.h"
#include "vector/vec.h"
#include <SDL2/SDL_video.h>
#include <stdbool.h>
typedef struct {
u8 r;
u8 g;
u8 b;
u8 a;
} colour_t;
typedef struct {
u32 width;
u32 height;
u32 half_width;
u32 half_height;
const char *title;
SDL_Window *window;
SDL_Surface *front_buffer;
SDL_Surface *back_buffer;
} window_t;
bool init_window(window_t *wnd, u32 width, u32 height, const char *title);
void close_window(window_t *wnd);
void clear_window(window_t *wnd, colour_t colour);
void set_pixel(window_t *wnd, i32 x, i32 y, colour_t colour);
void swap_buffers(window_t *wnd);
vec3f_t window_to_viewport(window_t *wnd, i32 x, i32 y, vec3f_t viewport);
#endif // !WINDOW_H