+ mediump vec2 diff = abs(vPosition) - vRectSize + radius;
+ mediump float dist = length(max(diff, vec2(0.0))) - radius;
+ mediump float opacity = 1.0;
+ if(dist > 1.0)
+ {
+ opacity = 0.0;
+ }
+ else if(dist > -1.0)
+ {
+ if(min(diff.x, diff.y) < 0.0)
+ {
+ dist += min(diff.x, diff.y) / max(radius, 1.0);
+ }
+ opacity = 1.0 - smoothstep(-1.0, 1.0, dist);
+ }
+
+ OUT_COLOR = TEXTURE(sTexture, vTexCoord) * uColor * vec4(mixColor, 1.0);