diff options
Diffstat (limited to 'src/rendering.h')
| -rw-r--r-- | src/rendering.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/rendering.h b/src/rendering.h index f8db68e..145fe60 100644 --- a/src/rendering.h +++ b/src/rendering.h @@ -79,3 +79,35 @@ struct atlas_packer_s { bool wayc_atlas_packer_allocate(struct atlas_packer_s* packer, u32 width, u32 height, ivec2 out); + +typedef u32 vbo_t; + +bool wayc_vbo_init(vbo_t* vbo, usize size); +bool wayc_vbo_upload(vbo_t vbo, usize offset, usize size, const u8* data); +void wayc_vbo_use(vbo_t vbo); +void wayc_vbo_deinit(vbo_t* vbo); + +typedef u32 ebo_t; + +bool wayc_ebo_init(ebo_t* ebo, usize size); +bool wayc_ebo_upload(ebo_t ebo, usize offset, usize size, const u8* data); +void wayc_ebo_use(ebo_t ebo); +void wayc_ebo_deinit(ebo_t* ebo); + +typedef u32 vao_t; + +enum vao_attr_type_e { + VAO_ATTR_TYPE_FLOAT = GL_FLOAT, +}; + +struct vao_attr_s { + u32 size; + vao_attr_type_e type; + bool normalized; + u32 offset; +}; + +bool wayc_vao_init(vao_t* vao, vbo_t vbo, ebo_t ebo, const vao_attr_s* attrs, + u32 attr_count); +void wayc_vao_use(vao_t vao); +void wayc_vao_deinit(vao_t* vao); |
