From bd57f345ed9dbed1d81683e48199626de2ea9044 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 27 Jun 2025 10:18:39 -0700 Subject: Restructure project --- src/scene/camera.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/scene/camera.c (limited to 'src/scene/camera.c') 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 @@ +#include "camera_impl.h" + +#include "node_impl.h" +#include "scene_memory.h" + +#include + +SceneCamera* gfx_make_camera() { + SceneCamera* camera = mem_alloc_camera(); + + camera->camera = camera_perspective( + /*fovy=*/90.0 * TO_RAD, /*aspect=*/16.0 / 9.0, + /*near=*/0.1, /*far=*/1000); + + return camera; +} + +void gfx_destroy_camera(SceneCamera** camera) { + assert(camera); + if (*camera) { + if ((*camera)->parent.val) { + gfx_del_node((*camera)->parent); + } + mem_free_camera(camera); + } +} + +void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera) { + assert(scene_camera); + assert(camera); + scene_camera->camera = *camera; +} + +Camera* gfx_get_camera_camera(SceneCamera* camera) { + assert(camera); + return &camera->camera; +} -- cgit v1.2.3