aboutsummaryrefslogtreecommitdiff
path: root/src/scene/camera.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-06-27 10:18:39 -0700
committer3gg <3gg@shellblade.net>2025-06-27 10:18:39 -0700
commitbd57f345ed9dbed1d81683e48199626de2ea9044 (patch)
tree4221f2f2a7ad2244d2e93052bd68187ec91b8ea9 /src/scene/camera.c
parent9a82ce0083437a4f9f58108b2c23b957d2249ad8 (diff)
Restructure projectHEADmain
Diffstat (limited to 'src/scene/camera.c')
-rw-r--r--src/scene/camera.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/scene/camera.c b/src/scene/camera.c
new file mode 100644
index 0000000..be7d806
--- /dev/null
+++ b/src/scene/camera.c
@@ -0,0 +1,37 @@
1#include "camera_impl.h"
2
3#include "node_impl.h"
4#include "scene_memory.h"
5
6#include <assert.h>
7
8SceneCamera* gfx_make_camera() {
9 SceneCamera* camera = mem_alloc_camera();
10
11 camera->camera = camera_perspective(
12 /*fovy=*/90.0 * TO_RAD, /*aspect=*/16.0 / 9.0,
13 /*near=*/0.1, /*far=*/1000);
14
15 return camera;
16}
17
18void gfx_destroy_camera(SceneCamera** camera) {
19 assert(camera);
20 if (*camera) {
21 if ((*camera)->parent.val) {
22 gfx_del_node((*camera)->parent);
23 }
24 mem_free_camera(camera);
25 }
26}
27
28void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera) {
29 assert(scene_camera);
30 assert(camera);
31 scene_camera->camera = *camera;
32}
33
34Camera* gfx_get_camera_camera(SceneCamera* camera) {
35 assert(camera);
36 return &camera->camera;
37}