summaryrefslogtreecommitdiff
path: root/src/mbgl/text/placement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/text/placement.cpp')
-rw-r--r--src/mbgl/text/placement.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp
index d67da53643..3f9ea07d58 100644
--- a/src/mbgl/text/placement.cpp
+++ b/src/mbgl/text/placement.cpp
@@ -51,6 +51,8 @@ void Placement::placeLayer(RenderSymbolLayer& symbolLayer, const mat4& projMatri
const float scale = std::pow(2, state.getZoom() - renderTile.id.canonical.z);
+ const float pixelRatio = util::EXTENT / (util::tileSize * renderTile.tile.id.overscaleFactor());
+
// TODO perf: do this only once for each tile, not once per layer
state.matrixFor(renderTile.matrix, renderTile.id);
matrix::multiply(renderTile.matrix, projMatrix, renderTile.matrix);
@@ -67,7 +69,7 @@ void Placement::placeLayer(RenderSymbolLayer& symbolLayer, const mat4& projMatri
state,
pixelsToTileUnits);
- placeLayerBucket(symbolBucket, renderTile.matrix, textLabelPlaneMatrix, iconLabelPlaneMatrix, scale, showCollisionBoxes);
+ placeLayerBucket(symbolBucket, renderTile.matrix, textLabelPlaneMatrix, iconLabelPlaneMatrix, scale, pixelRatio, showCollisionBoxes);
}
}
@@ -77,6 +79,7 @@ void Placement::placeLayerBucket(
const mat4& textLabelPlaneMatrix,
const mat4& iconLabelPlaneMatrix,
const float scale,
+ const float pixelRatio,
const bool showCollisionBoxes) {
// TODO collision debug array clearing
@@ -86,7 +89,6 @@ void Placement::placeLayerBucket(
const bool iconWithoutText = !bucket.hasTextData() || bucket.layout.get<TextOptional>();
const bool textWithoutIcon = !bucket.hasIconData() || bucket.layout.get<IconOptional>();
- float pixelRatio = util::EXTENT / util::tileSize;
for (auto& symbolInstance : bucket.symbolInstances) {
@@ -108,7 +110,7 @@ void Placement::placeLayerBucket(
placeText = collisionIndex.placeFeature(symbolInstance.textCollisionFeature,
posMatrix, textLabelPlaneMatrix, pixelRatio,
- placedSymbol,scale, fontSize,
+ placedSymbol, scale, fontSize,
bucket.layout.get<TextAllowOverlap>(),
bucket.layout.get<TextPitchAlignment>() == style::AlignmentType::Map,
showCollisionBoxes);