diff options
Diffstat (limited to 'src/mbgl/text/placement.cpp')
-rw-r--r-- | src/mbgl/text/placement.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index 43d9713717..df78e93356 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -157,10 +157,7 @@ void Placement::placeBucket(const SymbolBucket& bucket, const bool rotateIconWithMap = layout.get<style::IconRotationAlignment>() == style::AlignmentType::Map; const bool pitchIconWithMap = layout.get<style::IconPitchAlignment>() == style::AlignmentType::Map; - mat4 posMatrix; - const auto& projMatrix = state.getProjectionMatrix(); - state.matrixFor(posMatrix, renderTile.id); - matrix::multiply(posMatrix, projMatrix, posMatrix); + const mat4& posMatrix = renderTile.matrix; mat4 textLabelPlaneMatrix = getLabelPlaneMatrix(posMatrix, pitchTextWithMap, rotateTextWithMap, state, pixelsToTileUnits); @@ -212,8 +209,10 @@ void Placement::placeBucket(const SymbolBucket& bucket, std::vector<ProjectedCollisionBox> textBoxes; std::vector<ProjectedCollisionBox> iconBoxes; - auto placeSymbol = [&] (const SymbolInstance& symbolInstance) { - if (seenCrossTileIDs.count(symbolInstance.crossTileID) != 0u) return; + auto placeSymbol = [&](const SymbolInstance& symbolInstance) { + if (symbolInstance.crossTileID == SymbolInstance::kInvalidCrossTileID || + seenCrossTileIDs.count(symbolInstance.crossTileID) != 0u) + return; if (renderTile.holdForFade()) { // Mark all symbols from this tile as "not placed", but don't add to seenCrossTileIDs, because we don't |