From d7c92c74dc40fede3b2dae24abac55852f20ca9c Mon Sep 17 00:00:00 2001 From: 0scar Date: Tue, 13 Feb 2024 10:22:47 +0100 Subject: Automatically fix ratio --- src/rendering/include/engine/rendering/rendering.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/rendering/include') 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); -- cgit v1.3