diff options
author | David Thompson <dthompson2@worcester.edu> | 2016-02-10 22:00:02 -0500 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2016-02-10 22:01:38 -0500 |
commit | 4b1370fc286db564e32a8e2e890061bc3ed413ac (patch) | |
tree | 35030b58d5634b54018106bfb80a7af89054fdf1 /examples/framebuffer.scm | |
parent | 5571463e79247d6cb338a015e5bbf94d4bafde44 (diff) |
examples: Update everything to use deferred GL resource loading.
Diffstat (limited to 'examples/framebuffer.scm')
-rw-r--r-- | examples/framebuffer.scm | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/examples/framebuffer.scm b/examples/framebuffer.scm index 894cbc3..50c65e8 100644 --- a/examples/framebuffer.scm +++ b/examples/framebuffer.scm @@ -31,30 +31,36 @@ (load "common.scm") -(define framebuffer - (make-framebuffer 320 240)) - (define inner-camera (2d-camera #:area (make-rect 0 0 320 240))) (define outer-camera (2d-camera #:area (make-rect 0 0 640 480))) -(define inner-sprite - (load-sprite "images/p1_front.png")) +(define-signal framebuffer + (on-start (make-framebuffer 320 240))) + +(define-signal outer-sprite + (signal-map-maybe (lambda (framebuffer) + (make-sprite (framebuffer-texture framebuffer) + #:anchor 'bottom-left)) + framebuffer)) -(define outer-sprite - (make-sprite (framebuffer-texture framebuffer) - #:anchor 'bottom-left)) +(define-signal player-sprite + (on-start (load-sprite "images/p1_front.png"))) (define-signal scene - (render-begin - (with-framebuffer framebuffer - (with-camera inner-camera - (move (vector2 160 120) - (render-sprite inner-sprite)))) - (with-camera outer-camera - (scale 2 (render-sprite outer-sprite))))) + (signal-let ((framebuffer framebuffer) + (outer-sprite outer-sprite) + (inner-sprite player-sprite)) + (if (and framebuffer outer-sprite inner-sprite) + (render-begin + (with-framebuffer framebuffer + (with-camera inner-camera + (move (vector2 160 120) (render-sprite inner-sprite)))) + (with-camera outer-camera + (scale 2 (render-sprite outer-sprite)))) + render-nothing))) (with-window (make-window #:title "Simple Sprite Demo") (run-game-loop scene)) |