guile-guart/guart/draw.scm

18 lines
539 B
Scheme

(define-module (guart draw)
#:use-module (guart)
#:use-module (guart buffer)
#:use-module (ice-9 match)
#:export (draw-here))
(define* (draw-here ga #:optional (port #f))
(unless port
(set! port (current-output-port)))
(match-let* ((($ <guart> w h draw) ga)
(buf (make-buffer w h))
(okay? (λ (width height rpos cpos) #t))
(blit! (λ (rpos cpos grapheme)
(buffer-set! buf rpos cpos grapheme))))
(draw okay? blit! 0 0)
(write-buffer buf port)))