uniform int thickness = 2;
uniform vec4 border_color = vec4(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;
                }
            }
        }
    }

    FRAGCOLOR = vec4(border_color.rgb, outline * border_color.a); // mix(texel, border_color, outline * border_color.a);
}