skunkworks-c/include/renderer2d.h

46 lines
1.0 KiB
C

#ifndef GUARD_2B56918289975E8AA8711D6E080ED4B9
#define GUARD_2B56918289975E8AA8711D6E080ED4B9
#include "shader.h"
#include "types.h"
#include "vec2f.h"
#include "vec4f.h"
#include "vertex_buffer.h"
struct sw_renderer;
struct sw_renderer2d {
struct sw_shaderprogram shader;
struct sw_renderer *renderer;
struct sw_vertex_buffer *vertex_buffer;
struct sw_vec4f color;
u32 vao, vbo;
};
struct sw_renderer2d *sw_renderer2d_create();
/* Api needed:
- clear screen
- set color
- set texture (alternatively none)
- set repeat
- blend modes per draw call maybe?
- draw quad
- draw "sprite" (quad of same size as texture)
- draw line
- transform matrix stack
- coordinate style, match pixel coordinates, vs 1.f full vertical range
*/
void sw_renderer2d_draw_quad(
struct sw_renderer2d *renderer,
struct sw_vec2f a,
struct sw_vec2f b,
struct sw_vec2f c,
struct sw_vec2f d
);
void sw_renderer2d_set_color(struct sw_renderer2d *ren, struct sw_vec4f color);
#endif /* GUARD_2B56918289975E8AA8711D6E080ED4B9 */