diff options
Diffstat (limited to 'engine.scm')
| -rw-r--r-- | engine.scm | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -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))) |
