UNPKG

1.25 kBPlain TextView Raw
1
2uniform vec2 u_texsize;
3uniform sampler2D u_image;
4uniform float u_fade;
5
6varying vec2 v_pos_a;
7varying vec2 v_pos_b;
8varying vec2 v_pos;
9
10#pragma mapbox: define lowp float opacity
11#pragma mapbox: define lowp vec4 pattern_from
12#pragma mapbox: define lowp vec4 pattern_to
13
14void main() {
15 #pragma mapbox: initialize lowp float opacity
16 #pragma mapbox: initialize mediump vec4 pattern_from
17 #pragma mapbox: initialize mediump vec4 pattern_to
18
19 vec2 pattern_tl_a = pattern_from.xy;
20 vec2 pattern_br_a = pattern_from.zw;
21 vec2 pattern_tl_b = pattern_to.xy;
22 vec2 pattern_br_b = pattern_to.zw;
23
24 vec2 imagecoord = mod(v_pos_a, 1.0);
25 vec2 pos = mix(pattern_tl_a / u_texsize, pattern_br_a / u_texsize, imagecoord);
26 vec4 color1 = texture2D(u_image, pos);
27
28 vec2 imagecoord_b = mod(v_pos_b, 1.0);
29 vec2 pos2 = mix(pattern_tl_b / u_texsize, pattern_br_b / u_texsize, imagecoord_b);
30 vec4 color2 = texture2D(u_image, pos2);
31
32 // find distance to outline for alpha interpolation
33
34 float dist = length(v_pos - gl_FragCoord.xy);
35 float alpha = 1.0 - smoothstep(0.0, 1.0, dist);
36
37
38 gl_FragColor = mix(color1, color2, u_fade) * alpha * opacity;
39
40#ifdef OVERDRAW_INSPECTOR
41 gl_FragColor = vec4(1.0);
42#endif
43}