diff options
author | zmiao <miao.zhao@mapbox.com> | 2020-02-10 23:27:07 +0200 |
---|---|---|
committer | zmiao <miao.zhao@mapbox.com> | 2020-02-11 11:05:18 +0200 |
commit | 7424c4eecb6062e26b7ca3fee154eadff812e665 (patch) | |
tree | 10489b8bc9906eede347912116ab0039c432c5da /src/mbgl/layout/symbol_projection.cpp | |
parent | e0b1642825fe11b2504b51780edd0493527be2bb (diff) | |
download | qtlocation-mapboxgl-7424c4eecb6062e26b7ca3fee154eadff812e665.tar.gz |
Bump GL-JS
Backport GL-JS fix 'Hide glyphs behind the camera'(https://github.com/mapbox/mapbox-gl-js/pull/9229)
Diffstat (limited to 'src/mbgl/layout/symbol_projection.cpp')
-rw-r--r-- | src/mbgl/layout/symbol_projection.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mbgl/layout/symbol_projection.cpp b/src/mbgl/layout/symbol_projection.cpp index 745c1c1d77..4a48af3046 100644 --- a/src/mbgl/layout/symbol_projection.cpp +++ b/src/mbgl/layout/symbol_projection.cpp @@ -410,8 +410,16 @@ namespace mbgl { const float pitchScaledFontSize = pitchWithMap ? fontSize * perspectiveRatio : fontSize / perspectiveRatio; - - const Point<float> anchorPoint = project(placedSymbol.anchorPoint, labelPlaneMatrix).first; + + const auto transformedTileAnchor = project(placedSymbol.anchorPoint, labelPlaneMatrix); + + // Skip labels behind the camera + if (transformedTileAnchor.second <= 0.0) { + hideGlyphs(placedSymbol.glyphOffsets.size(), dynamicVertexArray); + continue; + } + + const Point<float> anchorPoint = transformedTileAnchor.first; PlacementResult placeUnflipped = placeGlyphsAlongLine(placedSymbol, pitchScaledFontSize, false /*unflipped*/, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, dynamicVertexArray, anchorPoint, state.getSize().aspectRatio()); |