1uniform float u_Time;
2uniform sampler2D u_Tex0;
3uniform sampler2D u_Tex1;
4varying vec2 v_TexCoord;
5varying vec2 v_TexCoord2;
6uniform mat4 u_Color;
7
8void main()
9{
10 gl_FragColor = texture2D(u_Tex0, v_TexCoord);
11 vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
12 if(texcolor.r > 0.9) {
13 gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
14 } else if(texcolor.g > 0.9) {
15 gl_FragColor *= u_Color[2];
16 } else if(texcolor.b > 0.9) {
17 gl_FragColor *= u_Color[3];
18 }
19
20 float width = 1.0;
21 float leftPixel = texture2D(u_Tex0, v_TexCoord + vec2(-width, 0.0)).a;
22 float upPixel = texture2D(u_Tex0, v_TexCoord + vec2(0.0, width)).a;
23 float rightPixel = texture2D(u_Tex0, v_TexCoord + vec2(width, 0.0)).a;
24 float bottomPixel = texture2D(u_Tex0, v_TexCoord + vec2(0.0, -width)).a;
25
26 float outline = (1. - leftPixel * upPixel * rightPixel * bottomPixel) * gl_FragColor.a;
27
28 vec4 col;
29 col.g = 0.0 + abs(0.5 - mod(u_Time, 1.0));
30 col.r = 0.0 + abs(0.5 - mod(u_Time, 1.0));
31 col.b = 0.0 + abs(0.5 - mod(u_Time, 1.0));
32 col.a = 0.7;
33
34 gl_FragColor = mix(gl_FragColor, col, outline);
35 if(gl_FragColor.a < 0.01) discard;
36}