diff options
| author | 3gg <3gg@shellblade.net> | 2025-11-02 18:18:56 -0800 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2025-11-02 18:18:56 -0800 |
| commit | 0dc3a9df980630b671bbc5df69503c2e72dcf004 (patch) | |
| tree | 1b46c45ecf8842f8aa3d24c542f28719452f8a46 /src/scene/mesh.c | |
| parent | 3e559ab467857e49941d08b91873ceaa6d1f9d8d (diff) | |
Consolidate scene data structures
Diffstat (limited to 'src/scene/mesh.c')
| -rw-r--r-- | src/scene/mesh.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/scene/mesh.c b/src/scene/mesh.c new file mode 100644 index 0000000..770c3fb --- /dev/null +++ b/src/scene/mesh.c | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | #include "mesh_impl.h" | ||
| 2 | |||
| 3 | #include <gfx/scene.h> | ||
| 4 | |||
| 5 | #include "memory.h" | ||
| 6 | |||
| 7 | #include <cassert.h> | ||
| 8 | |||
| 9 | static void mesh_make(Mesh* mesh, const MeshDesc* desc) { | ||
| 10 | assert(mesh); | ||
| 11 | assert(desc); | ||
| 12 | assert(desc->geometry); | ||
| 13 | assert(desc->material); | ||
| 14 | assert(desc->shader); | ||
| 15 | mesh->geometry = desc->geometry; | ||
| 16 | mesh->material = desc->material; | ||
| 17 | mesh->shader = desc->shader; | ||
| 18 | } | ||
| 19 | |||
| 20 | Mesh* gfx_make_mesh(const MeshDesc* desc) { | ||
| 21 | Mesh* mesh = mem_alloc_mesh(); | ||
| 22 | mesh_make(mesh, desc); | ||
| 23 | return mesh; | ||
| 24 | } | ||
| 25 | |||
| 26 | void gfx_destroy_mesh(Mesh** mesh) { mem_free_mesh(mesh); } | ||
