summary refs log tree commit diff
path: root/src/GFX/Binder.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GFX/Binder.hpp')
-rw-r--r--src/GFX/Binder.hpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/GFX/Binder.hpp b/src/GFX/Binder.hpp
index 99f9791..3d3949b 100644
--- a/src/GFX/Binder.hpp
+++ b/src/GFX/Binder.hpp
@@ -8,15 +8,25 @@ namespace MC::GFX {
 class BindableMesh {
 public:
     void bind() const;
-    void unbind();
+    void unbind() const;
 
+    bool has_indices() const;
     size_t size() const;
 
 private:
-    BindableMesh(uint32_t vao, size_t vertex_count) : m_vao(vao), m_vertex_count(vertex_count) {};
+    BindableMesh(
+        uint32_t vao,
+        size_t vertex_count,
+        size_t attribute_count
+    ) : m_vao(vao),
+        m_vertex_count(vertex_count),
+        m_has_indices(vertex_count > 0),
+        m_attribute_count(attribute_count) {};
 
     uint32_t m_vao;
     size_t m_vertex_count;
+    bool m_has_indices;
+    size_t m_attribute_count;
 
     friend class Binder;
 };
@@ -31,7 +41,7 @@ private:
     static uint32_t create_vao();
     static void unbind_vao();
 
-    static void store_in_attribute_list(uint32_t attribute, size_t size, float* data, size_t data_size);
+    static void store_in_attribute_list(uint32_t attribute, int attribute_size, int type_size, void* data, long data_size);
     static void store_indices(uint32_t* indices, size_t indices_size);
 };