aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/gfx/render/renderer.h14
-rw-r--r--include/gfx/scene/animation.h1
-rw-r--r--include/gfx/scene/camera.h15
-rw-r--r--include/gfx/scene/node.h10
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
5typedef struct GfxCore GfxCore; 6typedef struct GfxCore GfxCore;
6typedef struct Scene Scene; 7typedef struct Scene Scene;
7typedef struct SceneCamera SceneCamera;
8 8
9typedef struct Renderer Renderer; 9typedef struct Renderer Renderer;
10 10
@@ -17,13 +17,13 @@ typedef enum RenderSceneMode {
17} RenderSceneMode; 17} RenderSceneMode;
18 18
19typedef struct RenderSceneParams { 19typedef 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.
26void gfx_render_scene(Renderer*, const RenderSceneParams*); 26void gfx_render_scene(Renderer*, const RenderSceneParams*);
27 27
28/// Update the scene. 28/// Update the scene.
29void gfx_update(Scene*, const SceneCamera*, R t); 29void 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
5typedef struct SceneNode SceneNode; 5typedef struct SceneNode SceneNode;
6 6
7typedef struct SceneCamera SceneCamera; 7typedef struct Camera Camera;
8 8
9/// Create a new camera. 9/// Create a new camera.
10SceneCamera* gfx_make_camera(); 10Camera* gfx_make_camera();
11 11
12/// Destroy the camera. 12/// Destroy the camera.
13/// 13void gfx_destroy_camera(Camera**);
14/// The camera is conveniently removed from the scene graph and its parent scene
15/// node is destroyed.
16void gfx_destroy_camera(SceneCamera**);
17
18/// Set the scene camera's math camera.
19void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera);
20
21/// Get the scene camera's math camera.
22Camera* 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
6typedef struct Anima Anima; 6typedef struct Anima Anima;
7typedef struct Camera Camera;
7typedef struct Light Light; 8typedef struct Light Light;
8typedef struct Model Model; 9typedef struct Model Model;
9typedef struct SceneCamera SceneCamera;
10typedef struct SceneObject SceneObject; 10typedef 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.
36SceneNode* gfx_make_node(); 36SceneNode* gfx_make_node(void);
37 37
38/// Create an anima node. 38/// Create an anima node.
39SceneNode* gfx_make_anima_node(Anima*); 39SceneNode* gfx_make_anima_node(Anima*);
40 40
41/// Create a new camera node. 41/// Create a new camera node.
42SceneNode* gfx_make_camera_node(SceneCamera*); 42SceneNode* gfx_make_camera_node(Camera*);
43 43
44/// Create a new light node. 44/// Create a new light node.
45SceneNode* gfx_make_light_node(Light*); 45SceneNode* 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.
76const SceneCamera* gfx_get_node_camera(const SceneNode* node); 76const Camera* gfx_get_node_camera(const SceneNode* node);
77SceneCamera* gfx_get_node_camera_mut(SceneNode* node); 77Camera* gfx_get_node_camera_mut(SceneNode* node);
78 78
79/// Get the node's light. 79/// Get the node's light.
80/// 80///