v4k-git-backup/engine/art/editor/fx/editorOutline.fs

25 lines
700 B
Forth
Raw Permalink Normal View History

2023-10-28 20:53:59 +00:00
/// tip:"Ensure colorbuffer is alpha clear before calling this one."
uniform int thickness; /// set:2
uniform vec4 border_color; /// set:1,1,0,1
void main() {
vec4 texel = texture(iChannel0, uv);
float outline = 0.0;
if( texel.a == 0.0 ) {
for( int x = -thickness; x <= thickness; x++ ) {
for( int y = -thickness;y <= thickness; y++ ) {
float sample = texture(iChannel0, uv+vec2(float(x)/iWidth, float(y)/iHeight)).a;
if( sample > 0.0 ) {
outline = 1.0;
}
}
}
}
if( outline == 0.0 )
discard;
FRAGCOLOR = vec4(border_color.rgb, outline * border_color.a);
}