aboutsummaryrefslogtreecommitdiff
path: root/src/scene
diff options
context:
space:
mode:
Diffstat (limited to 'src/scene')
-rw-r--r--src/scene/scene.c14
-rw-r--r--src/scene/scene_impl.h6
2 files changed, 11 insertions, 9 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}
diff --git a/src/scene/scene_impl.h b/src/scene/scene_impl.h
index 06a69f0..157f891 100644
--- a/src/scene/scene_impl.h
+++ b/src/scene/scene_impl.h
@@ -4,10 +4,6 @@
4 4
5#include "../types.h" 5#include "../types.h"
6 6
7typedef struct SceneNode SceneNode;
8
9typedef struct Scene { 7typedef struct Scene {
10 SceneNode* root; 8 node_idx root;
11 scene_idx next;
12 scene_idx prev;
13} Scene; 9} Scene;