diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2018-11-13 17:39:26 +0200 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2018-11-19 14:06:21 +0200 |
commit | 77911f1cc955b1adeb143dd15f6fc0d77763440c (patch) | |
tree | e8a84100c7eae6ab23ffc1a4420db3ed6760dd01 /src/mbgl/text/placement.cpp | |
parent | 20c471669c102d1740558c2c7d1ea77bb9ef8530 (diff) | |
download | qtlocation-mapboxgl-77911f1cc955b1adeb143dd15f6fc0d77763440c.tar.gz |
[core] Replace RenderSymbolLayer downcast with symbol interface
Diffstat (limited to 'src/mbgl/text/placement.cpp')
-rw-r--r-- | src/mbgl/text/placement.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index 5c6cdcde6c..367e421412 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -1,6 +1,6 @@ #include <mbgl/text/placement.hpp> #include <mbgl/renderer/render_layer.hpp> -#include <mbgl/renderer/layers/render_symbol_layer.hpp> +#include <mbgl/renderer/layers/render_layer_symbol_interface.hpp> #include <mbgl/renderer/render_tile.hpp> #include <mbgl/tile/geometry_tile.hpp> #include <mbgl/renderer/buckets/symbol_bucket.hpp> @@ -62,24 +62,24 @@ Placement::Placement(const TransformState& state_, MapMode mapMode_, const bool , collisionGroups(crossSourceCollisions) {} -void Placement::placeLayer(RenderSymbolLayer& symbolLayer, const mat4& projMatrix, bool showCollisionBoxes) { +void Placement::placeLayer(const RenderLayerSymbolInterface& symbolInterface, const mat4& projMatrix, bool showCollisionBoxes) { std::unordered_set<uint32_t> seenCrossTileIDs; - for (RenderTile& renderTile : symbolLayer.renderTiles) { + for (const RenderTile& renderTile : symbolInterface.getRenderTiles()) { if (!renderTile.tile.isRenderable()) { continue; } assert(renderTile.tile.kind == Tile::Kind::Geometry); GeometryTile& geometryTile = static_cast<GeometryTile&>(renderTile.tile); - auto bucket = renderTile.tile.getBucket<SymbolBucket>(*symbolLayer.baseImpl); + auto bucket = symbolInterface.getSymbolBucket(renderTile); if (!bucket) { continue; } SymbolBucket& symbolBucket = *bucket; - if (symbolBucket.bucketLeaderID != symbolLayer.getID()) { + if (symbolBucket.bucketLeaderID != symbolInterface.layerID()) { // Only place this layer if it's the "group leader" for the bucket continue; } @@ -276,20 +276,20 @@ void Placement::commit(const Placement& prevPlacement, TimePoint now) { fadeStartTime = placementChanged ? commitTime : prevPlacement.fadeStartTime; } -void Placement::updateLayerOpacities(RenderSymbolLayer& symbolLayer) { +void Placement::updateLayerOpacities(const RenderLayerSymbolInterface& symbolInterface) { std::set<uint32_t> seenCrossTileIDs; - for (RenderTile& renderTile : symbolLayer.renderTiles) { + for (const RenderTile& renderTile : symbolInterface.getRenderTiles()) { if (!renderTile.tile.isRenderable()) { continue; } - auto bucket = renderTile.tile.getBucket<SymbolBucket>(*symbolLayer.baseImpl); + auto bucket = symbolInterface.getSymbolBucket(renderTile); if (!bucket) { continue; } SymbolBucket& symbolBucket = *bucket; - if (symbolBucket.bucketLeaderID != symbolLayer.getID()) { + if (symbolBucket.bucketLeaderID != symbolInterface.layerID()) { // Only update opacities this layer if it's the "group leader" for the bucket continue; } |