diff options
Diffstat (limited to 'src/sdl_blend_mode.erl')
-rw-r--r-- | src/sdl_blend_mode.erl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/sdl_blend_mode.erl b/src/sdl_blend_mode.erl new file mode 100644 index 0000000..ce6b854 --- /dev/null +++ b/src/sdl_blend_mode.erl @@ -0,0 +1,36 @@ +%% Copyright (c) 2017, Loïc Hoguin <[email protected]> +%% +%% Permission to use, copy, modify, and/or distribute this software for any +%% purpose with or without fee is hereby granted, provided that the above +%% copyright notice and this permission notice appear in all copies. +%% +%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-module(sdl_blend_mode). + +-export([compose/6]). + +-type blend_mode() :: none | blend | add | mod | invalid | integer(). +-export_type([blend_mode/0]). + +-type blend_operation() :: add | substract | rev_substract | minimum | maximum. +-type blend_factor() :: zero | one + | src_color | one_minus_src_color + | src_alpha | one_minus_src_alpha + | dst_color | one_minus_dst_color + | dst_alpha | one_minus_dst_alpha. + +-spec compose(blend_factor(), blend_factor(), blend_operation(), + blend_factor(), blend_factor(), blend_operation()) -> blend_mode(). +compose(SrcColorFactor, DstColorFactor, ColorOp, + SrcAlphaFactor, DstAlphaFactor, AlphaOp) -> + esdl2:compose_custom_blend_mode( + SrcColorFactor, DstColorFactor, ColorOp, + SrcAlphaFactor, DstAlphaFactor, AlphaOp), + receive {'_nif_thread_ret_', Ret} -> Ret end. |