summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/api.texi4
-rw-r--r--sdl2/bindings.scm3
-rw-r--r--sdl2/render.scm4
3 files changed, 11 insertions, 0 deletions
diff --git a/doc/api.texi b/doc/api.texi
index 00fe3a8..0a154ae 100644
--- a/doc/api.texi
+++ b/doc/api.texi
@@ -1070,6 +1070,10 @@ of @var{renderer}.
Convert @var{surface} to a texture suitable for @var{renderer}.
@end deffn
+@deffn {Procedure} delete-texture! texture
+Free the memory used by @var{texture}.
+@end deffn
+
@node Images
@section Images
diff --git a/sdl2/bindings.scm b/sdl2/bindings.scm
index e81abf7..c382a45 100644
--- a/sdl2/bindings.scm
+++ b/sdl2/bindings.scm
@@ -243,6 +243,9 @@ RETURN-TYPE and accept arguments of ARG-TYPES."
(define-foreign sdl-create-texture-from-surface
'* "SDL_CreateTextureFromSurface" '(* *))
+(define-foreign sdl-destroy-texture
+ void "SDL_DestroyTexture" '(*))
+
(define-foreign sdl-set-render-draw-color
int "SDL_SetRenderDrawColor" (list '* uint8 uint8 uint8 uint8))
diff --git a/sdl2/render.scm b/sdl2/render.scm
index 9e4bf57..187c650 100644
--- a/sdl2/render.scm
+++ b/sdl2/render.scm
@@ -41,6 +41,7 @@
render-draw-line
render-draw-point
+ destroy-texture!
surface->texture))
@@ -138,6 +139,9 @@ color."
(sdl-error "surface->texture" "failed to convert surface to texture")
(wrap-texture ptr))))
+(define (delete-texture! texture)
+ "Free the memory used by TEXTURE."
+ (ffi:sdl-destroy-texture (unwrap-texture texture)))
(define* (render-copy renderer texture
#:key (angle 0) srcrect dstrect center)