Files
panopainter/data/shaders/comp-erase.glsl

36 lines
645 B
GLSL

[[vertex]]
uniform mat4 mvp;
in vec4 pos;
in vec2 uvs;
out vec2 uv;
void main()
{
uv = uvs;
gl_Position = mvp * vec4(pos.xyz, 1.0);
}
[[fragment]]
#include "include/blur.glsl"
uniform sampler2D tex;
uniform sampler2D tex_stroke;
uniform sampler2D tex_mask;
uniform mediump float alpha;
uniform mediump vec2 resolution;
uniform bool mask;
in mediump vec2 uv;
out mediump vec4 frag;
void main()
{
mediump vec4 base = texture(tex, uv);
mediump vec4 stroke = texture(tex_stroke, uv);
stroke.a = mask ? stroke.a * blur(tex_mask, uv).r : stroke.a;
frag = vec4(base.rgb, clamp((base.a - stroke.a) * alpha, 0.0, 1.0));
}