diff options
| author | Drew DeVault <sir@cmpwn.com> | 2021-12-11 12:58:26 +0100 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2021-12-11 12:58:26 +0100 |
| commit | b7bb74caa20dbb85ae22da8d74f0b8f2e657f5ad (patch) | |
| tree | 40b6d978b8dafe9a93488467bd0062657820beeb | |
| parent | Add SetTextureAlphaMod wrapper (diff) | |
| download | hare-chip8-b7bb74caa20dbb85ae22da8d74f0b8f2e657f5ad.tar.gz | |
Add blend modes
| -rw-r--r-- | sdl2/blendmode.ha | 11 | ||||
| -rw-r--r-- | sdl2/render.ha | 11 |
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; |
