25 lines
579 B
GLSL
25 lines
579 B
GLSL
#version 310 es
|
|
precision highp float;
|
|
|
|
layout (location = 0) in vec2 in_uv;
|
|
layout (location = 0) out vec4 out_color;
|
|
|
|
layout (set = 0, binding = 0) uniform ColorBlock {
|
|
uniform vec4 in_color;
|
|
uniform vec2 corner_radius;
|
|
};
|
|
|
|
void main()
|
|
{
|
|
out_color.r = corner_radius.r;
|
|
out_color = in_color;
|
|
|
|
vec2 uv_circ = ((1. - corner_radius) - (abs(in_uv + vec2(-0.5)) * 2.))/corner_radius;
|
|
float dist = length(uv_circ);
|
|
|
|
out_color.a = mix(out_color.a, 0.,
|
|
float(dist > 1.)
|
|
* float(uv_circ.x < 0.)
|
|
* float(uv_circ.y < 0.));
|
|
}
|