diff options
Diffstat (limited to 'src/GFX/Binder.hpp')
| -rw-r--r-- | src/GFX/Binder.hpp | 16 |
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); }; |
