17 lines
No EOL
616 B
Text
17 lines
No EOL
616 B
Text
shader_type canvas_item;
|
|
|
|
uniform bool outline_enabled = false;
|
|
uniform vec3 outline_color : source_color = vec3(1.0);
|
|
|
|
void fragment() {
|
|
COLOR = texture(TEXTURE, UV);
|
|
|
|
if (outline_enabled) {
|
|
float border = texture(TEXTURE, UV + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
|
border += texture(TEXTURE, UV - vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
|
border += texture(TEXTURE, UV + vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
|
border += texture(TEXTURE, UV - vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
|
float final = step(sign(border), sign(COLOR.a));
|
|
COLOR = vec4(vec3(mix(outline_color, COLOR.rgb, final)), step(final, COLOR.a));
|
|
}
|
|
} |