2023-03-07 20:13:02 +01:00
|
|
|
#ifndef GUARD_2B56918289975E8AA8711D6E080ED4B9
|
|
|
|
#define GUARD_2B56918289975E8AA8711D6E080ED4B9
|
|
|
|
|
|
|
|
#include "shader.h"
|
2023-04-17 00:40:41 +02:00
|
|
|
#include "types.h"
|
|
|
|
#include "vec2f.h"
|
|
|
|
#include "vec4f.h"
|
|
|
|
#include "vertex_buffer.h"
|
2023-03-07 20:13:02 +01:00
|
|
|
|
2023-03-23 00:08:34 +01:00
|
|
|
struct sw_renderer;
|
|
|
|
|
2023-03-07 20:13:02 +01:00
|
|
|
struct sw_renderer2d {
|
|
|
|
struct sw_shaderprogram shader;
|
2023-03-23 00:08:34 +01:00
|
|
|
struct sw_renderer *renderer;
|
2023-04-17 00:40:41 +02:00
|
|
|
struct sw_vertex_buffer *vertex_buffer;
|
|
|
|
struct sw_vec4f color;
|
|
|
|
u32 vao, vbo;
|
2023-03-07 20:13:02 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
struct sw_renderer2d *sw_renderer2d_create();
|
|
|
|
|
2023-03-28 19:06:07 +02:00
|
|
|
/* 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
|
2023-04-17 00:40:41 +02:00
|
|
|
- coordinate style, match pixel coordinates, vs 1.f full vertical range
|
2023-03-28 19:06:07 +02:00
|
|
|
*/
|
|
|
|
|
2023-04-17 00:40:41 +02:00
|
|
|
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);
|
|
|
|
|
2023-03-07 20:13:02 +01:00
|
|
|
#endif /* GUARD_2B56918289975E8AA8711D6E080ED4B9 */
|