summaryrefslogtreecommitdiff
path: root/examples/framebuffer.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2016-02-10 22:00:02 -0500
committerDavid Thompson <dthompson2@worcester.edu>2016-02-10 22:01:38 -0500
commit4b1370fc286db564e32a8e2e890061bc3ed413ac (patch)
tree35030b58d5634b54018106bfb80a7af89054fdf1 /examples/framebuffer.scm
parent5571463e79247d6cb338a015e5bbf94d4bafde44 (diff)
examples: Update everything to use deferred GL resource loading.
Diffstat (limited to 'examples/framebuffer.scm')
-rw-r--r--examples/framebuffer.scm36
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))