48 lines
2.5 KiB
C
48 lines
2.5 KiB
C
#ifndef DRAW_H
|
|
#define DRAW_H
|
|
|
|
struct renderer_canvas;
|
|
struct font;
|
|
struct renderer_startup_receipt;
|
|
struct font_startup_receipt;
|
|
|
|
#define DRAW_SPRITE_PARAMS(...) ((struct draw_sprite_params) { \
|
|
.tint = COLOR_WHITE, \
|
|
.clip = CLIP_ALL, \
|
|
__VA_ARGS__ \
|
|
})
|
|
|
|
struct draw_sprite_params {
|
|
struct sprite_tag sprite;
|
|
struct clip_rect clip;
|
|
u32 tint;
|
|
};
|
|
|
|
struct draw_startup_receipt { i32 _; };
|
|
struct draw_startup_receipt draw_startup(struct renderer_startup_receipt *renderer_sr,
|
|
struct font_startup_receipt *font_sr);
|
|
|
|
void draw_quad_sprite_ex(struct renderer_canvas *canvas, struct renderer_handle texture, struct sprite_tag sprite, struct clip_rect clip, u32 tint0, u32 tint1, struct quad quad);
|
|
void draw_quad_sprite(struct renderer_canvas *canvas, struct draw_sprite_params params, struct quad quad);
|
|
|
|
void draw_poly(struct renderer_canvas *canvas, struct v2_array array, u32 color);
|
|
void draw_circle(struct renderer_canvas *canvas, struct v2 pos, f32 radius, u32 color, u32 detail);
|
|
void draw_quad(struct renderer_canvas *canvas, struct quad quad, u32 color);
|
|
|
|
void draw_gradient_line(struct renderer_canvas *canvas, struct v2 start, struct v2 end, f32 thickness, u32 color_start, u32 color_end);
|
|
void draw_line(struct renderer_canvas *canvas, struct v2 start, struct v2 end, f32 thickness, u32 color);
|
|
void draw_ray(struct renderer_canvas *canvas, struct v2 start, struct v2 ray, f32 thickness, u32 color);
|
|
void draw_poly_line(struct renderer_canvas *canvas, struct v2_array array, b32 loop, f32 thickness, u32 color);
|
|
void draw_circle_line(struct renderer_canvas *canvas, struct v2 pos, f32 radius, f32 thickness, u32 color, u32 detail);
|
|
void draw_quad_line(struct renderer_canvas *canvas, struct quad quad, f32 thickness, u32 color);
|
|
void draw_arrow_line(struct renderer_canvas *canvas, struct v2 start, struct v2 end, f32 thickness, f32 arrowhead_height, u32 color);
|
|
void draw_arrow_ray(struct renderer_canvas *canvas, struct v2 pos, struct v2 rel, f32 thickness, f32 arrowhead_height, u32 color);
|
|
void draw_collider_line(struct renderer_canvas *canvas, struct xform draw_xf, struct collider_shape shape, struct xform shape_xf, f32 thickness, u32 color, u32 detail);
|
|
|
|
void draw_grid(struct renderer_canvas *canvas, struct rect rect, u32 color, f32 thickness, f32 spacing, struct v2 offset);
|
|
|
|
void draw_text(struct renderer_canvas *canvas, struct font *font, struct v2 pos, struct string str);
|
|
void draw_text_ex(struct renderer_canvas *canvas, struct font *font, struct v2 pos, f32 scale, struct string str);
|
|
|
|
#endif
|