summaryrefslogtreecommitdiff
path: root/src/mbgl/shaders/circle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/shaders/circle.cpp')
-rw-r--r--src/mbgl/shaders/circle.cpp140
1 files changed, 133 insertions, 7 deletions
diff --git a/src/mbgl/shaders/circle.cpp b/src/mbgl/shaders/circle.cpp
index 2ecceeca70..2e0c76122c 100644
--- a/src/mbgl/shaders/circle.cpp
+++ b/src/mbgl/shaders/circle.cpp
@@ -13,38 +13,108 @@ uniform vec2 u_extrude_scale;
attribute vec2 a_pos;
+
+#ifndef HAS_UNIFORM_u_color
uniform lowp float a_color_t;
attribute highp vec4 a_color;
varying highp vec4 color;
+#else
+uniform highp vec4 u_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_radius
uniform lowp float a_radius_t;
attribute mediump vec2 a_radius;
varying mediump float radius;
+#else
+uniform mediump float u_radius;
+#endif
+
+#ifndef HAS_UNIFORM_u_blur
uniform lowp float a_blur_t;
attribute lowp vec2 a_blur;
varying lowp float blur;
+#else
+uniform lowp float u_blur;
+#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
+
+#ifndef HAS_UNIFORM_u_stroke_color
uniform lowp float a_stroke_color_t;
attribute highp vec4 a_stroke_color;
varying highp vec4 stroke_color;
+#else
+uniform highp vec4 u_stroke_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_width
uniform lowp float a_stroke_width_t;
attribute mediump vec2 a_stroke_width;
varying mediump float stroke_width;
+#else
+uniform mediump float u_stroke_width;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_opacity
uniform lowp float a_stroke_opacity_t;
attribute lowp vec2 a_stroke_opacity;
varying lowp float stroke_opacity;
+#else
+uniform lowp float u_stroke_opacity;
+#endif
varying vec3 v_data;
void main(void) {
+
+#ifndef HAS_UNIFORM_u_color
color = unpack_mix_vec4(a_color, a_color_t);
+#else
+ highp vec4 color = u_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_radius
radius = unpack_mix_vec2(a_radius, a_radius_t);
+#else
+ mediump float radius = u_radius;
+#endif
+
+#ifndef HAS_UNIFORM_u_blur
blur = unpack_mix_vec2(a_blur, a_blur_t);
+#else
+ lowp float blur = u_blur;
+#endif
+
+#ifndef HAS_UNIFORM_u_opacity
opacity = unpack_mix_vec2(a_opacity, a_opacity_t);
+#else
+ lowp float opacity = u_opacity;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_color
stroke_color = unpack_mix_vec4(a_stroke_color, a_stroke_color_t);
+#else
+ highp vec4 stroke_color = u_stroke_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_width
stroke_width = unpack_mix_vec2(a_stroke_width, a_stroke_width_t);
+#else
+ mediump float stroke_width = u_stroke_width;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_opacity
stroke_opacity = unpack_mix_vec2(a_stroke_opacity, a_stroke_opacity_t);
+#else
+ lowp float stroke_opacity = u_stroke_opacity;
+#endif
// unencode the extrusion vector that we snuck into the a_pos vector
vec2 extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);
@@ -69,24 +139,80 @@ void main(void) {
)MBGL_SHADER";
const char* circle::fragmentSource = R"MBGL_SHADER(
+
+#ifndef HAS_UNIFORM_u_color
varying highp vec4 color;
+#else
+uniform highp vec4 u_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_radius
varying mediump float radius;
+#else
+uniform mediump float u_radius;
+#endif
+
+#ifndef HAS_UNIFORM_u_blur
varying lowp float blur;
+#else
+uniform lowp float u_blur;
+#endif
+
+#ifndef HAS_UNIFORM_u_opacity
varying lowp float opacity;
+#else
+uniform lowp float u_opacity;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_color
varying highp vec4 stroke_color;
+#else
+uniform highp vec4 u_stroke_color;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_width
varying mediump float stroke_width;
+#else
+uniform mediump float u_stroke_width;
+#endif
+
+#ifndef HAS_UNIFORM_u_stroke_opacity
varying lowp float stroke_opacity;
+#else
+uniform lowp float u_stroke_opacity;
+#endif
varying vec3 v_data;
void main() {
-
-
-
-
-
-
-
+
+#ifdef HAS_UNIFORM_u_color
+ highp vec4 color = u_color;
+#endif
+
+#ifdef HAS_UNIFORM_u_radius
+ mediump float radius = u_radius;
+#endif
+
+#ifdef HAS_UNIFORM_u_blur
+ lowp float blur = u_blur;
+#endif
+
+#ifdef HAS_UNIFORM_u_opacity
+ lowp float opacity = u_opacity;
+#endif
+
+#ifdef HAS_UNIFORM_u_stroke_color
+ highp vec4 stroke_color = u_stroke_color;
+#endif
+
+#ifdef HAS_UNIFORM_u_stroke_width
+ mediump float stroke_width = u_stroke_width;
+#endif
+
+#ifdef HAS_UNIFORM_u_stroke_opacity
+ lowp float stroke_opacity = u_stroke_opacity;
+#endif
vec2 extrude = v_data.xy;
float extrude_length = length(extrude);