diff -r bfd15f5a3948 -r b47de42f4598 src/camera.c --- a/src/camera.c Sat Aug 09 14:36:39 2025 +0200 +++ b/src/camera.c Tue Aug 12 21:04:59 2025 +0200 @@ -62,3 +62,15 @@ void asc_camera_ortho_update_size(AscCamera *camera, asc_vec2u size) { asc_mat4f_ortho_update_size(camera->projection, (float)size.width, (float)size.height); } + +void asc_camera_update_viewport(AscCamera *camera, asc_vec2u window_size) { + if (camera->viewport_update_func == NULL) { + // this assumes the viewport was initialized with zeros! + camera->viewport.size = window_size; + } else { + camera->viewport = camera->viewport_update_func(window_size); + } + if (camera->projection_update_func != NULL) { + camera->projection_update_func(camera, window_size); + } +}