diff options
Diffstat (limited to 'src/mbgl/shaders/fill_outline.cpp')
-rw-r--r-- | src/mbgl/shaders/fill_outline.cpp | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/mbgl/shaders/fill_outline.cpp b/src/mbgl/shaders/fill_outline.cpp index 3e160ac6c2..45bc716be3 100644 --- a/src/mbgl/shaders/fill_outline.cpp +++ b/src/mbgl/shaders/fill_outline.cpp @@ -14,16 +14,36 @@ uniform vec2 u_world; varying vec2 v_pos; + +#ifndef HAS_UNIFORM_u_outline_color uniform lowp float a_outline_color_t; attribute highp vec4 a_outline_color; varying highp vec4 outline_color; +#else +uniform highp vec4 u_outline_color; +#endif + +#ifndef HAS_UNIFORM_u_opacity uniform lowp float a_opacity_t; attribute lowp vec2 a_opacity; varying lowp float opacity; +#else +uniform lowp float u_opacity; +#endif void main() { + +#ifndef HAS_UNIFORM_u_outline_color outline_color = unpack_mix_vec4(a_outline_color, a_outline_color_t); +#else + highp vec4 outline_color = u_outline_color; +#endif + +#ifndef HAS_UNIFORM_u_opacity opacity = unpack_mix_vec2(a_opacity, a_opacity_t); +#else + lowp float opacity = u_opacity; +#endif gl_Position = u_matrix * vec4(a_pos, 0, 1); v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world; @@ -31,14 +51,30 @@ void main() { )MBGL_SHADER"; const char* fill_outline::fragmentSource = R"MBGL_SHADER( + +#ifndef HAS_UNIFORM_u_outline_color varying highp vec4 outline_color; +#else +uniform highp vec4 u_outline_color; +#endif + +#ifndef HAS_UNIFORM_u_opacity varying lowp float opacity; +#else +uniform lowp float u_opacity; +#endif varying vec2 v_pos; void main() { - - + +#ifdef HAS_UNIFORM_u_outline_color + highp vec4 outline_color = u_outline_color; +#endif + +#ifdef HAS_UNIFORM_u_opacity + lowp float opacity = u_opacity; +#endif float dist = length(v_pos - gl_FragCoord.xy); float alpha = smoothstep(1.0, 0.0, dist); |