summaryrefslogtreecommitdiff
path: root/sdl2/render.scm
diff options
context:
space:
mode:
authorPierre-Antoine Rouby <contact@parouby.fr>2019-05-20 18:03:18 +0200
committerDavid Thompson <dthompson@vistahigherlearning.com>2019-05-21 08:05:35 -0400
commit13ed39d65ed2637973c64303e8b90c3eac1b550e (patch)
tree8016c92c9d95402358a5bdd4558b3e432ca76257 /sdl2/render.scm
parent4b2c190732b9022e7546c5d2724a82905b6555ee (diff)
render: Add SDL_RenderCopyEx binding.
* sdl2/bindings.scm (sdl-point): New variable. (sdl-render-copy-ex): New procedure. * sdl2/render.scm (render-copy): Add optional arguments, angle and center. * doc/api.texi (Rendering): Document it.
Diffstat (limited to 'sdl2/render.scm')
-rw-r--r--sdl2/render.scm26
1 files changed, 17 insertions, 9 deletions
diff --git a/sdl2/render.scm b/sdl2/render.scm
index e2fb05c..c91699d 100644
--- a/sdl2/render.scm
+++ b/sdl2/render.scm
@@ -127,15 +127,23 @@ color."
(sdl-error "surface->texture" "failed to convert surface to texture")
(wrap-texture ptr))))
-(define* (render-copy renderer texture #:key srcrect dstrect)
+
+(define* (render-copy renderer texture
+ #:key (angle 0) srcrect dstrect center)
"Copy TEXTURE to the rendering target of RENDERER."
- (let ((result (ffi:sdl-render-copy (unwrap-renderer renderer)
- (unwrap-texture texture)
- (if srcrect
- (make-c-struct ffi:sdl-rect srcrect)
- %null-pointer)
- (if dstrect
- (make-c-struct ffi:sdl-rect dstrect)
- %null-pointer))))
+ (let ((result (ffi:sdl-render-copy-ex
+ (unwrap-renderer renderer)
+ (unwrap-texture texture)
+ (if srcrect
+ (make-c-struct ffi:sdl-rect srcrect)
+ %null-pointer)
+ (if dstrect
+ (make-c-struct ffi:sdl-rect dstrect)
+ %null-pointer)
+ angle
+ (if center
+ (make-c-struct ffi:sdl-point center)
+ %null-pointer)
+ 0)))
(unless (zero? result)
(sdl-error "render-copy" "failed to copy texture"))))