summary refs log tree commit diff
path: root/src/GFX/Binder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GFX/Binder.cpp')
-rw-r--r--src/GFX/Binder.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/GFX/Binder.cpp b/src/GFX/Binder.cpp
deleted file mode 100644
index 49f82a7..0000000
--- a/src/GFX/Binder.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <GL/glew.h>
-#include <cassert>
-#include "Binder.hpp"
-#include "Mesh.hpp"
-
-namespace MC::GFX {
-
-BindableMesh Binder::load(const Mesh& mesh) {
-    auto vao = create_vao();
-    if (!mesh.indices().empty()) {
-        store_indices(mesh.indices().data(), mesh.indices().size());
-    }
-
-    Int attribute_index = 0;
-    for (const auto& attribute : mesh.attributes()) {
-        store_in_attribute_list(
-            attribute_index++,
-            attribute.attribute_size,
-            attribute.type_size,
-            attribute.data,
-            attribute.data_size
-        );
-    }
-    unbind_vao();
-
-    return {vao, mesh.indices().size(), mesh.attributes().size()};
-}
-
-U32 Binder::create_vao() {
-    GLuint vao;
-    glGenVertexArrays(1, &vao);
-    glBindVertexArray(vao);
-
-    return vao;
-}
-
-void Binder::unbind_vao() {
-    glBindVertexArray(0);
-}
-
-void Binder::store_indices(const U32* indices, USize indices_size) {
-    GLuint ebo;
-    glGenBuffers(1, &ebo);
-
-    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
-    glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_size * sizeof(U32), indices, GL_STATIC_DRAW);
-}
-
-
-void Binder::store_in_attribute_list(U32 attribute, Int attribute_size, Int type_size, const void* data, long data_size) {
-    assert(type_size == sizeof(F32));
-
-    GLuint vbo;
-    glGenBuffers(1, &vbo);
-
-    glBindBuffer(GL_ARRAY_BUFFER, vbo);
-    glBufferData(GL_ARRAY_BUFFER, data_size * attribute_size * type_size, data, GL_STATIC_DRAW);
-    glVertexAttribPointer(attribute, attribute_size, GL_FLOAT, GL_FALSE, attribute_size * type_size, nullptr);
-    glBindBuffer(GL_ARRAY_BUFFER, 0);
-}
-
-void BindableMesh::bind() const {
-    glBindVertexArray(m_vao);
-    for (Int i = 0; i < m_attribute_count; i++) {
-        glEnableVertexAttribArray(i);
-    }
-}
-
-void BindableMesh::unbind() const {
-    glBindVertexArray(0);
-    for (Int i = 0; i < m_attribute_count; i++) {
-        glDisableVertexAttribArray(i);
-    }
-}
-
-Bool BindableMesh::has_indices() const {
-    return m_has_indices;
-}
-
-USize BindableMesh::size() const {
-    return m_vertex_count;
-}
-
-}
\ No newline at end of file