diff options
Diffstat (limited to 'src/scene/camera.c')
| -rw-r--r-- | src/scene/camera.c | 28 | 
1 files changed, 6 insertions, 22 deletions
| diff --git a/src/scene/camera.c b/src/scene/camera.c index bb073ba..475101d 100644 --- a/src/scene/camera.c +++ b/src/scene/camera.c | |||
| @@ -1,37 +1,21 @@ | |||
| 1 | #include "camera_impl.h" | 1 | #include <gfx/scene/camera.h> | 
| 2 | 2 | ||
| 3 | #include "memory.h" | 3 | #include "memory.h" | 
| 4 | #include "node_impl.h" | ||
| 5 | 4 | ||
| 6 | #include <assert.h> | 5 | #include <assert.h> | 
| 6 | #include <math/camera.h> | ||
| 7 | 7 | ||
| 8 | SceneCamera* gfx_make_camera() { | 8 | Camera* gfx_make_camera() { | 
| 9 | SceneCamera* camera = mem_alloc_camera(); | 9 | Camera* camera = mem_alloc_camera(); | 
| 10 | 10 | *camera = camera_perspective( | |
| 11 | camera->camera = camera_perspective( | ||
| 12 | /*fovy=*/90.0 * TO_RAD, /*aspect=*/16.0 / 9.0, | 11 | /*fovy=*/90.0 * TO_RAD, /*aspect=*/16.0 / 9.0, | 
| 13 | /*near=*/0.1, /*far=*/1000); | 12 | /*near=*/0.1, /*far=*/1000); | 
| 14 | |||
| 15 | return camera; | 13 | return camera; | 
| 16 | } | 14 | } | 
| 17 | 15 | ||
| 18 | void gfx_destroy_camera(SceneCamera** camera) { | 16 | void gfx_destroy_camera(Camera** camera) { | 
| 19 | assert(camera); | 17 | assert(camera); | 
| 20 | if (*camera) { | 18 | if (*camera) { | 
| 21 | if ((*camera)->parent.val) { | ||
| 22 | gfx_del_node((*camera)->parent); | ||
| 23 | } | ||
| 24 | mem_free_camera(camera); | 19 | mem_free_camera(camera); | 
| 25 | } | 20 | } | 
| 26 | } | 21 | } | 
| 27 | |||
| 28 | void gfx_set_camera_camera(SceneCamera* scene_camera, Camera* camera) { | ||
| 29 | assert(scene_camera); | ||
| 30 | assert(camera); | ||
| 31 | scene_camera->camera = *camera; | ||
| 32 | } | ||
| 33 | |||
| 34 | Camera* gfx_get_camera_camera(SceneCamera* camera) { | ||
| 35 | assert(camera); | ||
| 36 | return &camera->camera; | ||
| 37 | } | ||
