summaryrefslogtreecommitdiff
path: root/src/resources/include/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/include/engine')
-rw-r--r--src/resources/include/engine/resources.h12
-rw-r--r--src/resources/include/engine/resources/model.h32
2 files changed, 44 insertions, 0 deletions
diff --git a/src/resources/include/engine/resources.h b/src/resources/include/engine/resources.h
index 707bbde..d967403 100644
--- a/src/resources/include/engine/resources.h
+++ b/src/resources/include/engine/resources.h
@@ -34,6 +34,7 @@ enum Asset {
Asset_shader,
Asset_shaderprog,
Asset_texture,
+ Asset_model,
};
typedef struct {
@@ -69,6 +70,11 @@ typedef struct {
i32 bpc;
} Asset_TextureSpec;
+typedef struct {
+ enum Asset type;
+ const char* path;
+} Asset_ModelSpec;
+
typedef union {
enum Asset type;
Asset_AudioSpec audio;
@@ -76,8 +82,11 @@ typedef union {
Asset_ShaderSpec shader;
Asset_ShaderProgramSpec shaderprog;
Asset_TextureSpec texture;
+ Asset_ModelSpec model;
} asset_t;
+#include <engine/resources/model.h>
+
// The resource spec
typedef struct {
/* Assorted asset specification, makes reloading them easier. */
@@ -93,6 +102,9 @@ typedef struct {
usize texture_len;
Texture* texture;
+
+ usize model_len;
+ Model* model;
} Resources;
#define TextureDefinition(_path, ...) unimplemented
diff --git a/src/resources/include/engine/resources/model.h b/src/resources/include/engine/resources/model.h
new file mode 100644
index 0000000..d22dc21
--- /dev/null
+++ b/src/resources/include/engine/resources/model.h
@@ -0,0 +1,32 @@
+#ifndef ENGINE_RESOURCES_MODEL_H
+#define ENGINE_RESOURCES_MODEL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <engine/core/types.h>
+#include <cglm/cglm.h>
+#include <glad/gl.h>
+
+typedef enum {
+ Model_error,
+ Model_obj,
+} ModelType;
+
+typedef struct {
+ ModelType format;
+
+ GLuint m_uiVAO;
+ GLuint m_uiVBO;
+ GLuint m_uiIBO;
+ unsigned m_uiNumIndices;
+} Model;
+
+#include <engine/resources.h>
+Model load_model(const Asset_ModelSpec *restrict ms);
+
+#ifdef __cplusplus
+}
+#endif
+#endif