aboutsummaryrefslogtreecommitdiff
path: root/renderer.scm
diff options
context:
space:
mode:
Diffstat (limited to 'renderer.scm')
-rw-r--r--renderer.scm24
1 files changed, 13 insertions, 11 deletions
diff --git a/renderer.scm b/renderer.scm
index b048bad..48698f7 100644
--- a/renderer.scm
+++ b/renderer.scm
@@ -121,9 +121,11 @@
;; #:color is (r g b) or (r g b a); used when no tile sprite is drawn.
(define (draw-entity renderer camera tileset tileset-texture entity)
- (let ((tile-id (entity-ref entity #:tile-id #f))
- (color (entity-ref entity #:color #f)))
- (cond
+ (if (entity-ref entity #:skip-render #f)
+ (void)
+ (let ((tile-id (entity-ref entity #:tile-id #f))
+ (color (entity-ref entity #:color #f)))
+ (cond
((and tile-id tileset tileset-texture)
(sdl2:render-copy-ex! renderer tileset-texture
(tile-rect (tileset-tile tileset tile-id))
@@ -131,14 +133,14 @@
0.0
#f
(entity-flip entity)))
- ((and (list? color) (>= (length color) 3))
- (let ((r (list-ref color 0))
- (g (list-ref color 1))
- (b (list-ref color 2))
- (a (if (>= (length color) 4) (list-ref color 3) 255)))
- (set! (sdl2:render-draw-color renderer) (sdl2:make-color r g b a))
- (sdl2:render-fill-rect! renderer (entity->screen-rect entity camera))))
- (else #f))))
+ ((and (list? color) (>= (length color) 3))
+ (let ((r (list-ref color 0))
+ (g (list-ref color 1))
+ (b (list-ref color 2))
+ (a (if (>= (length color) 4) (list-ref color 3) 255)))
+ (set! (sdl2:render-draw-color renderer) (sdl2:make-color r g b a))
+ (sdl2:render-fill-rect! renderer (entity->screen-rect entity camera))))
+ (else #f)))))
(define (draw-entities renderer camera tileset tileset-texture entities)
(for-each