From 440b292c39162284a447b34d3a692143af9fbc87 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Thu, 30 Oct 2025 17:21:22 -0700 Subject: - Replace SceneCamera with Camera. - Remove backpointer from scene types to node to decouple underlying types from the scene graph. --- include/gfx/render/renderer.h | 14 +++++++------- include/gfx/scene/animation.h | 1 + include/gfx/scene/camera.h | 15 +++------------ include/gfx/scene/node.h | 10 +++++----- 4 files changed, 16 insertions(+), 24 deletions(-) (limited to 'include') diff --git a/include/gfx/render/renderer.h b/include/gfx/render/renderer.h index 1da74eb..6cebe50 100644 --- a/include/gfx/render/renderer.h +++ b/include/gfx/render/renderer.h @@ -1,10 +1,10 @@ #pragma once #include +#include -typedef struct GfxCore GfxCore; -typedef struct Scene Scene; -typedef struct SceneCamera SceneCamera; +typedef struct GfxCore GfxCore; +typedef struct Scene Scene; typedef struct Renderer Renderer; @@ -17,13 +17,13 @@ typedef enum RenderSceneMode { } RenderSceneMode; typedef struct RenderSceneParams { - RenderSceneMode mode; - const Scene* scene; - const SceneCamera* camera; + RenderSceneMode mode; + const Scene* scene; + const Camera* camera; } RenderSceneParams; /// Render the scene. void gfx_render_scene(Renderer*, const RenderSceneParams*); /// Update the scene. -void gfx_update(Scene*, const SceneCamera*, R t); +void gfx_update(Scene*, const Camera*, R t); diff --git a/include/gfx/scene/animation.h b/include/gfx/scene/animation.h index b55e575..11d8984 100644 --- a/include/gfx/scene/animation.h +++ b/include/gfx/scene/animation.h @@ -1,3 +1,4 @@ +// TODO: Move outside of scene/ #pragma once #include diff --git a/include/gfx/scene/camera.h b/include/gfx/scene/camera.h index 99d83fe..873f780 100644 --- a/include/gfx/scene/camera.h +++ b/include/gfx/scene/camera.h @@ -4,19 +4,10 @@ typedef struct SceneNode SceneNode; -typedef struct SceneCamera SceneCamera; +typedef struct Camera Camera; /// Create a new camera. -SceneCamera* gfx_make_camera(); +Camera* gfx_make_camera(); /// Destroy the camera. -/// -/// The camera is conveniently removed from the scene graph and its parent scene -/// node is destroyed. -void gfx_destroy_camera(SceneCamera**); - -/// Set the scene camera's math camera. -void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera); - -/// Get the scene camera's math camera. -Camera* gfx_get_camera_camera(SceneCamera*); +void gfx_destroy_camera(Camera**); diff --git a/include/gfx/scene/node.h b/include/gfx/scene/node.h index 20b97e2..215bbda 100644 --- a/include/gfx/scene/node.h +++ b/include/gfx/scene/node.h @@ -4,9 +4,9 @@ #include typedef struct Anima Anima; +typedef struct Camera Camera; typedef struct Light Light; typedef struct Model Model; -typedef struct SceneCamera SceneCamera; typedef struct SceneObject SceneObject; /// Scene node type. @@ -33,13 +33,13 @@ typedef struct SceneNode SceneNode; /// /// This node does not contain any camera, light, object, etc. and exists simply /// as a logical and spatial construct. -SceneNode* gfx_make_node(); +SceneNode* gfx_make_node(void); /// Create an anima node. SceneNode* gfx_make_anima_node(Anima*); /// Create a new camera node. -SceneNode* gfx_make_camera_node(SceneCamera*); +SceneNode* gfx_make_camera_node(Camera*); /// Create a new light node. SceneNode* gfx_make_light_node(Light*); @@ -73,8 +73,8 @@ Anima* gfx_get_node_anima_mut(SceneNode*); /// Get the node's camera. /// /// The node must be of type CameraNode. -const SceneCamera* gfx_get_node_camera(const SceneNode* node); -SceneCamera* gfx_get_node_camera_mut(SceneNode* node); +const Camera* gfx_get_node_camera(const SceneNode* node); +Camera* gfx_get_node_camera_mut(SceneNode* node); /// Get the node's light. /// -- cgit v1.2.3