--- a/src/camera.c Tue May 13 20:27:43 2025 +0200 +++ b/src/camera.c Wed May 14 20:14:18 2025 +0200 @@ -26,25 +26,28 @@ */ #include "ascension/error.h" +#include "ascension/context.h" #include "ascension/camera.h" -void asc_camera_init(AscCamera *camera, AscCameraParams params) { - if (params.type == ASC_CAMERA_ORTHO) { - asc_recti rect = params.ortho.rect; +void asc_camera_init_(AscCamera *camera, struct asc_camera_init_args args) { + if (args.type == ASC_CAMERA_ORTHO) { + asc_recti rect = args.ortho.rect; if (rect.size.width <= 0 || rect.size.height <= 0) { rect.size.width = 1; rect.size.height = 1; } asc_camera_ortho(camera, rect); - } else if (params.type == ASC_CAMERA_PERSPECTIVE) { + } else if (args.type == ASC_CAMERA_PERSPECTIVE) { // TODO: implement asc_wprintf("Camera type PERSPECTIVE is not yet implemented."); } else { // at least zero all the bytes (law of the least surprise) memset(camera, 0, sizeof(AscCamera)); } - camera->viewport_update_func = params.viewport_update_func; - camera->projection_update_func = params.projection_update_func; + camera->viewport_update_func = args.viewport_update_func; + camera->projection_update_func = args.projection_update_func; + camera->viewport_clear = args.viewport_clear; + camera->clear_color = asc_col_itof(asc_context.ink); } void asc_camera_ortho(AscCamera *camera, asc_recti rect) {