aboutsummaryrefslogtreecommitdiff
path: root/src/scene/scene.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scene/scene.c')
-rw-r--r--src/scene/scene.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/scene/scene.c b/src/scene/scene.c
index 8c53810..52ddb58 100644
--- a/src/scene/scene.c
+++ b/src/scene/scene.c
@@ -7,19 +7,25 @@
7 7
8Scene* gfx_make_scene(void) { 8Scene* gfx_make_scene(void) {
9 Scene* scene = mem_alloc_scene(); 9 Scene* scene = mem_alloc_scene();
10 scene->root = gfx_make_node(); 10 scene->root = mem_get_node_index(gfx_make_node());
11 return scene; 11 return scene;
12} 12}
13 13
14void gfx_destroy_scene(Scene** scene) { 14void gfx_destroy_scene(Scene** scene) {
15 assert(scene); 15 assert(scene);
16 if (*scene) { 16 if (*scene) {
17 gfx_destroy_node(&(*scene)->root); 17 SceneNode* node = mem_get_node((*scene)->root);
18 gfx_destroy_node(&node);
18 mem_free_scene(scene); 19 mem_free_scene(scene);
19 } 20 }
20} 21}
21 22
22SceneNode* gfx_get_scene_root(Scene* scene) { 23const SceneNode* gfx_get_scene_root(const Scene* scene) {
23 assert(scene); 24 assert(scene);
24 return scene->root; 25 return mem_get_node(scene->root);
26}
27
28SceneNode* gfx_get_scene_root_mut(Scene* scene) {
29 assert(scene);
30 return (SceneNode*)gfx_get_scene_root(scene);
25} 31}