src/camera.c

changeset 121
ede9a9e92ff9
parent 106
895f92cff6b8
--- 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) {

mercurial