1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#include <GL/gl.h>
#define MAX_VBOS 4
typedef struct {
GLuint vao;
GLuint vbos[MAX_VBOS];
int vbos_count;
int vertex_count;
} Mesh;
void mesh_init(Mesh *mesh, int vertex_count);
void mesh_storef(Mesh *mesh, float *data, int count, int dimensions);
void mesh_storei(Mesh *mesh, int *data, int count, int dimensions);
void mesh_storeu(Mesh *mesh, unsigned int *data, int count, int dimensions);
void mesh_storeb(Mesh *mesh, unsigned char *data, int count, int dimensions);
void mesh_finish(void);
void mesh_bind(Mesh *mesh);
void mesh_unbind(Mesh *mesh);
void mesh_draw(Mesh *mesh);
void mesh_draw_instanced(Mesh *mesh, int count);
void mesh_free(Mesh *mesh);
typedef struct {
GLuint id;
} Uniform;
void uniform_init(Uniform *uniform, void *data, int len);
void uniform_free(Uniform *uniform);
|