From e31535abfff4c3335dd465e3745a69d3102253a6 Mon Sep 17 00:00:00 2001 From: quou Date: Sat, 28 Dec 2024 18:27:30 +1100 Subject: converting, loading and rendering GLTF models --- model.hpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 model.hpp (limited to 'model.hpp') diff --git a/model.hpp b/model.hpp new file mode 100644 index 0000000..d4c4be3 --- /dev/null +++ b/model.hpp @@ -0,0 +1,39 @@ +#ifndef model_hpp +#define model_hpp + +#include "asset.hpp" +#include "video.hpp" + +struct Mesh { + int offset, vbo_offset, count; + int parent; + Shader_Id shader; +}; + +struct Model : public Asset { + Buffer_Id vbo; + Buffer_Id ibo; + int mesh_count; + + Mesh* get_meshes() { + return (Mesh*)&this[1]; + } + + void destroy(Device* dev); + void render( + Device* dev, + Arena* a, + Render_Pass& pass, + Buffer_Id config + ); +}; + +struct Model_Loader : public Asset_Loader { + Device* dev; + Asset_Arena* shaders; + void init(Device* device, Asset_Arena* shader_arena); + Asset* load(Arena* a, Arena* s, Pack_File* f) override; + void unload(Asset* a); +}; + +#endif -- cgit v1.2.3-54-g00ecf