#ifndef RENDERING_H #define RENDERING_H #include "util.h" #include #include typedef struct push_sprite_args { char *path; int layer; t_color color; double rotation; SDL_BlendMode blend_mode; bool flip_x; bool flip_y; } t_push_sprite_args; /* clears all render queues */ void render_queue_clear(void); /* pushes a sprite onto the sprite render queue */ /* this is a simplified version of push_sprite_ex for the most common case. */ /* it assumes you want no color modulation, no rotation, no flip, layer 0, and alpha blending */ void push_sprite(char *path, t_frect rect); /* pushes a sprite onto the sprite render queue */ /* note that if args is zeroed out, the color will be transparent black */ void push_sprite_ex(t_frect rect, t_push_sprite_args args); /* pushes a filled rectangle onto the rectangle render queue */ void push_rectangle(t_frect rect, t_color color); /* pushes a filled circle onto the circle render queue */ void push_circle(t_fvec2 position, float radius, t_color color); /* renders the background, then the primitives in all render queues */ void render(void); #endif