diff options
Diffstat (limited to 'src/mbgl/renderer/painter_symbol.cpp')
-rw-r--r-- | src/mbgl/renderer/painter_symbol.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp index a48c70866c..42355493a5 100644 --- a/src/mbgl/renderer/painter_symbol.cpp +++ b/src/mbgl/renderer/painter_symbol.cpp @@ -51,7 +51,8 @@ void Painter::renderSDF(SymbolBucket &bucket, gammaScale = 1.0f; matrix::rotate_z(exMatrix, exMatrix, state.getNorthOrientationAngle()); } - matrix::scale(exMatrix, exMatrix, s, s, 1); + const bool flippedY = !skewed && state.getViewportMode() == ViewportMode::FlippedY; + matrix::scale(exMatrix, exMatrix, s, flippedY ? -s : s, 1); // If layerStyle.size > bucket.info.fontSize then labels may collide float fontSize = paintSize; @@ -217,7 +218,8 @@ void Painter::renderSymbol(SymbolBucket& bucket, matrix::rotate_z(exMatrix, exMatrix, state.getNorthOrientationAngle()); s = state.getAltitude(); } - matrix::scale(exMatrix, exMatrix, s, s, 1); + const bool flippedY = !skewed && state.getViewportMode() == ViewportMode::FlippedY; + matrix::scale(exMatrix, exMatrix, s, flippedY ? -s : s, 1); matrix::scale(exMatrix, exMatrix, fontScale, fontScale, 1.0f); |