+#ifndef MODEL_H
+#define MODEL_H
+
#include "vg/vg.h"
typedef struct model model;
typedef struct glmesh glmesh;
typedef struct submodel submodel;
typedef struct model_vert model_vert;
-typedef struct scene scene;
typedef struct sdf_primative sdf_primative;
typedef enum esdf_type esdf_type;
vertex_count;
boxf bbx;
+ v3f pivot;
sdf_primative sdf;
enum esdf_type
u32 indice_count;
};
+#define VERTEX_STANDARD_ATTRIBUTES \
+ "layout (location=0) in vec3 a_co;" \
+ "layout (location=1) in vec3 a_norm;" \
+ "layout (location=2) in vec4 a_colour;" \
+ "layout (location=3) in vec2 a_uv;"
+
static void mesh_upload( glmesh *mesh,
model_vert *verts, u32 vert_count,
u32 *indices, u32 indice_count )
mesh_upload( mesh, model_vertex_base( model ), model->vertex_count,
model_indice_base( model ), model->indice_count );
}
+
+static void mesh_free( glmesh *mesh )
+{
+ glDeleteVertexArrays( 1, &mesh->vao );
+ glDeleteBuffers( 1, &mesh->ebo );
+ glDeleteBuffers( 1, &mesh->vbo );
+}
+
+#endif