varying vec3 v_data; #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump float radius #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define highp vec4 stroke_color #pragma mapbox: define mediump float stroke_width #pragma mapbox: define lowp float stroke_opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump float radius #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp vec4 stroke_color #pragma mapbox: initialize mediump float stroke_width #pragma mapbox: initialize lowp float stroke_opacity vec2 extrude = v_data.xy; float extrude_length = length(extrude); lowp float antialiasblur = v_data.z; float antialiased_blur = -max(blur, antialiasblur); float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0); float color_t = stroke_width < 0.01 ? 0.0 : smoothstep( antialiased_blur, 0.0, extrude_length - radius / (radius + stroke_width) ); gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t); #ifdef OVERDRAW_INSPECTOR gl_FragColor = vec4(1.0); #endif }