This repository has been archived on 2025-01-17. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
blood-and-mortar/assets/shaders/outline.gdshader

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));
}
}