From 19a5db8606a82830a5ccd0ed46d8e0cf3c95db0a Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Tue, 7 Apr 2026 23:36:12 +0100 Subject: Work on demos --- engine.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'engine.scm') diff --git a/engine.scm b/engine.scm index 0318616..38ebfed 100644 --- a/engine.scm +++ b/engine.scm @@ -99,6 +99,17 @@ (create (state-hook state #:create))) (when create (create game)))) +;; Set renderer draw color for SDL_RenderClear (called every frame before clear). +(define (renderer-set-clear-color! renderer scene) + (let ((bg (and scene (scene-background scene)))) + (if (and (list? bg) (>= (length bg) 3)) + (let ((r (list-ref bg 0)) + (g (list-ref bg 1)) + (b (list-ref bg 2)) + (a (if (>= (length bg) 4) (list-ref bg 3) 255))) + (set! (sdl2:render-draw-color renderer) (sdl2:make-color r g b a))) + (set! (sdl2:render-draw-color renderer) (sdl2:make-color 0 0 0 255))))) + ;; ── game-run! ────────────────────────────────────────────────────────────── ;; Main event loop and lifecycle orchestration @@ -167,6 +178,7 @@ target (game-width game) (game-height game))))))) + (renderer-set-clear-color! (game-renderer game) (game-scene game)) (sdl2:render-clear! (game-renderer game)) (when (game-scene game) (render-scene! (game-renderer game) (game-scene game))) -- cgit v1.2.3