X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=gacela%2Fgame.scm;h=dad04126bbd1812ea0ef7b92f4810fb49d33ab9f;hp=0b0981dec6ed25eff1565991e78c6e4727644392;hb=f3487d80c29eb9a6ecc23686c5010bffb364af22;hpb=175c9f81e24f9cb82e2d28ce9460f471d390b9fd diff --git a/gacela/game.scm b/gacela/game.scm index 0b0981d..dad0412 100644 --- a/gacela/game.scm +++ b/gacela/game.scm @@ -23,7 +23,8 @@ #:use-module ((sdl2 video) #:prefix sdl2:) #:use-module (gl) #:use-module (srfi srfi-11) - #:export (run-game-loop)) + #:export (play-game + %sdl-renderer)) ;;; Based on Sly code. Thank you so much!! @@ -117,8 +118,6 @@ milliseconds of the last iteration of the game loop." (lambda (signum) (stop-game-loop))) (set! %root-scene scene) - (init-window) - (open-window) (game-loop (sdl2:sdl-ticks) 0)) (lambda (cont callback) (when (procedure? callback) @@ -129,11 +128,13 @@ milliseconds of the last iteration of the game loop." (abort-to-prompt 'game-loop-prompt #f)) (define %sdl-window #f) +(define %sdl-renderer #f) (define %gl-context #f) (define (init-window) (sdl2:sdl-init) (set! %sdl-window (sdl2:make-window #:opengl? #t #:show? #t)) + (set! %sdl-renderer (sdl2:make-renderer %sdl-window)) (sdl2:set-gl-attribute! 'context-major-version 3) (sdl2:set-gl-attribute! 'context-minor-version 2) (sdl2:set-gl-attribute! 'double-buffer 1) @@ -146,3 +147,13 @@ milliseconds of the last iteration of the game loop." (sdl2:set-window-size! %sdl-window resolution) (sdl2:set-window-fullscreen! %sdl-window fullscreen?) (sdl2:show-window! %sdl-window)) + +(define (close-window) + (sdl2:hide-window! %sdl-window) + (sdl2:sdl-quit)) + +(define (play-game scene) + (init-window) + (open-window) + (run-game-loop scene) + (close-window))