summaryrefslogtreecommitdiff
path: root/src/engine/M_camera.c
diff options
context:
space:
mode:
authorDrNuget <drnuget@outlook.com>2026-01-07 04:58:54 +0200
committerDrNuget <drnuget@outlook.com>2026-01-07 04:58:54 +0200
commit7f3aa1cff755d21d972457b05c140cf465b9fa19 (patch)
tree748b74a65d71ead9d0d7ade533074c5a643076d7 /src/engine/M_camera.c
parent67592a66dd9bcc4d79d23624a9abfd8f2c6e92ff (diff)
downloadmnm-7f3aa1cff755d21d972457b05c140cf465b9fa19.tar.gz
some basic 3D rendering and the base for chunk generation etc.
Diffstat (limited to 'src/engine/M_camera.c')
-rw-r--r--src/engine/M_camera.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/M_camera.c b/src/engine/M_camera.c
new file mode 100644
index 0000000..58414a7
--- /dev/null
+++ b/src/engine/M_camera.c
@@ -0,0 +1,30 @@
+#include "M_camera.h"
+
+void M_initCamera(M_Camera *camera, vec3 up)
+{
+ glm_vec3_zero(camera->pos);
+ glm_vec3_copy(
+ up,
+ camera->up
+ );
+ glm_vec3_copy(
+ (vec3){0.0f, 0.0f, -1.0f},
+ camera->direction
+ );
+}
+
+inline void M_cameraViewMatrix(M_Camera* camera)
+{
+ vec3 target;
+ glm_vec3_add(
+ camera->pos,
+ camera->direction,
+ target
+ );
+ glm_lookat(
+ camera->pos,
+ target,
+ camera->up,
+ camera->view_matrix
+ );
+}