summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rendering.cc47
-rw-r--r--src/rendering.h22
2 files changed, 24 insertions, 45 deletions
diff --git a/src/rendering.cc b/src/rendering.cc
index e916d31..8127c13 100644
--- a/src/rendering.cc
+++ b/src/rendering.cc
@@ -155,50 +155,29 @@ bool wayc_atlas_packer_allocate(struct atlas_packer_s* packer, u32 width,
return true;
}
-bool wayc_vbo_init(vbo_t* vbo, usize size) {
- wayc_notnull(vbo);
+bool wayc_buffer_init(buffer_t* buffer, usize size) {
+ wayc_notnull(buffer);
- glCreateBuffers(1, vbo);
- if (*vbo == 0) return false;
+ glCreateBuffers(1, buffer);
+ if (*buffer == 0) return false;
- glNamedBufferStorage(*vbo, size, NULL, GL_DYNAMIC_STORAGE_BIT);
+ glNamedBufferStorage(*buffer, size, nullptr, GL_DYNAMIC_STORAGE_BIT);
return true;
}
-bool wayc_vbo_upload(vbo_t vbo, usize offset, usize size, const u8* data) {
+bool wayc_buffer_set(buffer_t buffer, usize offset, usize size,
+ const u8* data) {
wayc_notnull(data);
- glNamedBufferSubData(vbo, offset, size, data); // TODO: add error checking
+ glNamedBufferSubData(buffer, offset, size, data); // TODO: add error checking
return true;
}
-void wayc_vbo_use(vbo_t vbo) { glBindBuffer(GL_ARRAY_BUFFER, vbo); }
-
-void wayc_vbo_deinit(vbo_t* vbo) {
- wayc_notnull(vbo);
- glDeleteBuffers(1, vbo);
-}
-
-bool wayc_ebo_init(ebo_t* ebo, usize size) {
- wayc_notnull(ebo);
-
- glCreateBuffers(1, ebo);
- if (*ebo == 0) return false;
-
- glNamedBufferStorage(*ebo, size, NULL, GL_DYNAMIC_STORAGE_BIT);
- return true;
+void wayc_buffer_use(buffer_t buffer, buffer_type_e type) {
+ glBindBuffer(type, buffer);
}
-bool wayc_ebo_upload(ebo_t ebo, usize offset, usize size, const u8* data) {
- wayc_notnull(data);
-
- glNamedBufferSubData(ebo, offset, size, data);
- return true;
-}
-
-void wayc_ebo_use(ebo_t ebo) { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); }
-
-void wayc_ebo_deinit(ebo_t* ebo) {
- wayc_notnull(ebo);
- glDeleteBuffers(1, ebo);
+void wayc_buffer_deinit(buffer_t* buffer) {
+ wayc_notnull(buffer);
+ glDeleteBuffers(1, buffer);
}
diff --git a/src/rendering.h b/src/rendering.h
index a3982cf..67f4682 100644
--- a/src/rendering.h
+++ b/src/rendering.h
@@ -6,6 +6,8 @@
#include "glad.h"
#include "utils.h"
+// TODO: review all structs and use types
+
enum image_type_e {
IMAGE_TYPE_2D = GL_TEXTURE_2D,
};
@@ -80,16 +82,14 @@ 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);
+enum buffer_type_e {
+ BUFFER_TYPE_VERTEX = GL_ARRAY_BUFFER,
+ BUFFER_TYPE_INDEX = GL_ELEMENT_ARRAY_BUFFER,
+};
-typedef u32 ebo_t;
+typedef u32 buffer_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);
+bool wayc_buffer_init(buffer_t* buffer, usize size);
+bool wayc_buffer_set(buffer_t buffer, usize offset, usize size, const u8* data);
+void wayc_buffer_use(buffer_t buffer, buffer_type_e type);
+void wayc_buffer_deinit(buffer_t* buffer);