diff options
| author | Mel <einebeere@gmail.com> | 2022-10-03 07:21:44 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-10-03 07:21:44 +0200 |
| commit | 75f3941579c756655fc7d4d29e7b92b6eae436b7 (patch) | |
| tree | f8fab6809cd9525d060cfa62269f00d7ff3ea793 /src/Binder.cpp | |
| parent | 3b289a2f75b6e96735519a65d93b6babd1b1759f (diff) | |
| download | meowcraft-75f3941579c756655fc7d4d29e7b92b6eae436b7.tar.zst meowcraft-75f3941579c756655fc7d4d29e7b92b6eae436b7.zip | |
Indexed Rendering
Diffstat (limited to 'src/Binder.cpp')
| -rw-r--r-- | src/Binder.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Binder.cpp b/src/Binder.cpp index 8f9b7df..409c4ef 100644 --- a/src/Binder.cpp +++ b/src/Binder.cpp @@ -6,10 +6,11 @@ namespace MC { BindableMesh Binder::load(Mesh& mesh) { auto vao = create_vao(); - store_in_attribute_list(0, 3, mesh.flat(), mesh.size() * 3); + store_indices(mesh.raw_indices(), mesh.indices_size()); + store_in_attribute_list(0, 3, mesh.raw(), mesh.size() * 3); unbind_vao(); - return {vao, mesh.size()}; + return {vao, mesh.indices_size()}; } uint32_t Binder::create_vao() { @@ -24,6 +25,14 @@ uint32_t Binder::unbind_vao() { glBindVertexArray(0); } +void Binder::store_indices(uint32_t* indices, size_t indices_size) { + GLuint ebo; + glGenBuffers(1, &ebo); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_size * sizeof(float), indices, GL_STATIC_DRAW); +} + void Binder::store_in_attribute_list(uint32_t attribute, size_t size, float* data, size_t data_size) { GLuint vbo; glGenBuffers(1, &vbo); |
