alacritty::renderer::text::gles2

Constant TEXT_SHADER_F

Source
const TEXT_SHADER_F: &str = "varying mediump vec2 TexCoords;\nvarying mediump vec3 fg;\nvarying highp float colored;\nvarying mediump vec4 bg;\n\nuniform highp int renderingPass;\nuniform sampler2D mask;\n\n#define COLORED 1\n\nmediump float max_rgb(mediump vec3 mask) {\n    return max(max(mask.r, mask.g), mask.b);\n}\n\nvoid render_text() {\n    mediump vec4 mask = texture2D(mask, TexCoords);\n    mediump float m_rgb = max_rgb(mask.rgb);\n\n    if (renderingPass == 1) {\n        gl_FragColor = vec4(mask.rgb, m_rgb);\n    } else if (renderingPass == 2) {\n        gl_FragColor = bg * (vec4(m_rgb) - vec4(mask.rgb, m_rgb));\n    } else {\n        gl_FragColor = vec4(fg, 1.) * vec4(mask.rgb, m_rgb);\n    }\n}\n\n// Render colored bitmaps.\nvoid render_bitmap() {\n    if (renderingPass == 2) {\n        discard;\n    }\n    mediump vec4 mask = texture2D(mask, TexCoords);\n    if (renderingPass == 1) {\n        gl_FragColor = mask.aaaa;\n    } else {\n        gl_FragColor = mask;\n    }\n}\n\nvoid main() {\n    // Handle background pass drawing before anything else.\n    if (renderingPass == 0) {\n        if (bg.a == 0.0) {\n            discard;\n        }\n\n        gl_FragColor = vec4(bg.rgb * bg.a, bg.a);\n        return;\n    }\n\n    if (int(colored) == COLORED) {\n        render_bitmap();\n    } else {\n        render_text();\n    }\n}\n";