aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2021-12-11 12:58:26 +0100
committerDrew DeVault <sir@cmpwn.com>2021-12-11 12:58:26 +0100
commitb7bb74caa20dbb85ae22da8d74f0b8f2e657f5ad (patch)
tree40b6d978b8dafe9a93488467bd0062657820beeb
parentAdd SetTextureAlphaMod wrapper (diff)
downloadhare-chip8-b7bb74caa20dbb85ae22da8d74f0b8f2e657f5ad.tar.gz
Add blend modes
-rw-r--r--sdl2/blendmode.ha11
-rw-r--r--sdl2/render.ha11
2 files changed, 22 insertions, 0 deletions
diff --git a/sdl2/blendmode.ha b/sdl2/blendmode.ha
new file mode 100644
index 0000000..a32e537
--- /dev/null
+++ b/sdl2/blendmode.ha
@@ -0,0 +1,11 @@
+// TODO: Flesh me out
+
+// The blend mode used in SDL_RenderCopy() and drawing operations.
+export type blend_mode = enum {
+ NONE = 0x00000000,
+ BLEND = 0x00000001,
+ ADD = 0x00000002,
+ MOD = 0x00000004,
+ MUL = 0x00000008,
+ INVALID = 0x7FFFFFFF
+};
diff --git a/sdl2/render.ha b/sdl2/render.ha
index 0bba541..19c3940 100644
--- a/sdl2/render.ha
+++ b/sdl2/render.ha
@@ -139,6 +139,17 @@ export fn set_texture_alpha_mod(texture: *texture, a: u8) (void | error) = {
return wrapvoid(_set_texture_alpha_mod(texture, a));
};
+@symbol("SDL_SetTextureBlendMode") fn _set_texture_blend_mode(
+ texture: *texture, mode: blend_mode) int;
+
+// Set the blend mode for a texture, used by SDL_RenderCopy().
+export fn set_texture_blend_mode(
+ texture: *texture,
+ mode: blend_mode,
+) (void | error) = {
+ return wrapvoid(_set_texture_blend_mode(texture, mode));
+};
+
@symbol("SDL_RenderCopy") fn _render_copy(renderer: *renderer,
texture: *texture, srcrect: nullable *rect, dstrect: nullable *rect) int;