summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-05-23 15:26:26 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-05-25 21:37:58 -0700
commit45c5b2a66c8dbadf8671458d183e76a981ff4843 (patch)
treef042e705b0d1f19329bf899b97dbf37242bdfb89 /src
parent4e2c743ebabbbd78e49b1f645def99aaa328324e (diff)
downloadqtlocation-mapboxgl-45c5b2a66c8dbadf8671458d183e76a981ff4843.tar.gz
[core] Share shaders with gl-js
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/shader/box.fragment.glsl24
-rw-r--r--src/mbgl/shader/box.vertex.glsl16
-rw-r--r--src/mbgl/shader/circle.fragment.glsl10
-rw-r--r--src/mbgl/shader/circle.vertex.glsl23
-rw-r--r--src/mbgl/shader/collision_box_shader.cpp6
-rw-r--r--src/mbgl/shader/icon.fragment.glsl11
-rw-r--r--src/mbgl/shader/icon.vertex.glsl42
-rw-r--r--src/mbgl/shader/line.fragment.glsl19
-rw-r--r--src/mbgl/shader/line.vertex.glsl65
-rw-r--r--src/mbgl/shader/linepattern.fragment.glsl41
-rw-r--r--src/mbgl/shader/linepattern.vertex.glsl76
-rw-r--r--src/mbgl/shader/linesdf.fragment.glsl29
-rw-r--r--src/mbgl/shader/linesdf.vertex.glsl82
-rw-r--r--src/mbgl/shader/linesdf_shader.cpp6
-rw-r--r--src/mbgl/shader/outline.fragment.glsl9
-rw-r--r--src/mbgl/shader/outline.vertex.glsl10
-rw-r--r--src/mbgl/shader/outlinepattern.fragment.glsl30
-rw-r--r--src/mbgl/shader/outlinepattern.vertex.glsl21
-rw-r--r--src/mbgl/shader/pattern.fragment.glsl24
-rw-r--r--src/mbgl/shader/pattern.vertex.glsl17
-rw-r--r--src/mbgl/shader/plain.fragment.glsl5
-rw-r--r--src/mbgl/shader/plain.vertex.glsl7
-rw-r--r--src/mbgl/shader/plain_shader.cpp6
-rw-r--r--src/mbgl/shader/raster.fragment.glsl36
-rw-r--r--src/mbgl/shader/raster.vertex.glsl13
-rw-r--r--src/mbgl/shader/sdf.fragment.glsl17
-rw-r--r--src/mbgl/shader/sdf.vertex.glsl43
27 files changed, 9 insertions, 679 deletions
diff --git a/src/mbgl/shader/box.fragment.glsl b/src/mbgl/shader/box.fragment.glsl
deleted file mode 100644
index 030f1219f8..0000000000
--- a/src/mbgl/shader/box.fragment.glsl
+++ /dev/null
@@ -1,24 +0,0 @@
-uniform float u_zoom;
-uniform float u_maxzoom;
-
-varying float v_max_zoom;
-varying float v_placement_zoom;
-
-void main() {
-
- float alpha = 0.5;
-
- gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;
-
- if (v_placement_zoom > u_zoom) {
- gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;
- }
-
- if (u_zoom >= v_max_zoom) {
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;
- }
-
- if (v_placement_zoom >= u_maxzoom) {
- gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;
- }
-}
diff --git a/src/mbgl/shader/box.vertex.glsl b/src/mbgl/shader/box.vertex.glsl
deleted file mode 100644
index d141b13873..0000000000
--- a/src/mbgl/shader/box.vertex.glsl
+++ /dev/null
@@ -1,16 +0,0 @@
-attribute vec2 a_pos;
-attribute vec2 a_extrude;
-attribute vec2 a_data;
-
-uniform mat4 u_matrix;
-uniform float u_scale;
-
-varying float v_max_zoom;
-varying float v_placement_zoom;
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);
-
- v_max_zoom = a_data.x;
- v_placement_zoom = a_data.y;
-}
diff --git a/src/mbgl/shader/circle.fragment.glsl b/src/mbgl/shader/circle.fragment.glsl
deleted file mode 100644
index 7267bf81e3..0000000000
--- a/src/mbgl/shader/circle.fragment.glsl
+++ /dev/null
@@ -1,10 +0,0 @@
-uniform vec4 u_color;
-uniform float u_blur;
-uniform float u_size;
-
-varying vec2 v_extrude;
-
-void main() {
- float t = smoothstep(1.0 - u_blur, 1.0, length(v_extrude));
- gl_FragColor = u_color * (1.0 - t);
-}
diff --git a/src/mbgl/shader/circle.vertex.glsl b/src/mbgl/shader/circle.vertex.glsl
deleted file mode 100644
index 387c377a60..0000000000
--- a/src/mbgl/shader/circle.vertex.glsl
+++ /dev/null
@@ -1,23 +0,0 @@
-// set by gl_util
-uniform float u_size;
-
-attribute vec2 a_pos;
-
-uniform mat4 u_matrix;
-uniform mat4 u_exmatrix;
-
-varying vec2 v_extrude;
-
-void main(void) {
- // unencode the extrusion vector that we snuck into the a_pos vector
- v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);
-
- vec4 extrude = u_exmatrix * vec4(v_extrude * u_size, 0, 0);
- // multiply a_pos by 0.5, since we had it * 2 in order to sneak
- // in extrusion data
- gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);
-
- // gl_Position is divided by gl_Position.w after this shader runs.
- // Multiply the extrude by it so that it isn't affected by it.
- gl_Position += extrude * gl_Position.w;
-}
diff --git a/src/mbgl/shader/collision_box_shader.cpp b/src/mbgl/shader/collision_box_shader.cpp
index 7a4723dbb0..9d4d37c4cd 100644
--- a/src/mbgl/shader/collision_box_shader.cpp
+++ b/src/mbgl/shader/collision_box_shader.cpp
@@ -1,6 +1,6 @@
#include <mbgl/shader/collision_box_shader.hpp>
-#include <mbgl/shader/box.vertex.hpp>
-#include <mbgl/shader/box.fragment.hpp>
+#include <mbgl/shader/collisionbox.vertex.hpp>
+#include <mbgl/shader/collisionbox.fragment.hpp>
#include <mbgl/gl/gl.hpp>
#include <cstdio>
@@ -8,7 +8,7 @@
using namespace mbgl;
CollisionBoxShader::CollisionBoxShader(gl::GLObjectStore& glObjectStore)
- : Shader("collisionbox", shaders::box::vertex, shaders::box::fragment, glObjectStore) {
+ : Shader("collisionbox", shaders::collisionbox::vertex, shaders::collisionbox::fragment, glObjectStore) {
a_extrude = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_extrude"));
a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"));
}
diff --git a/src/mbgl/shader/icon.fragment.glsl b/src/mbgl/shader/icon.fragment.glsl
deleted file mode 100644
index f9ed6e75ed..0000000000
--- a/src/mbgl/shader/icon.fragment.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-uniform sampler2D u_texture;
-uniform sampler2D u_fadetexture;
-uniform float u_opacity;
-
-varying vec2 v_tex;
-varying vec2 v_fade_tex;
-
-void main() {
- float alpha = texture2D(u_fadetexture, v_fade_tex).a * u_opacity;
- gl_FragColor = texture2D(u_texture, v_tex) * alpha;
-}
diff --git a/src/mbgl/shader/icon.vertex.glsl b/src/mbgl/shader/icon.vertex.glsl
deleted file mode 100644
index a6a423127a..0000000000
--- a/src/mbgl/shader/icon.vertex.glsl
+++ /dev/null
@@ -1,42 +0,0 @@
-attribute vec2 a_pos;
-attribute vec2 a_offset;
-attribute vec4 a_data1;
-attribute vec4 a_data2;
-
-
-// matrix is for the vertex position, exmatrix is for rotating and projecting
-// the extrusion vector.
-uniform mat4 u_matrix;
-uniform mat4 u_exmatrix;
-uniform float u_zoom;
-uniform bool u_skewed;
-uniform float u_extra;
-
-uniform vec2 u_texsize;
-
-varying vec2 v_tex;
-varying vec2 v_fade_tex;
-
-void main() {
- vec2 a_tex = a_data1.xy;
- float a_labelminzoom = a_data1[2];
- float a_angle = a_data1[3];
- vec2 a_zoom = a_data2.st;
- float a_minzoom = a_zoom[0];
- float a_maxzoom = a_zoom[1];
-
- // u_zoom is the current zoom level adjusted for the change in font size
- float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));
-
- if (u_skewed) {
- vec4 extrude = u_exmatrix * vec4(a_offset / 64.0, 0, 0);
- gl_Position = u_matrix * vec4(a_pos + extrude.xy, 0, 1);
- gl_Position.z += z * gl_Position.w;
- } else {
- vec4 extrude = u_exmatrix * vec4(a_offset / 64.0, z, 0);
- gl_Position = u_matrix * vec4(a_pos, 0, 1) + extrude;
- }
-
- v_tex = a_tex / u_texsize;
- v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);
-}
diff --git a/src/mbgl/shader/line.fragment.glsl b/src/mbgl/shader/line.fragment.glsl
deleted file mode 100644
index e0ef649965..0000000000
--- a/src/mbgl/shader/line.fragment.glsl
+++ /dev/null
@@ -1,19 +0,0 @@
-uniform vec2 u_linewidth;
-uniform vec4 u_color;
-uniform float u_blur;
-
-varying vec2 v_normal;
-varying float v_gamma_scale;
-
-void main() {
- // Calculate the distance of the pixel from the line in pixels.
- float dist = length(v_normal) * u_linewidth.s;
-
- // Calculate the antialiasing fade factor. This is either when fading in
- // the line in case of an offset line (v_linewidth.t) or when fading out
- // (v_linewidth.s)
- float blur = u_blur * v_gamma_scale;
- float alpha = clamp(min(dist - (u_linewidth.t - blur), u_linewidth.s - dist) / blur, 0.0, 1.0);
-
- gl_FragColor = u_color * alpha;
-}
diff --git a/src/mbgl/shader/line.vertex.glsl b/src/mbgl/shader/line.vertex.glsl
deleted file mode 100644
index 973e92a17d..0000000000
--- a/src/mbgl/shader/line.vertex.glsl
+++ /dev/null
@@ -1,65 +0,0 @@
-// floor(127 / 2) == 63.0
-// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is
-// stored in a byte (-128..127). we scale regular normals up to length 63, but
-// there are also "special" normals that have a bigger length (of up to 126 in
-// this case).
-// #define scale 63.0
-#define scale 0.015873016
-
-attribute vec2 a_pos;
-attribute vec4 a_data;
-
-uniform mat4 u_matrix;
-
-// shared
-uniform float u_ratio;
-uniform vec2 u_linewidth;
-uniform float u_offset;
-
-uniform float u_extra;
-uniform mat2 u_antialiasingmatrix;
-
-varying vec2 v_normal;
-varying float v_gamma_scale;
-
-void main() {
- vec2 a_extrude = a_data.xy - 128.0;
- float a_direction = mod(a_data.z, 4.0) - 1.0;
-
- // We store the texture normals in the most insignificant bit
- // transform y so that 0 => -1 and 1 => 1
- // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap
- // y is 1 if the normal points up, and -1 if it points down
- vec2 normal = mod(a_pos, 2.0);
- normal.y = sign(normal.y - 0.5);
- v_normal = normal;
-
- // Scale the extrusion vector down to a normal and then up by the line width
- // of this vertex.
- vec2 dist = u_linewidth.s * a_extrude * scale;
-
- // Calculate the offset when drawing a line that is to the side of the actual line.
- // We do this by creating a vector that points towards the extrude, but rotate
- // it when we're drawing round end points (a_direction = -1 or 1) since their
- // extrude vector points in another direction.
- float u = 0.5 * a_direction;
- float t = 1.0 - abs(u);
- vec2 offset = u_offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);
-
- // Remove the texture normal bit of the position before scaling it with the
- // model/view matrix. Add the extrusion vector *after* the model/view matrix
- // because we're extruding the line in pixel space, regardless of the current
- // tile's zoom level.
- gl_Position = u_matrix * vec4(floor(a_pos * 0.5) + (offset + dist) / u_ratio, 0.0, 1.0);
-
- // position of y on the screen
- float y = gl_Position.y / gl_Position.w;
-
- // how much features are squished in the y direction by the tilt
- float squish_scale = length(a_extrude) / length(u_antialiasingmatrix * a_extrude);
-
- // how much features are squished in all directions by the perspectiveness
- float perspective_scale = 1.0 / (1.0 - min(y * u_extra, 0.90));
-
- v_gamma_scale = perspective_scale * squish_scale;
-}
diff --git a/src/mbgl/shader/linepattern.fragment.glsl b/src/mbgl/shader/linepattern.fragment.glsl
deleted file mode 100644
index 4110a99ead..0000000000
--- a/src/mbgl/shader/linepattern.fragment.glsl
+++ /dev/null
@@ -1,41 +0,0 @@
-uniform vec2 u_linewidth;
-uniform float u_blur;
-
-uniform vec2 u_pattern_size_a;
-uniform vec2 u_pattern_tl_a;
-uniform vec2 u_pattern_br_a;
-uniform vec2 u_pattern_size_b;
-uniform vec2 u_pattern_tl_b;
-uniform vec2 u_pattern_br_b;
-uniform float u_fade;
-uniform float u_opacity;
-
-uniform sampler2D u_image;
-
-varying vec2 v_normal;
-varying float v_linesofar;
-varying float v_gamma_scale;
-
-void main() {
- // Calculate the distance of the pixel from the line in pixels.
- float dist = length(v_normal) * u_linewidth.s;
-
- // Calculate the antialiasing fade factor. This is either when fading in
- // the line in case of an offset line (v_linewidth.t) or when fading out
- // (v_linewidth.s)
- float blur = u_blur * v_gamma_scale;
- float alpha = clamp(min(dist - (u_linewidth.t - blur), u_linewidth.s - dist) / blur, 0.0, 1.0);
-
- float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);
- float y_a = 0.5 + (v_normal.y * u_linewidth.s / u_pattern_size_a.y);
- vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));
- float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);
- float y_b = 0.5 + (v_normal.y * u_linewidth.s / u_pattern_size_b.y);
- vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));
-
- vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);
-
- alpha *= u_opacity;
-
- gl_FragColor = color * alpha;
-}
diff --git a/src/mbgl/shader/linepattern.vertex.glsl b/src/mbgl/shader/linepattern.vertex.glsl
deleted file mode 100644
index 5cceb64038..0000000000
--- a/src/mbgl/shader/linepattern.vertex.glsl
+++ /dev/null
@@ -1,76 +0,0 @@
-// floor(127 / 2) == 63.0
-// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is
-// stored in a byte (-128..127). we scale regular normals up to length 63, but
-// there are also "special" normals that have a bigger length (of up to 126 in
-// this case).
-// #define scale 63.0
-#define scale 0.015873016
-
-// We scale the distance before adding it to the buffers so that we can store
-// long distances for long segments. Use this value to unscale the distance.
-#define LINE_DISTANCE_SCALE 2.0
-
-attribute vec2 a_pos;
-attribute vec4 a_data;
-
-// matrix is for the vertex position, exmatrix is for rotating and projecting
-// the extrusion vector.
-uniform mat4 u_matrix;
-uniform mat4 u_exmatrix;
-
-// shared
-uniform float u_ratio;
-uniform vec2 u_linewidth;
-uniform float u_offset;
-uniform vec4 u_color;
-
-uniform float u_extra;
-uniform mat2 u_antialiasingmatrix;
-
-varying vec2 v_normal;
-varying float v_linesofar;
-varying float v_gamma_scale;
-
-void main() {
- vec2 a_extrude = a_data.xy - 128.0;
- float a_direction = mod(a_data.z, 4.0) - 1.0;
- float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;
-
- // We store the texture normals in the most insignificant bit
- // transform y so that 0 => -1 and 1 => 1
- // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap
- // y is 1 if the normal points up, and -1 if it points down
- vec2 normal = mod(a_pos, 2.0);
- normal.y = sign(normal.y - 0.5);
- v_normal = normal;
-
- // Scale the extrusion vector down to a normal and then up by the line width
- // of this vertex.
- vec2 dist = u_linewidth.s * a_extrude * scale;
-
- // Calculate the offset when drawing a line that is to the side of the actual line.
- // We do this by creating a vector that points towards the extrude, but rotate
- // it when we're drawing round end points (a_direction = -1 or 1) since their
- // extrude vector points in another direction.
- float u = 0.5 * a_direction;
- float t = 1.0 - abs(u);
- vec2 offset = u_offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);
-
- // Remove the texture normal bit of the position before scaling it with the
- // model/view matrix. Add the extrusion vector *after* the model/view matrix
- // because we're extruding the line in pixel space, regardless of the current
- // tile's zoom level.
- gl_Position = u_matrix * vec4(floor(a_pos / 2.0) + (offset + dist) / u_ratio, 0.0, 1.0);
- v_linesofar = a_linesofar;
-
- // position of y on the screen
- float y = gl_Position.y / gl_Position.w;
-
- // how much features are squished in the y direction by the tilt
- float squish_scale = length(a_extrude) / length(u_antialiasingmatrix * a_extrude);
-
- // how much features are squished in all directions by the perspectiveness
- float perspective_scale = 1.0 / (1.0 - y * u_extra);
-
- v_gamma_scale = perspective_scale * squish_scale;
-}
diff --git a/src/mbgl/shader/linesdf.fragment.glsl b/src/mbgl/shader/linesdf.fragment.glsl
deleted file mode 100644
index f8962fa570..0000000000
--- a/src/mbgl/shader/linesdf.fragment.glsl
+++ /dev/null
@@ -1,29 +0,0 @@
-uniform vec2 u_linewidth;
-uniform vec4 u_color;
-uniform float u_blur;
-uniform sampler2D u_image;
-uniform float u_sdfgamma;
-uniform float u_mix;
-
-varying vec2 v_normal;
-varying vec2 v_tex_a;
-varying vec2 v_tex_b;
-varying float v_gamma_scale;
-
-void main() {
- // Calculate the distance of the pixel from the line in pixels.
- float dist = length(v_normal) * u_linewidth.s;
-
- // Calculate the antialiasing fade factor. This is either when fading in
- // the line in case of an offset line (v_linewidth.t) or when fading out
- // (v_linewidth.s)
- float blur = u_blur * v_gamma_scale;
- float alpha = clamp(min(dist - (u_linewidth.t - blur), u_linewidth.s - dist) / blur, 0.0, 1.0);
-
- float sdfdist_a = texture2D(u_image, v_tex_a).a;
- float sdfdist_b = texture2D(u_image, v_tex_b).a;
- float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);
- alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);
-
- gl_FragColor = u_color * alpha;
-}
diff --git a/src/mbgl/shader/linesdf.vertex.glsl b/src/mbgl/shader/linesdf.vertex.glsl
deleted file mode 100644
index 9174e4d987..0000000000
--- a/src/mbgl/shader/linesdf.vertex.glsl
+++ /dev/null
@@ -1,82 +0,0 @@
-// floor(127 / 2) == 63.0
-// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is
-// stored in a byte (-128..127). we scale regular normals up to length 63, but
-// there are also "special" normals that have a bigger length (of up to 126 in
-// this case).
-// #define scale 63.0
-#define scale 0.015873016
-
-// We scale the distance before adding it to the buffers so that we can store
-// long distances for long segments. Use this value to unscale the distance.
-#define LINE_DISTANCE_SCALE 2.0
-
-attribute vec2 a_pos;
-attribute vec4 a_data;
-
-// matrix is for the vertex position, exmatrix is for rotating and projecting
-// the extrusion vector.
-uniform mat4 u_matrix;
-uniform mat4 u_exmatrix;
-
-// shared
-uniform float u_ratio;
-uniform vec2 u_linewidth;
-uniform float u_offset;
-uniform vec2 u_patternscale_a;
-uniform float u_tex_y_a;
-uniform vec2 u_patternscale_b;
-uniform float u_tex_y_b;
-
-uniform float u_extra;
-uniform mat2 u_antialiasingmatrix;
-
-varying vec2 v_normal;
-varying vec2 v_tex_a;
-varying vec2 v_tex_b;
-varying float v_gamma_scale;
-
-void main() {
- vec2 a_extrude = a_data.xy - 128.0;
- float a_direction = mod(a_data.z, 4.0) - 1.0;
- float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;
-
- // We store the texture normals in the most insignificant bit
- // transform y so that 0 => -1 and 1 => 1
- // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap
- // y is 1 if the normal points up, and -1 if it points down
- vec2 normal = mod(a_pos, 2.0);
- normal.y = sign(normal.y - 0.5);
- v_normal = normal;
-
- // Scale the extrusion vector down to a normal and then up by the line width
- // of this vertex.
- vec2 dist = u_linewidth.s * a_extrude * scale;
-
- // Calculate the offset when drawing a line that is to the side of the actual line.
- // We do this by creating a vector that points towards the extrude, but rotate
- // it when we're drawing round end points (a_direction = -1 or 1) since their
- // extrude vector points in another direction.
- float u = 0.5 * a_direction;
- float t = 1.0 - abs(u);
- vec2 offset = u_offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);
-
- // Remove the texture normal bit of the position before scaling it with the
- // model/view matrix. Add the extrusion vector *after* the model/view matrix
- // because we're extruding the line in pixel space, regardless of the current
- // tile's zoom level.
- gl_Position = u_matrix * vec4(floor(a_pos * 0.5) + (offset + dist) / u_ratio, 0.0, 1.0);
-
- v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);
- v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);
-
- // position of y on the screen
- float y = gl_Position.y / gl_Position.w;
-
- // how much features are squished in the y direction by the tilt
- float squish_scale = length(a_extrude) / length(u_antialiasingmatrix * a_extrude);
-
- // how much features are squished in all directions by the perspectiveness
- float perspective_scale = 1.0 / (1.0 - min(y * u_extra, 0.9));
-
- v_gamma_scale = perspective_scale * squish_scale;
-}
diff --git a/src/mbgl/shader/linesdf_shader.cpp b/src/mbgl/shader/linesdf_shader.cpp
index 1358127925..019634546a 100644
--- a/src/mbgl/shader/linesdf_shader.cpp
+++ b/src/mbgl/shader/linesdf_shader.cpp
@@ -1,6 +1,6 @@
#include <mbgl/shader/linesdf_shader.hpp>
-#include <mbgl/shader/linesdf.vertex.hpp>
-#include <mbgl/shader/linesdf.fragment.hpp>
+#include <mbgl/shader/linesdfpattern.vertex.hpp>
+#include <mbgl/shader/linesdfpattern.fragment.hpp>
#include <mbgl/gl/gl.hpp>
#include <cstdio>
@@ -8,7 +8,7 @@
using namespace mbgl;
LineSDFShader::LineSDFShader(gl::GLObjectStore& glObjectStore)
- : Shader("line", shaders::linesdf::vertex, shaders::linesdf::fragment, glObjectStore) {
+ : Shader("linesdfpattern", shaders::linesdfpattern::vertex, shaders::linesdfpattern::fragment, glObjectStore) {
a_data = MBGL_CHECK_ERROR(glGetAttribLocation(getID(), "a_data"));
}
diff --git a/src/mbgl/shader/outline.fragment.glsl b/src/mbgl/shader/outline.fragment.glsl
deleted file mode 100644
index eccda714e5..0000000000
--- a/src/mbgl/shader/outline.fragment.glsl
+++ /dev/null
@@ -1,9 +0,0 @@
-uniform vec4 u_color;
-
-varying vec2 v_pos;
-
-void main() {
- float dist = length(v_pos - gl_FragCoord.xy);
- float alpha = smoothstep(1.0, 0.0, dist);
- gl_FragColor = u_color * alpha;
-}
diff --git a/src/mbgl/shader/outline.vertex.glsl b/src/mbgl/shader/outline.vertex.glsl
deleted file mode 100644
index f720b8d629..0000000000
--- a/src/mbgl/shader/outline.vertex.glsl
+++ /dev/null
@@ -1,10 +0,0 @@
-attribute vec2 a_pos;
-uniform mat4 u_matrix;
-uniform vec2 u_world;
-
-varying vec2 v_pos;
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos, 0, 1);
- v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;
-}
diff --git a/src/mbgl/shader/outlinepattern.fragment.glsl b/src/mbgl/shader/outlinepattern.fragment.glsl
deleted file mode 100644
index dd1efd63e6..0000000000
--- a/src/mbgl/shader/outlinepattern.fragment.glsl
+++ /dev/null
@@ -1,30 +0,0 @@
-uniform float u_opacity;
-uniform vec2 u_pattern_tl_a;
-uniform vec2 u_pattern_br_a;
-uniform vec2 u_pattern_tl_b;
-uniform vec2 u_pattern_br_b;
-uniform float u_mix;
-
-uniform sampler2D u_image;
-
-varying vec2 v_pos_a;
-varying vec2 v_pos_b;
-varying vec2 v_pos;
-
-void main() {
- vec2 imagecoord = mod(v_pos_a, 1.0);
- vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);
- vec4 color1 = texture2D(u_image, pos);
-
- vec2 imagecoord_b = mod(v_pos_b, 1.0);
- vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);
- vec4 color2 = texture2D(u_image, pos2);
-
- // find distance to outline for alpha interpolation
-
- float dist = length(v_pos - gl_FragCoord.xy);
- float alpha = smoothstep(1.0, 0.0, dist);
-
-
- gl_FragColor = mix(color1, color2, u_mix) * alpha * u_opacity;
-} \ No newline at end of file
diff --git a/src/mbgl/shader/outlinepattern.vertex.glsl b/src/mbgl/shader/outlinepattern.vertex.glsl
deleted file mode 100644
index e31b77b560..0000000000
--- a/src/mbgl/shader/outlinepattern.vertex.glsl
+++ /dev/null
@@ -1,21 +0,0 @@
-uniform vec2 u_patternscale_a;
-uniform vec2 u_patternscale_b;
-uniform vec2 u_offset_a;
-uniform vec2 u_offset_b;
-
-attribute vec2 a_pos;
-
-uniform mat4 u_matrix;
-uniform vec2 u_world;
-
-varying vec2 v_pos_a;
-varying vec2 v_pos_b;
-varying vec2 v_pos;
-
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos, 0, 1);
- v_pos_a = u_patternscale_a * a_pos + u_offset_a;
- v_pos_b = u_patternscale_b * a_pos + u_offset_b;
- v_pos = (gl_Position.xy/gl_Position.w + 1.0) / 2.0 * u_world;
-}
diff --git a/src/mbgl/shader/pattern.fragment.glsl b/src/mbgl/shader/pattern.fragment.glsl
deleted file mode 100644
index a28a52ce36..0000000000
--- a/src/mbgl/shader/pattern.fragment.glsl
+++ /dev/null
@@ -1,24 +0,0 @@
-uniform float u_opacity;
-uniform vec2 u_pattern_tl_a;
-uniform vec2 u_pattern_br_a;
-uniform vec2 u_pattern_tl_b;
-uniform vec2 u_pattern_br_b;
-uniform float u_mix;
-
-uniform sampler2D u_image;
-
-varying vec2 v_pos_a;
-varying vec2 v_pos_b;
-
-void main() {
-
- vec2 imagecoord = mod(v_pos_a, 1.0);
- vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);
- vec4 color1 = texture2D(u_image, pos);
-
- vec2 imagecoord_b = mod(v_pos_b, 1.0);
- vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);
- vec4 color2 = texture2D(u_image, pos2);
-
- gl_FragColor = mix(color1, color2, u_mix) * u_opacity;
-}
diff --git a/src/mbgl/shader/pattern.vertex.glsl b/src/mbgl/shader/pattern.vertex.glsl
deleted file mode 100644
index 1363f17300..0000000000
--- a/src/mbgl/shader/pattern.vertex.glsl
+++ /dev/null
@@ -1,17 +0,0 @@
-uniform mat4 u_matrix;
-uniform vec2 u_patternscale_a;
-uniform vec2 u_patternscale_b;
-
-uniform vec2 u_offset_a;
-uniform vec2 u_offset_b;
-
-attribute vec2 a_pos;
-
-varying vec2 v_pos_a;
-varying vec2 v_pos_b;
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos, 0, 1);
- v_pos_a = u_patternscale_a * a_pos + u_offset_a;
- v_pos_b = u_patternscale_b * a_pos + u_offset_b;
-}
diff --git a/src/mbgl/shader/plain.fragment.glsl b/src/mbgl/shader/plain.fragment.glsl
deleted file mode 100644
index 8df552c171..0000000000
--- a/src/mbgl/shader/plain.fragment.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-uniform vec4 u_color;
-
-void main() {
- gl_FragColor = u_color;
-}
diff --git a/src/mbgl/shader/plain.vertex.glsl b/src/mbgl/shader/plain.vertex.glsl
deleted file mode 100644
index 866c3cd2f3..0000000000
--- a/src/mbgl/shader/plain.vertex.glsl
+++ /dev/null
@@ -1,7 +0,0 @@
-attribute vec2 a_pos;
-
-uniform mat4 u_matrix;
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos, 0, 1);
-}
diff --git a/src/mbgl/shader/plain_shader.cpp b/src/mbgl/shader/plain_shader.cpp
index 1b5a7819b3..49d26ffa3c 100644
--- a/src/mbgl/shader/plain_shader.cpp
+++ b/src/mbgl/shader/plain_shader.cpp
@@ -1,6 +1,6 @@
#include <mbgl/shader/plain_shader.hpp>
-#include <mbgl/shader/plain.vertex.hpp>
-#include <mbgl/shader/plain.fragment.hpp>
+#include <mbgl/shader/fill.vertex.hpp>
+#include <mbgl/shader/fill.fragment.hpp>
#include <mbgl/gl/gl.hpp>
#include <cstdio>
@@ -8,7 +8,7 @@
using namespace mbgl;
PlainShader::PlainShader(gl::GLObjectStore& glObjectStore)
- : Shader("plain", shaders::plain::vertex, shaders::plain::fragment, glObjectStore) {
+ : Shader("fill", shaders::fill::vertex, shaders::fill::fragment, glObjectStore) {
}
void PlainShader::bind(GLbyte* offset) {
diff --git a/src/mbgl/shader/raster.fragment.glsl b/src/mbgl/shader/raster.fragment.glsl
deleted file mode 100644
index 333de76dc1..0000000000
--- a/src/mbgl/shader/raster.fragment.glsl
+++ /dev/null
@@ -1,36 +0,0 @@
-uniform sampler2D u_image;
-uniform float u_opacity;
-
-varying vec2 v_pos;
-
-uniform float u_brightness_low;
-uniform float u_brightness_high;
-
-uniform float u_saturation_factor;
-uniform float u_contrast_factor;
-uniform vec3 u_spin_weights;
-
-void main() {
-
- vec4 color = texture2D(u_image, v_pos) * u_opacity;
- vec3 rgb = color.rgb;
-
- // spin
- rgb = vec3(
- dot(rgb, u_spin_weights.xyz),
- dot(rgb, u_spin_weights.zxy),
- dot(rgb, u_spin_weights.yzx));
-
- // saturation
- float average = (color.r + color.g + color.b) / 3.0;
- rgb += (average - rgb) * u_saturation_factor;
-
- // contrast
- rgb = (rgb - 0.5) * u_contrast_factor + 0.5;
-
- // brightness
- vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);
- vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);
-
- gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb), color.a);
-}
diff --git a/src/mbgl/shader/raster.vertex.glsl b/src/mbgl/shader/raster.vertex.glsl
deleted file mode 100644
index 107b82a0ef..0000000000
--- a/src/mbgl/shader/raster.vertex.glsl
+++ /dev/null
@@ -1,13 +0,0 @@
-uniform mat4 u_matrix;
-uniform float u_buffer;
-
-attribute vec2 a_pos;
-
-varying vec2 v_pos;
-
-
-void main() {
- gl_Position = u_matrix * vec4(a_pos, 0, 1);
- float dimension = (8192.0 + 2.0 * u_buffer);
- v_pos = (a_pos / dimension) + (u_buffer / dimension);
-}
diff --git a/src/mbgl/shader/sdf.fragment.glsl b/src/mbgl/shader/sdf.fragment.glsl
deleted file mode 100644
index 3a6a4a8c37..0000000000
--- a/src/mbgl/shader/sdf.fragment.glsl
+++ /dev/null
@@ -1,17 +0,0 @@
-uniform sampler2D u_texture;
-uniform sampler2D u_fadetexture;
-uniform vec4 u_color;
-uniform float u_buffer;
-uniform float u_gamma;
-
-varying vec2 v_tex;
-varying vec2 v_fade_tex;
-varying float v_gamma_scale;
-
-void main() {
- float dist = texture2D(u_texture, v_tex).a;
- float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;
- float gamma = u_gamma * v_gamma_scale;
- float alpha = smoothstep(u_buffer - gamma, u_buffer + gamma, dist) * fade_alpha;
- gl_FragColor = u_color * alpha;
-}
diff --git a/src/mbgl/shader/sdf.vertex.glsl b/src/mbgl/shader/sdf.vertex.glsl
deleted file mode 100644
index 818378475e..0000000000
--- a/src/mbgl/shader/sdf.vertex.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-attribute vec2 a_pos;
-attribute vec2 a_offset;
-attribute vec4 a_data1;
-attribute vec4 a_data2;
-
-
-// matrix is for the vertex position, exmatrix is for rotating and projecting
-// the extrusion vector.
-uniform mat4 u_matrix;
-uniform mat4 u_exmatrix;
-uniform float u_zoom;
-uniform bool u_skewed;
-
-uniform vec2 u_texsize;
-
-varying vec2 v_tex;
-varying vec2 v_fade_tex;
-varying float v_gamma_scale;
-
-void main() {
- vec2 a_tex = a_data1.xy;
- float a_labelminzoom = a_data1[2];
- float a_angle = a_data1[3];
- vec2 a_zoom = a_data2.st;
- float a_minzoom = a_zoom[0];
- float a_maxzoom = a_zoom[1];
-
- // u_zoom is the current zoom level adjusted for the change in font size
- float show = step(a_minzoom, u_zoom) * (1.0 - step(a_maxzoom, u_zoom));
-
- if (u_skewed) {
- vec4 extrude = u_exmatrix * vec4(a_offset * show / 64.0, 0, 0);
- gl_Position = u_matrix * vec4(a_pos + extrude.xy, 0, 1);
- } else {
- vec4 extrude = u_exmatrix * vec4(a_offset * show / 64.0, 0, 0);
- gl_Position = u_matrix * vec4(a_pos, 0, 1) + extrude;
- }
-
- v_gamma_scale = (gl_Position.w - 0.5);
-
- v_tex = a_tex / u_texsize;
- v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);
-}