From b7bb74caa20dbb85ae22da8d74f0b8f2e657f5ad Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 11 Dec 2021 12:58:26 +0100 Subject: Add blend modes --- sdl2/blendmode.ha | 11 +++++++++++ sdl2/render.ha | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 sdl2/blendmode.ha (limited to 'sdl2') 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; -- cgit v1.2.3