#version 300 es
precision mediump float;
precision highp int;

layout(std140) uniform fs_ub
{
    highp vec4 u_effectColor;
    highp vec4 u_textColor;
    int u_labelPass;
} _33;

uniform mediump sampler2D u_tex0;

in highp vec2 v_texCoord;
layout(location = 0) out highp vec4 FragColor;
in highp vec4 v_color;

void main()
{
    highp vec4 texColor = texture(u_tex0, v_texCoord);
    highp float fontAlpha = texColor.y;
    highp float outlineAlpha = texColor.x;
    if (_33.u_labelPass == 0)
    {
        FragColor = v_color * vec4(_33.u_textColor.xyz, _33.u_textColor.w * fontAlpha);
    }
    else
    {
        if (_33.u_labelPass == 1)
        {
            FragColor = v_color * vec4(_33.u_effectColor.xyz, (_33.u_effectColor.w * outlineAlpha) * (1.0 - fontAlpha));
        }
        else
        {
            FragColor = v_color * vec4(_33.u_effectColor.xyz, _33.u_effectColor.w * outlineAlpha);
        }
    }
}

