A 3d fps game made in OpenGL
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Symmetry/src/game/sprite.h

41 lines
1.1 KiB

#ifndef SPRITE_H
#define SPRITE_H
#include "../common/linmath.h"
#include "../common/num_types.h"
#define SPRITE_BATCH_SIZE 1024
#define MAX_SPRITE_VERTICES 6
struct Sprite_Vertex
{
vec2 position;
vec2 uv;
vec4 color;
};
struct Sprite
{
struct Sprite_Vertex vertices[MAX_SPRITE_VERTICES];
};
struct Sprite_Batch
{
int texture;
int shader;
struct Sprite sprites[SPRITE_BATCH_SIZE];
int draw_mode;
uint vao;
uint vbo;
int current_sprite_count;
};
void sprite_batch_create(struct Sprite_Batch* batch, const char* texture_name, const char* vert_shader, const char* frag_shader, int draw_mode);
void sprite_batch_remove(struct Sprite_Batch* batch);
void sprite_batch_begin(struct Sprite_Batch* batch);
void sprite_batch_add_sprite(struct Sprite_Batch* batch, struct Sprite* sprite);
void sprite_batch_add_sprite_new(struct Sprite_Batch* batch, int texture, struct Sprite_Vertex vertices[MAX_SPRITE_VERTICES]);
void sprite_batch_end(struct Sprite_Batch* batch);
void sprite_batch_render(struct Sprite_Batch* batch);
#endif