summaryrefslogtreecommitdiff
path: root/src/mesh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesh')
-rw-r--r--src/mesh/mesh.c16
-rw-r--r--src/mesh/mesh.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/src/mesh/mesh.c b/src/mesh/mesh.c
index 55de82c..1889bd7 100644
--- a/src/mesh/mesh.c
+++ b/src/mesh/mesh.c
@@ -1,5 +1,18 @@
#include "mesh.h"
+void honey_setup_mesh(lua_State* L)
+{
+ honey_lua_element mesh_elements[] = {
+ { "new", HONEY_FUNCTION, { .function = honey_mesh_new } },
+ { "draw", HONEY_FUNCTION, { .function = honey_mesh_draw } },
+ { "delete", HONEY_FUNCTION, { .function = honey_mesh_delete } },
+ };
+
+ honey_lua_create_table(L, mesh_elements, 3);
+}
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
int honey_mesh_new(lua_State* L)
{
float* vertices;
@@ -58,6 +71,9 @@ int honey_mesh_new(lua_State* L)
}
glBindVertexArray(0);
+
+ free(attribute_sizes);
+
return 1;
}
diff --git a/src/mesh/mesh.h b/src/mesh/mesh.h
index a82db52..1f3bc3e 100644
--- a/src/mesh/mesh.h
+++ b/src/mesh/mesh.h
@@ -16,6 +16,9 @@ typedef struct {
unsigned int vertex_array, vertex_buffer, element_buffer;
} honey_mesh;
+/** @brief Push the mesh bindings to the lua stack. */
+void honey_setup_mesh();
+
/** @brief Create a new mesh from vertex and index arrays.
*
* This function copies the data, so you can safely permit vertices and