summaryrefslogtreecommitdiff
path: root/src/mbgl/shaders/symbol_sdf.cpp
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2018-03-20 10:06:35 -0700
committerChris Loer <chris.loer@mapbox.com>2018-03-21 13:26:30 -0700
commit4dc191b8da139b19c5aa5a705169647786516a20 (patch)
treebf3b7a8bcf1e12599ad1e3a0606609cb7707a8e8 /src/mbgl/shaders/symbol_sdf.cpp
parentd4f2bc07ca424fe6c4a596dac91ab247634e7aab (diff)
downloadqtlocation-mapboxgl-4dc191b8da139b19c5aa5a705169647786516a20.tar.gz
[core] Avoid flashing on pitched overzoomed tiles.
Clamps perspective ratios in shaders. Fixes issue #11487. Port of GL JS PR #6365.
Diffstat (limited to 'src/mbgl/shaders/symbol_sdf.cpp')
-rw-r--r--src/mbgl/shaders/symbol_sdf.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mbgl/shaders/symbol_sdf.cpp b/src/mbgl/shaders/symbol_sdf.cpp
index 441eaf7aac..46bab10be5 100644
--- a/src/mbgl/shaders/symbol_sdf.cpp
+++ b/src/mbgl/shaders/symbol_sdf.cpp
@@ -156,7 +156,10 @@ void main() {
highp float distance_ratio = u_pitch_with_map ?
camera_to_anchor_distance / u_camera_to_center_distance :
u_camera_to_center_distance / camera_to_anchor_distance;
- highp float perspective_ratio = 0.5 + 0.5 * distance_ratio;
+ highp float perspective_ratio = clamp(
+ 0.5 + 0.5 * distance_ratio,
+ 0.0, // Prevents oversized near-field symbols in pitched/overzoomed tiles
+ 4.0);
size *= perspective_ratio;