1 INPUT mediump vec2 vPosition;
2 INPUT mediump vec2 vRectSize;
3 INPUT mediump vec2 vOptRectSize;
4 INPUT mediump vec4 vCornerRadius;
6 uniform lowp vec4 uColor;
7 uniform lowp vec3 mixColor;
11 OUT_COLOR = vec4(mixColor, 1.0) * uColor;
12 if(abs(vPosition.x) < vOptRectSize.x && abs(vPosition.y) < vOptRectSize.y)
16 mediump float radius =
18 mix(vCornerRadius.x, vCornerRadius.y, sign(vPosition.x) * 0.5 + 0.5),
19 mix(vCornerRadius.w, vCornerRadius.z, sign(vPosition.x) * 0.5 + 0.5),
20 sign(vPosition.y) * 0.5 + 0.5
23 mediump vec2 diff = abs(vPosition) - vRectSize + radius;
24 mediump float dist = length(max(diff, vec2(0.0))) - radius;
31 if(min(diff.x, diff.y) < 0.0)
33 dist += min(diff.x, diff.y) / max(radius, 1.0);
35 OUT_COLOR.a *= 1.0 - smoothstep(-1.0, 1.0, dist);