summaryrefslogtreecommitdiff
path: root/src/rendering/include/engine
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-02-13 09:22:47 +0000
committer0scar <qgt268@alumni.ku.dk>2024-02-13 09:22:47 +0000
commitd7c92c74dc40fede3b2dae24abac55852f20ca9c (patch)
treeae356b8f1529f475327383170d7f53913cdb64ea /src/rendering/include/engine
parent137b122f68b76854af309dd3b7c60d31968108d0 (diff)
Automatically fix ratio
Diffstat (limited to 'src/rendering/include/engine')
-rw-r--r--src/rendering/include/engine/rendering/rendering.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h
index bc9e07a..2940490 100644
--- a/src/rendering/include/engine/rendering/rendering.h
+++ b/src/rendering/include/engine/rendering/rendering.h
@@ -60,12 +60,27 @@ typedef struct {
u32 mvp;
} RenderObject;
+typedef enum {
+ Camera_Perspective,
+ Camera_Orthogonal,
+} CameraType;
+
typedef struct {
/* Position of the camera in world-space. */
vec3 pos;
/* Perspective matrix. Initialize with r_perspective_ortho or r_perspective. */
/* Alternatively, use `glm_perspective` or `glm_ortho`. */
mat4 per;
+
+ /* Used to re-calculate the perspective matrix when resizing the window */
+ CameraType type;
+ /* Yes, could use a singular "f32 arg", but this is more extendable in the
+ * future. */
+ union {
+ struct {f32 fov;} perspective;
+ struct {f32 sz;} orthogonal;
+ } parameters;
+
} Camera;
/* Rendering functions */
@@ -75,8 +90,8 @@ void drawcall_reset(void);
void render(Window* w);
/* Misc */
-void r_perspective(f32 ratio, f32 fov, Camera *c);
-void r_perspective_ortho(f32 ratio, f32 sz, Camera *c);
+void r_perspective(f32 fov, Camera *c);
+void r_perspective_ortho(f32 sz, Camera *c);
void r_set_camera(Camera* c);