#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 */