diff options
| author | Gene Pasquet <dev@etenil.net> | 2025-06-21 02:32:19 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2025-06-21 02:32:19 +0100 |
| commit | 8937277a79cc5a24b406cf15f411992ac2e7241f (patch) | |
| tree | da70474d6050869d6cea0d3f83084794f9747be4 | |
| parent | 4e88ef4a3fcf641afe7580d7810302e4ba44e740 (diff) | |
Display a SDL window
| -rw-r--r-- | src/game.scm | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/game.scm b/src/game.scm index ad4f800..28211e9 100644 --- a/src/game.scm +++ b/src/game.scm @@ -1,7 +1,11 @@ (import scheme + (chicken base) (chicken format) (chicken process-context) (chicken condition) + (chicken pretty-print) + (srfi 1) + miscmacros (prefix sdl2 "sdl2:") (prefix sdl2-ttf "ttf:") (prefix sdl2-image "img:")) @@ -11,8 +15,8 @@ (define +screen-height+ 400) (define *fullscreen?* #f) (define +background-color+ (sdl2:make-color 0 0 0)) -(define +software-mode?+ (member "-software" (command-line-arguments))) -(define +vsync?+ (member "-vsync" (command-line-arguments))) +(define +software-mode?+ (member "--software" (command-line-arguments))) +(define +vsync?+ (member "--vsync" (command-line-arguments))) (sdl2:set-main-ready!) (sdl2:init! '(video)) @@ -32,7 +36,7 @@ (if (and +vsync?+ (not +software-mode?+)) ; vsync doesn't work with software rendering (sdl2:set-hint! 'render-vsync "1")) -(define *window* (sdl2:create-window! "Magnetic Trek" +(define *window* (sdl2:create-window! "Mackerel Knight" 'centered 'centered +screen-width+ +screen-height+ (if *fullscreen?* '(fullscreen) '()))) @@ -45,6 +49,24 @@ (set! (sdl2:render-draw-color *renderer*) +background-color+) (sdl2:render-clear! *renderer*) +(let/cc exit-main-loop! + (while #t + (set! (sdl2:render-draw-color *renderer*) +background-color+) + (sdl2:render-clear! *renderer*) + (sdl2:pump-events!) + (while (sdl2:has-events?) + (let ((event (sdl2:make-event))) + (sdl2:poll-event! event) + (pp event) + (when (and (sdl2:keyboard-event? event) + (eq? (sdl2:event-type event) 'key-down) + (eq? (sdl2:keyboard-event-sym event) 'escape)) + (exit-main-loop!)))) + + (sdl2:render-present! *renderer*) + + (sdl2:delay! 10))) + (format #t "chicken env: ~a" (get-environment-variable "CHICKEN_ENV")) (format #t "hello world") |
