summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoronelin <oscar@nelin.dk>2026-02-18 22:34:32 +0000
committeronelin <oscar@nelin.dk>2026-02-18 22:41:30 +0000
commit337b98e2f4ee16a7db8b0f3361bd6c3081ca4d00 (patch)
tree092dc8abb4d59539669fc1a83ea06e35aaadc394 /src
parente5548ded0725bcfb5a5af1a1e7650cd15d9b0934 (diff)
Add window as void* to camera resize callback
Diffstat (limited to 'src')
-rw-r--r--src/include/daw/rendering.h6
-rw-r--r--src/include/daw/window.h2
-rw-r--r--src/rendering.c4
-rw-r--r--src/window.c4
4 files changed, 9 insertions, 7 deletions
diff --git a/src/include/daw/rendering.h b/src/include/daw/rendering.h
index 640f104..046141e 100644
--- a/src/include/daw/rendering.h
+++ b/src/include/daw/rendering.h
@@ -319,7 +319,7 @@ typedef struct {
// framebuffer_size_callback is not null, otherwise called with
// the new window size.
// Set to NULL to skip changing the camera size/perspective.
- void (**camera_reset_callback)(Camera*, void *state, ivec2 src);
+ void (**camera_reset_callback)(void* window, Camera*, void *state, ivec2 src);
// glTexture and glRenderBuffer
// Currently, each buffer must be either a texture or a (depth and/or stencil)
@@ -401,8 +401,8 @@ void r_clear_buffer(void *restrict context, RenderTargets *restrict t, u32 frame
//static void r_create_renderbuffers(GladGLContext* restrict ctx, u32* restrict renderbuffer_array, u32* restrict renderbuffer_types, ivec2* restrict renderbuffer_sizes, usize num_targets);
// Callbacks used for framebuffers in rendertargets
-void framebuffer_size_callback_default(ivec3* dst,ivec2 src);
-void camera_reset_callback_default(Camera* dst, void* state, ivec2 src);
+void framebuffer_size_callback_default(ivec3* dst, ivec2 src);
+void camera_reset_callback_default(void* window, Camera* dst, void* state, ivec2 src);
#ifdef __cplusplus
}
diff --git a/src/include/daw/window.h b/src/include/daw/window.h
index 99f6b6c..9e31368 100644
--- a/src/include/daw/window.h
+++ b/src/include/daw/window.h
@@ -118,7 +118,7 @@ void window_init_renderstack(Window *restrict w,
void get_mousepos(double *x, double *y);
void window_get_size(ivec2* dst);
-void window_reset_cameras(Window* w, void* state, RenderTargets* restrict targets);
+void window_reset_cameras(Window *restrict w, void *restrict state, RenderTargets *restrict targets);
#ifdef __cplusplus
}
diff --git a/src/rendering.c b/src/rendering.c
index 9dfc89c..c4d71d8 100644
--- a/src/rendering.c
+++ b/src/rendering.c
@@ -2,6 +2,8 @@
#include <glad/gl.h>
#include <GLFW/glfw3.h>
+// Important wrt. what direction we're favoring when readjusting FOV/cameras.
+// Also makes it more vulkan/metal friendly according to docs?
#define CGLM_FORCE_DEPTH_ZERO_TO_ONE
#include <cglm/cam.h>
#include <cglm/vec2.h>
@@ -986,7 +988,7 @@ void framebuffer_size_callback_default(ivec3* dst, ivec2 src) {
glm_ivec2_copy(src, *dst);
}
-void camera_reset_callback_default(Camera* dst, void* state, ivec2 src) {
+void camera_reset_callback_default(void* _, Camera* dst, void* state, ivec2 src) {
r_reset_camera(dst, src);
}
diff --git a/src/window.c b/src/window.c
index a968eea..2599f53 100644
--- a/src/window.c
+++ b/src/window.c
@@ -68,7 +68,7 @@ Window* Window_new(const struct Platform* p, const char *restrict title, Window_
}
-void window_reset_cameras(Window* w, void* state, RenderTargets* restrict targets) {
+void window_reset_cameras(Window *restrict w, void *restrict state, RenderTargets *restrict targets) {
usize b_ofst = 0;
for (usize i = 0; i < targets->framebuffer_len; i++) {
ivec3 newsz;
@@ -121,7 +121,7 @@ void window_reset_cameras(Window* w, void* state, RenderTargets* restrict target
for (usize i = 0; i < targets->framebuffer_len; i++) {
// Reset camera using callback (if any)
if (targets->camera_reset_callback[i] != NULL) {
- targets->camera_reset_callback[i](targets->cam[i], state, targets->framebuffer_parameters[i].dimensions);
+ targets->camera_reset_callback[i](w, targets->cam[i], state, targets->framebuffer_parameters[i].dimensions);
}
}
}