diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/gfx/render/renderer.h | 14 | ||||
| -rw-r--r-- | include/gfx/scene/animation.h | 1 | ||||
| -rw-r--r-- | include/gfx/scene/camera.h | 15 | ||||
| -rw-r--r-- | include/gfx/scene/node.h | 10 |
4 files changed, 16 insertions, 24 deletions
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 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | #include <math/defs.h> | 3 | #include <math/defs.h> |
| 4 | #include <math/fwd.h> | ||
| 4 | 5 | ||
| 5 | typedef struct GfxCore GfxCore; | 6 | typedef struct GfxCore GfxCore; |
| 6 | typedef struct Scene Scene; | 7 | typedef struct Scene Scene; |
| 7 | typedef struct SceneCamera SceneCamera; | ||
| 8 | 8 | ||
| 9 | typedef struct Renderer Renderer; | 9 | typedef struct Renderer Renderer; |
| 10 | 10 | ||
| @@ -17,13 +17,13 @@ typedef enum RenderSceneMode { | |||
| 17 | } RenderSceneMode; | 17 | } RenderSceneMode; |
| 18 | 18 | ||
| 19 | typedef struct RenderSceneParams { | 19 | typedef struct RenderSceneParams { |
| 20 | RenderSceneMode mode; | 20 | RenderSceneMode mode; |
| 21 | const Scene* scene; | 21 | const Scene* scene; |
| 22 | const SceneCamera* camera; | 22 | const Camera* camera; |
| 23 | } RenderSceneParams; | 23 | } RenderSceneParams; |
| 24 | 24 | ||
| 25 | /// Render the scene. | 25 | /// Render the scene. |
| 26 | void gfx_render_scene(Renderer*, const RenderSceneParams*); | 26 | void gfx_render_scene(Renderer*, const RenderSceneParams*); |
| 27 | 27 | ||
| 28 | /// Update the scene. | 28 | /// Update the scene. |
| 29 | void gfx_update(Scene*, const SceneCamera*, R t); | 29 | 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 @@ | |||
| 1 | // TODO: Move outside of scene/ | ||
| 1 | #pragma once | 2 | #pragma once |
| 2 | 3 | ||
| 3 | #include <gfx/sizes.h> | 4 | #include <gfx/sizes.h> |
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 @@ | |||
| 4 | 4 | ||
| 5 | typedef struct SceneNode SceneNode; | 5 | typedef struct SceneNode SceneNode; |
| 6 | 6 | ||
| 7 | typedef struct SceneCamera SceneCamera; | 7 | typedef struct Camera Camera; |
| 8 | 8 | ||
| 9 | /// Create a new camera. | 9 | /// Create a new camera. |
| 10 | SceneCamera* gfx_make_camera(); | 10 | Camera* gfx_make_camera(); |
| 11 | 11 | ||
| 12 | /// Destroy the camera. | 12 | /// Destroy the camera. |
| 13 | /// | 13 | void gfx_destroy_camera(Camera**); |
| 14 | /// The camera is conveniently removed from the scene graph and its parent scene | ||
| 15 | /// node is destroyed. | ||
| 16 | void gfx_destroy_camera(SceneCamera**); | ||
| 17 | |||
| 18 | /// Set the scene camera's math camera. | ||
| 19 | void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera); | ||
| 20 | |||
| 21 | /// Get the scene camera's math camera. | ||
| 22 | Camera* gfx_get_camera_camera(SceneCamera*); | ||
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 @@ | |||
| 4 | #include <math/mat4.h> | 4 | #include <math/mat4.h> |
| 5 | 5 | ||
| 6 | typedef struct Anima Anima; | 6 | typedef struct Anima Anima; |
| 7 | typedef struct Camera Camera; | ||
| 7 | typedef struct Light Light; | 8 | typedef struct Light Light; |
| 8 | typedef struct Model Model; | 9 | typedef struct Model Model; |
| 9 | typedef struct SceneCamera SceneCamera; | ||
| 10 | typedef struct SceneObject SceneObject; | 10 | typedef struct SceneObject SceneObject; |
| 11 | 11 | ||
| 12 | /// Scene node type. | 12 | /// Scene node type. |
| @@ -33,13 +33,13 @@ typedef struct SceneNode SceneNode; | |||
| 33 | /// | 33 | /// |
| 34 | /// This node does not contain any camera, light, object, etc. and exists simply | 34 | /// This node does not contain any camera, light, object, etc. and exists simply |
| 35 | /// as a logical and spatial construct. | 35 | /// as a logical and spatial construct. |
| 36 | SceneNode* gfx_make_node(); | 36 | SceneNode* gfx_make_node(void); |
| 37 | 37 | ||
| 38 | /// Create an anima node. | 38 | /// Create an anima node. |
| 39 | SceneNode* gfx_make_anima_node(Anima*); | 39 | SceneNode* gfx_make_anima_node(Anima*); |
| 40 | 40 | ||
| 41 | /// Create a new camera node. | 41 | /// Create a new camera node. |
| 42 | SceneNode* gfx_make_camera_node(SceneCamera*); | 42 | SceneNode* gfx_make_camera_node(Camera*); |
| 43 | 43 | ||
| 44 | /// Create a new light node. | 44 | /// Create a new light node. |
| 45 | SceneNode* gfx_make_light_node(Light*); | 45 | SceneNode* gfx_make_light_node(Light*); |
| @@ -73,8 +73,8 @@ Anima* gfx_get_node_anima_mut(SceneNode*); | |||
| 73 | /// Get the node's camera. | 73 | /// Get the node's camera. |
| 74 | /// | 74 | /// |
| 75 | /// The node must be of type CameraNode. | 75 | /// The node must be of type CameraNode. |
| 76 | const SceneCamera* gfx_get_node_camera(const SceneNode* node); | 76 | const Camera* gfx_get_node_camera(const SceneNode* node); |
| 77 | SceneCamera* gfx_get_node_camera_mut(SceneNode* node); | 77 | Camera* gfx_get_node_camera_mut(SceneNode* node); |
| 78 | 78 | ||
| 79 | /// Get the node's light. | 79 | /// Get the node's light. |
| 80 | /// | 80 | /// |
