# version 450 layout(location = 0) in vec4 in_border_color; layout(location = 1) in vec4 in_background_color; layout(location = 2) in vec2 in_px_scale; layout(location = 3) in vec3 in_uv; layout(location = 0) out vec4 out_color; bool is_in_border() { return in_uv.x <= in_px_scale.x || in_uv.x >= 1.0-in_px_scale.x || in_uv.y <= in_px_scale.y || in_uv.y >= 1.0-in_px_scale.y; } void main() { if (is_in_border()) { out_color = in_border_color; } else { out_color = in_background_color; } }