LibGame v0.4.0
The LG Game Engine - Copyright (C) 2024-2026 ETMSoftware
Loading...
Searching...
No Matches
lg_vbo.h
1/*
2 * LibGame - Copyright (C) Emmanuel Thomas-Maurin 2011-2026
3 * All rights reserved
4 */
5
6#ifndef LG_VBO_H
7#define LG_VBO_H
8
9#define LG_INVALID_GL_OBJ_ID 500000 /* Apply to VBO = Vertex Buffer Object / IBO = Index Buffer Object / VAO = Vertex Array Object */
10
11/*
12 * === VBO ===
13 */
14typedef struct {
15 unsigned int id;
16 unsigned int size;
17} LG_VBO;
18
19LG_VBO LG_VBO_new(const void *, unsigned int);
20
21int LG_VBO_set_data(LG_VBO *, const void *);
22
23void LG_VBO_free(LG_VBO *);
24
25void LG_VBO_bind(LG_VBO *);
26
27void LG_VBO_unbind();
28
29/*
30 * === IBO ===
31 */
32typedef struct {
33 unsigned int id;
34 unsigned int size;
35} LG_IBO;
36
37LG_IBO LG_IBO_new(const void *, unsigned int);
38
39int LG_IBO_set_data(LG_IBO *, const void *);
40
41void LG_IBO_free(LG_IBO *);
42
43void LG_IBO_bind(LG_IBO *);
44
45void LG_IBO_unbind();
46
47/*
48 * === VAO ===
49 */
50typedef struct {
51 unsigned int id;
52} LG_VAO;
53
55
56void LG_VAO_free(LG_VAO *);
57
58void LG_VAO_bind(LG_VAO *, zboolean);
59
60void LG_VAO_unbind();
61
62#endif /* LG_VBO_H */
void LG_IBO_bind(LG_IBO *ibo)
Definition lg_vbo.c:227
LG_VBO LG_VBO_new(const void *vertex_data, unsigned int size)
Definition lg_vbo.c:28
void LG_VBO_bind(LG_VBO *vbo)
Definition lg_vbo.c:111
LG_VAO LG_VAO_new()
Definition lg_vbo.c:262
void LG_VAO_bind(LG_VAO *vao, zboolean gl_checking)
Definition lg_vbo.c:336
int LG_IBO_set_data(LG_IBO *ibo, const void *vertex_indices)
Definition lg_vbo.c:183
LG_IBO LG_IBO_new(const void *vertex_indices, unsigned int size)
Definition lg_vbo.c:143
void LG_VBO_unbind()
Definition lg_vbo.c:126
void LG_IBO_free(LG_IBO *ibo)
Definition lg_vbo.c:212
void LG_VAO_free(LG_VAO *vao)
Definition lg_vbo.c:309
void LG_VBO_free(LG_VBO *vbo)
Definition lg_vbo.c:97
void LG_VAO_unbind()
Definition lg_vbo.c:357
void LG_IBO_unbind()
Definition lg_vbo.c:242
int LG_VBO_set_data(LG_VBO *vbo, const void *vertex_data)
Definition lg_vbo.c:68
Definition lg_vbo.h:32
Definition lg_vbo.h:50
Definition lg_vbo.h:14