diff options
Diffstat (limited to 'src/mbgl/layout/symbol_layout.cpp')
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 03cfe506ec..0eb98f7569 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -40,16 +40,18 @@ expression::Value sectionOptionsToValue(const SectionOptions& options) { } return result; } -} // namespace +inline const SymbolLayerProperties& toSymbolLayerProperties(const Immutable<LayerProperties>& layer) { + return static_cast<const SymbolLayerProperties&>(*layer); +} +} // namespace SymbolLayout::SymbolLayout(const BucketParameters& parameters, - const std::vector<const RenderLayer*>& layers, + const std::vector<Immutable<style::LayerProperties>>& layers, std::unique_ptr<GeometryTileLayer> sourceLayer_, ImageDependencies& imageDependencies, GlyphDependencies& glyphDependencies) - : Layout(), - bucketLeaderID(layers.at(0)->getID()), + : bucketLeaderID(layers.front()->baseImpl->id), sourceLayer(std::move(sourceLayer_)), overscaling(parameters.tileID.overscaleFactor()), zoom(parameters.tileID.overscaledZ), @@ -57,11 +59,11 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters, pixelRatio(parameters.pixelRatio), tileSize(util::tileSize * overscaling), tilePixelRatio(float(util::EXTENT) / tileSize), - textSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get<TextSize>()), - iconSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get<IconSize>()) + textSize(toSymbolLayerProperties(layers.at(0)).layerImpl().layout.get<TextSize>()), + iconSize(toSymbolLayerProperties(layers.at(0)).layerImpl().layout.get<IconSize>()) { - const SymbolLayer::Impl& leader = toRenderSymbolLayer(layers.at(0))->impl(); + const SymbolLayer::Impl& leader = toSymbolLayerProperties(layers.at(0)).layerImpl(); layout = leader.layout.evaluate(PropertyEvaluationParameters(zoom)); @@ -104,7 +106,7 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters, layout.get<TextIgnorePlacement>() || layout.get<IconIgnorePlacement>()); for (const auto& layer : layers) { - layerPaintProperties.emplace(layer->getID(), toRenderSymbolLayer(layer)->evaluated); + layerPaintProperties.emplace(layer->baseImpl->id, toSymbolLayerProperties(layer).evaluated); } // Determine glyph dependencies |