1#glbuild(ES2) #version 100
2#glbuild(2)   #version 110
3#glbuild(3)   #version 140
4
5#ifdef GL_ES
6precision lowp float;
7precision lowp int;
8#  define o_fragcolour gl_FragColor
9#elif __VERSION__ < 140
10#  define mediump
11#  define o_fragcolour gl_FragColor
12#else
13#  define varying in
14#  define texture2D texture
15out vec4 o_fragcolour;
16#endif
17
18uniform sampler2D u_texture;
19uniform vec4 u_colour;
20uniform vec4 u_bgcolour;
21uniform int u_mode;
22
23varying mediump vec2 v_texcoord;
24
25void main(void)
26{
27    vec4 pixel;
28
29    if (u_mode == 0) {
30        // Text.
31        pixel = texture2D(u_texture, v_texcoord);
32        o_fragcolour = mix(u_bgcolour, u_colour, pixel.a);
33    } else if (u_mode == 1) {
34        // Tile screen.
35        pixel = texture2D(u_texture, v_texcoord);
36        o_fragcolour = mix(u_bgcolour, pixel, pixel.a);
37    } else if (u_mode == 2) {
38        // Foreground colour.
39        o_fragcolour = u_colour;
40    }
41}
42