Pixel-Composer/scripts/mask_function/mask_function.gml

23 lines
873 B
Text
Raw Normal View History

2023-02-14 02:48:33 +01:00
function mask_apply(original, edited, mask, mix = 1) {
2023-02-17 11:31:33 +01:00
if(!is_surface(mask) && mix == 1) return edited;
2023-02-14 02:48:33 +01:00
2023-03-19 09:17:39 +01:00
var _f = surface_get_format(edited);
var _s = surface_create_size(original, _f);
2023-02-14 02:48:33 +01:00
surface_set_target(_s);
shader_set(sh_mask);
texture_set_stage(shader_get_sampler_index(sh_mask, "original"), surface_get_texture(original));
texture_set_stage(shader_get_sampler_index(sh_mask, "edited"), surface_get_texture(edited));
shader_set_uniform_i(shader_get_uniform(sh_mask, "useMask"), is_surface(mask));
2023-02-17 11:31:33 +01:00
texture_set_stage(shader_get_sampler_index(sh_mask, "mask"), surface_get_texture(mask));
2023-02-14 02:48:33 +01:00
shader_set_uniform_f(shader_get_uniform(sh_mask, "mixRatio"), mix);
draw_sprite_stretched(s_fx_pixel, 0, 0, 0, surface_get_width(original), surface_get_height(original));
shader_reset();
surface_reset_target();
surface_free(edited);
return _s;
}