precision mediump float; varying vec2 v_texcoord; // is in 0-1 uniform sampler2D tex; uniform float alpha; uniform vec2 topLeft; uniform vec2 fullSize; uniform float radius; uniform int discardOpaque; uniform int discardAlpha; uniform float discardAlphaValue; uniform int applyTint; uniform vec3 tint; uniform int primitiveMultisample; void main() { vec4 pixColor = texture2D(tex, v_texcoord); if (discardOpaque == 1 && pixColor[3] * alpha == 1.0) discard; if (discardAlpha == 1 && pixColor[3] <= discardAlphaValue) discard; if (applyTint == 1) { pixColor[0] = pixColor[0] * tint[0]; pixColor[1] = pixColor[1] * tint[1]; pixColor[2] = pixColor[2] * tint[2]; } )#" + ROUNDED_SHADER_FUNC("pixColor") + R"#( gl_FragColor = pixColor * alpha; }