X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela%2Fimage.scm;h=278a7d767846db11e4a92af2d6fe3f7769593cfb;hb=e1e0e1c4a98a9b27391eeef40dea40a59d983710;hp=40d407560a0b4a06e2aa2f26087569e3dd98a215;hpb=8f33c32a7b23d245493f0879d181ab6661d64a2d;p=gacela.git diff --git a/gacela/image.scm b/gacela/image.scm index 40d4075..278a7d7 100644 --- a/gacela/image.scm +++ b/gacela/image.scm @@ -23,17 +23,18 @@ #:use-module ((sdl2 render) #:prefix sdl2:) #:use-module ((sdl2 surface) #:prefix sdl2:) #:use-module (gl) - #:export (bitmap - move-xy)) + #:export (image + move-xy + scale)) -(define (bitmap filename) +(define (image filename) (make-scene - "bitmap" + "image" (let ((image (sdl2:load-image filename)) (texture #f) (w/2 0) (h/2 0)) - (lambda* () + (lambda () (when (not texture) (set! texture (sdl2:surface->texture %sdl-renderer image)) (set! w/2 (/ (sdl2:surface-width image) 2)) @@ -60,3 +61,10 @@ (let ((xy (list (to-integer (if (procedure? x) (x) x)) (to-integer (if (procedure? y) (y) y))))) (display-scene scene #:xy xy))))) + +(define* (scale scene x #:optional (y x) (z y)) + (make-scene + "scale" + (lambda () + (gl-scale x y z) + (display-scene scene))))