summaryrefslogtreecommitdiff
path: root/src/rendering.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering.h')
-rw-r--r--src/rendering.h32
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);