summaryrefslogtreecommitdiff
path: root/src/mbgl/shaders/fill_pattern.cpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-05-17 18:19:48 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-05-23 12:59:27 -0700
commit71c8f6aa10368084bc0a365b15f004d0629a8b67 (patch)
tree14f22e8b37c0ca5112f5c4cefe34e72882dee3b7 /src/mbgl/shaders/fill_pattern.cpp
parent72b13cef6a83594b15f47bfeaee782504def619e (diff)
downloadqtlocation-mapboxgl-71c8f6aa10368084bc0a365b15f004d0629a8b67.tar.gz
[core] Move pattern coordinate division by texture size into shader
This makes pattern usage more like icons, and will be necessary for data-driven *-pattern properties.
Diffstat (limited to 'src/mbgl/shaders/fill_pattern.cpp')
-rw-r--r--src/mbgl/shaders/fill_pattern.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mbgl/shaders/fill_pattern.cpp b/src/mbgl/shaders/fill_pattern.cpp
index 0357fed40e..a81339bb25 100644
--- a/src/mbgl/shaders/fill_pattern.cpp
+++ b/src/mbgl/shaders/fill_pattern.cpp
@@ -40,6 +40,7 @@ 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 vec2 u_texsize;
uniform float u_mix;
uniform sampler2D u_image;
@@ -53,11 +54,11 @@ void main() {
vec2 imagecoord = mod(v_pos_a, 1.0);
- vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);
+ vec2 pos = mix(u_pattern_tl_a / u_texsize, u_pattern_br_a / u_texsize, 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);
+ vec2 pos2 = mix(u_pattern_tl_b / u_texsize, u_pattern_br_b / u_texsize, imagecoord_b);
vec4 color2 = texture2D(u_image, pos2);
gl_FragColor = mix(color1, color2, u_mix) * opacity;