diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-05-17 18:19:48 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-05-23 12:59:27 -0700 |
commit | 71c8f6aa10368084bc0a365b15f004d0629a8b67 (patch) | |
tree | 14f22e8b37c0ca5112f5c4cefe34e72882dee3b7 /src/mbgl/shaders/fill_pattern.cpp | |
parent | 72b13cef6a83594b15f47bfeaee782504def619e (diff) | |
download | qtlocation-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.cpp | 5 |
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; |