From 1e563ee1ec880da452e5047c291b543f64a3a1a5 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sun, 27 Mar 2016 13:28:25 -0400 Subject: [PATCH] Fullscreen support --- examples/platformer/main.rkt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/examples/platformer/main.rkt b/examples/platformer/main.rkt index 1610aec..1cac8c6 100644 --- a/examples/platformer/main.rkt +++ b/examples/platformer/main.rkt @@ -323,7 +323,7 @@ ;; SceneManager (define (spawn-scene-manager) - (struct scene-manager-state (size offset osds) #:prefab) + (struct scene-manager-state (size offset osds fullscreen?) #:prefab) (define backdrop (rectangle 1 1 "solid" "white")) (define (update-window-size s p) @@ -366,9 +366,18 @@ (translate ,(- ofs-x) ,(- ofs-y))) `((translate ,ofs-x ,ofs-y) ,@osd-blocks))))] + [(message (at-meta (key-event #\f _ _))) + (define fullscreen? (not (scene-manager-state-fullscreen? s))) + (let* ((s (struct-copy scene-manager-state s [fullscreen? fullscreen?]))) + (transition s + (patch-seq (retract 'fullscreen #:meta-level 1) + (if fullscreen? + (assert 'fullscreen #:meta-level 1) + patch-empty))))] [_ #f])) - (scene-manager-state (vector 0 0) (vector 0 0) (set)) - (patch-seq (sub (scroll-offset ?)) + (scene-manager-state (vector 0 0) (vector 0 0) (set) #f) + (patch-seq (sub (key-event #\f #t ?) #:meta-level 1) + (sub (scroll-offset ?)) (sub (on-screen-display ? ? ?)) (sub (window ? ?) #:meta-level 1))))