summaryrefslogtreecommitdiff
path: root/sdl2
diff options
context:
space:
mode:
Diffstat (limited to 'sdl2')
-rw-r--r--sdl2/bindings.scm3
-rw-r--r--sdl2/render.scm6
2 files changed, 9 insertions, 0 deletions
diff --git a/sdl2/bindings.scm b/sdl2/bindings.scm
index 8d85c63..7f12b45 100644
--- a/sdl2/bindings.scm
+++ b/sdl2/bindings.scm
@@ -321,6 +321,9 @@ RETURN-TYPE and accept arguments of ARG-TYPES."
(define-foreign sdl-get-texture-alpha-mod
int "SDL_GetTextureAlphaMod" '(* *))
+(define-foreign sdl-set-texture-blend-mode
+ int "SDL_SetTextureBlendMode" (list '* int))
+
(define-foreign sdl-set-render-draw-blend-mode
int "SDL_SetRenderDrawBlendMode" (list '* int))
diff --git a/sdl2/render.scm b/sdl2/render.scm
index e12fad1..5c3b9b0 100644
--- a/sdl2/render.scm
+++ b/sdl2/render.scm
@@ -403,6 +403,12 @@ TEXTURE."
(bytevector-uint-ref bv (* 2 (sizeof int)) (native-endianness) (sizeof int))
(bytevector-uint-ref bv (* 3 (sizeof int)) (native-endianness) (sizeof int)))))
+(define (set-texture-blend-mode! texture blend-mode)
+ (unless (zero? (ffi:sdl-set-texture-blend-mode
+ (unwrap-texture texture)
+ ((@@ (sdl2 blend-mode) blend-mode-bitmask) blend-mode)))
+ (sdl-error "set-texure-blend-mode!" "Failed to set texture blend mode")))
+
(define (set-texture-color-mod! texture r g b)
"Get color mod of TEXTURE as a list of the integers."
(unless (zero? (ffi:sdl-set-texture-color-mod (unwrap-texture texture) r g b))