diff options
author | 3gg <3gg@shellblade.net> | 2025-06-29 11:12:56 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-06-29 11:12:56 -0700 |
commit | 8d116c7a402ca413fd12e64406ef27da8f5e6526 (patch) | |
tree | 8671e09a20f2eb50c73d07df770f4b13b994a976 /src/scene/scene_graph.h | |
parent | e635d8c15c61f19c053b48e93298df9d797dabdd (diff) |
Fix some warnings in Release
Diffstat (limited to 'src/scene/scene_graph.h')
-rw-r--r-- | src/scene/scene_graph.h | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/src/scene/scene_graph.h b/src/scene/scene_graph.h index a26f828..0b1f7d0 100644 --- a/src/scene/scene_graph.h +++ b/src/scene/scene_graph.h | |||
@@ -6,35 +6,41 @@ | |||
6 | // NOTE: SceneMemory guarantees that index 0 can be regarded as an invalid | 6 | // NOTE: SceneMemory guarantees that index 0 can be regarded as an invalid |
7 | // index. | 7 | // index. |
8 | 8 | ||
9 | #define MEM_GET(INDEX) \ | 9 | #define MEM_GET(INDEX) \ |
10 | _Generic((INDEX), camera_idx \ | 10 | _Generic( \ |
11 | : mem_get_camera, material_idx \ | 11 | (INDEX), \ |
12 | : mem_get_material, mesh_idx \ | 12 | camera_idx: mem_get_camera, \ |
13 | : mem_get_mesh, mesh_link_idx \ | 13 | material_idx: mem_get_material, \ |
14 | : mem_get_mesh_link, node_idx \ | 14 | mesh_idx: mem_get_mesh, \ |
15 | : mem_get_node, object_idx \ | 15 | mesh_link_idx: mem_get_mesh_link, \ |
16 | : mem_get_object, scene_idx \ | 16 | node_idx: mem_get_node, \ |
17 | : mem_get_scene)(INDEX) | 17 | object_idx: mem_get_object, \ |
18 | scene_idx: mem_get_scene)(INDEX) | ||
18 | 19 | ||
19 | #define MEM_GET_INDEX(ITEM) \ | 20 | #define MEM_GET_INDEX(ITEM) \ |
20 | _Generic((ITEM), SceneCamera * \ | 21 | _Generic( \ |
21 | : mem_get_camera_index, Material * \ | 22 | (ITEM), \ |
22 | : mem_get_material_index, Mesh * \ | 23 | SceneCamera *: mem_get_camera_index, \ |
23 | : mem_get_mesh_index, MeshLink * \ | 24 | Material *: mem_get_material_index, \ |
24 | : mem_get_mesh_link_index, SceneNode * \ | 25 | Mesh *: mem_get_mesh_index, \ |
25 | : mem_get_node_index, SceneObject * \ | 26 | MeshLink *: mem_get_mesh_link_index, \ |
26 | : mem_get_object_index, Scene * \ | 27 | SceneNode *: mem_get_node_index, \ |
27 | : mem_get_scene_index)(ITEM) | 28 | SceneObject *: mem_get_object_index, \ |
29 | Scene *: mem_get_scene_index)(ITEM) | ||
28 | 30 | ||
29 | /// Assert the list node invariant. | 31 | /// Assert the list node invariant. |
30 | /// | 32 | /// |
31 | /// - A node does not point to itself. | 33 | /// - A node does not point to itself. |
34 | #if NDEBUG | ||
35 | #define ASSERT_LIST_NODE_INVARIANT(ITEM) | ||
36 | #else | ||
32 | #define ASSERT_LIST_NODE_INVARIANT(ITEM) \ | 37 | #define ASSERT_LIST_NODE_INVARIANT(ITEM) \ |
33 | { \ | 38 | { \ |
34 | const gfx_idx item_idx = MEM_GET_INDEX(ITEM).val; \ | 39 | const gfx_idx item_idx = MEM_GET_INDEX(ITEM).val; \ |
35 | assert((ITEM)->prev.val != item_idx); \ | 40 | assert((ITEM)->prev.val != item_idx); \ |
36 | assert((ITEM)->next.val != item_idx); \ | 41 | assert((ITEM)->next.val != item_idx); \ |
37 | } | 42 | } |
43 | #endif | ||
38 | 44 | ||
39 | /// Assert the tree node invariant. | 45 | /// Assert the tree node invariant. |
40 | /// | 46 | /// |