2022-10-16 21:43:22 +00:00
|
|
|
#ifndef BUFFER_H
|
|
|
|
#define BUFFER_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
typedef struct VertexArrayObject
|
|
|
|
{
|
|
|
|
int vao;
|
|
|
|
|
|
|
|
int vbo;
|
|
|
|
int ebo;
|
|
|
|
|
|
|
|
size_t elements;
|
|
|
|
} VertexArrayObject;
|
|
|
|
|
|
|
|
typedef struct VertexAttribute
|
|
|
|
{
|
|
|
|
int type;
|
|
|
|
int count;
|
|
|
|
size_t size;
|
|
|
|
} VertexAttribute;
|
|
|
|
|
|
|
|
void create_vao(VertexArrayObject* vao);
|
|
|
|
void destroy_vao(VertexArrayObject vao);
|
|
|
|
|
|
|
|
void attach_vertex_buffer(VertexArrayObject* vao, const float* data, size_t size);
|
|
|
|
void attach_element_buffer(VertexArrayObject* vao, const unsigned* data, size_t size);
|
|
|
|
|
|
|
|
void set_vertex_layout(VertexArrayObject* vao, VertexAttribute* attributes, size_t count);
|
|
|
|
|
2022-10-18 16:43:15 +00:00
|
|
|
void bind_vao(VertexArrayObject* vao);
|
|
|
|
void render_vao(VertexArrayObject* vao);
|
2022-10-16 21:43:22 +00:00
|
|
|
|
|
|
|
#endif // BUFFER_H
|