summaryrefslogtreecommitdiff
path: root/src/camera.c
diff options
context:
space:
mode:
authorConnor Thomson <blumatrikz@gmail.com>2026-09-11 08:12:59 -0700
committerConnor Thomson <blumatrikz@gmail.com>2026-09-11 08:12:59 -0700
commit307151fb8615a9d0ae80f3827d9c028313a40912 (patch)
treefa03f6262eac90d36b9fbf584b5c10ac692afaea /src/camera.c
parent6d5e4308a2ab0ceee2b9311afc92ba449ff81a45 (diff)
Add fov control and change fov
Diffstat (limited to 'src/camera.c')
-rw-r--r--src/camera.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/camera.c b/src/camera.c
index 2d3c468..8aafd14 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -24,9 +24,10 @@
ta_camera ta_camera_current;
float ta_camera_sensitivity = 0.0025f;
+float ta_camera_fov = 60.0f;
void ta_camera_init(void) {
- ta_camera_current = (ta_camera){ 0.0f, 0.0f, 5.0f, 0.0f, 0.0f };
+ ta_camera_current = (ta_camera){ 0.0f, 0.0f, 5.0f, 0.0f, 0.0f, ta_camera_fov };
}
void ta_camera_update(void) {
@@ -42,6 +43,16 @@ void ta_camera_update(void) {
}
}
+void ta_camera_set_fov(float delta_degrees) {
+ ta_camera_current.fov += delta_degrees;
+
+ if (ta_camera_current.fov < 20.0f) {
+ ta_camera_current.fov = 20.0f;
+ } else if (ta_camera_current.fov > 120.0f) {
+ ta_camera_current.fov = 120.0f;
+ }
+}
+
void ta_camera_get_view_matrix(float *matrix) {
float yaw_cosine = cosf(ta_camera_current.yaw);
float yaw_sine = sinf(ta_camera_current.yaw);