townengine/src/rendering.h

42 lines
1.1 KiB
C
Raw Normal View History

2024-07-08 00:44:20 +00:00
#ifndef RENDERING_H
#define RENDERING_H
#include "util.h"
#include <SDL2/SDL.h>
#include <stdbool.h>
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