#pragma once

#include "pxl8_types.h"

typedef struct pxl8_gfx pxl8_gfx;

#ifdef __cplusplus
extern "C" {
#endif

void pxl8_2d_circle(pxl8_gfx* gfx, i32 cx, i32 cy, i32 radius, u32 color);
void pxl8_2d_circle_fill(pxl8_gfx* gfx, i32 cx, i32 cy, i32 radius, u32 color);
void pxl8_2d_clear(pxl8_gfx* gfx, u32 color);
u32 pxl8_2d_get_pixel(pxl8_gfx* gfx, i32 x, i32 y);
void pxl8_2d_line(pxl8_gfx* gfx, i32 x0, i32 y0, i32 x1, i32 y1, u32 color);
void pxl8_2d_pixel(pxl8_gfx* gfx, i32 x, i32 y, u32 color);
void pxl8_2d_rect(pxl8_gfx* gfx, i32 x, i32 y, i32 w, i32 h, u32 color);
void pxl8_2d_rect_fill(pxl8_gfx* gfx, i32 x, i32 y, i32 w, i32 h, u32 color);
void pxl8_2d_sprite(pxl8_gfx* gfx, u32 sprite_id, i32 x, i32 y, i32 w, i32 h, bool flip_x, bool flip_y);
void pxl8_2d_text(pxl8_gfx* gfx, const char* text, i32 x, i32 y, u32 color);

#ifdef __cplusplus
}
#endif
