From 8c83bbb07eb7e7899a3c0dfed79f71232fd21e56 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 30 Jan 2019 17:45:31 +0200 Subject: [core] Remove paintProperties() method from some render layers PatternLayout can directly access layer's `evaluated` field. Besides, obviates accessing of moved `evaluatedProps` inside PatternLayout constructor. --- src/mbgl/layout/pattern_layout.hpp | 8 ++++---- src/mbgl/renderer/bucket.hpp | 2 +- .../renderer/layers/render_fill_extrusion_layer.cpp | 12 ------------ .../renderer/layers/render_fill_extrusion_layer.hpp | 1 - src/mbgl/renderer/layers/render_fill_layer.cpp | 12 ------------ src/mbgl/renderer/layers/render_fill_layer.hpp | 1 - src/mbgl/renderer/layers/render_line_layer.cpp | 19 ------------------- src/mbgl/renderer/layers/render_line_layer.hpp | 4 ---- 8 files changed, 5 insertions(+), 54 deletions(-) diff --git a/src/mbgl/layout/pattern_layout.hpp b/src/mbgl/layout/pattern_layout.hpp index a29221c547..744f6ab170 100644 --- a/src/mbgl/layout/pattern_layout.hpp +++ b/src/mbgl/layout/pattern_layout.hpp @@ -13,7 +13,7 @@ public: std::string max; }; -using PatternLayerMap = std::unordered_map; +using PatternLayerMap = std::map; class PatternFeature { public: @@ -44,8 +44,7 @@ public: groupID = renderLayer->getID(); for (const auto& layer : layers) { - const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast(layer)->paintProperties(); - layerPaintProperties.emplace(layer->getID(), std::move(evaluatedProps)); + const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast(layer)->evaluated; const auto patternProperty = evaluatedProps.template get(); const auto constantPattern = patternProperty.constantOr(Faded >{ "", ""}); // determine if layer group has any layers that use *-pattern property and add @@ -57,6 +56,7 @@ public: patternDependencies.emplace(constantPattern.to, ImageType::Pattern); patternDependencies.emplace(constantPattern.from, ImageType::Pattern); } + layerPaintProperties.emplace(layer->getID(), std::move(evaluatedProps)); } const size_t featureCount = sourceLayer->featureCount(); @@ -65,7 +65,7 @@ public: if (!leader.filter(style::expression::EvaluationContext { this->zoom, feature.get() })) continue; - std::unordered_map patternDependencyMap; + PatternLayerMap patternDependencyMap; if (hasPattern) { for (const auto& layer : layers) { const auto it = layerPaintProperties.find(layer->getID()); diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp index 6a7944a395..c7570fcd02 100644 --- a/src/mbgl/renderer/bucket.hpp +++ b/src/mbgl/renderer/bucket.hpp @@ -14,7 +14,7 @@ class Context; class RenderLayer; class PatternDependency; -using PatternLayerMap = std::unordered_map; +using PatternLayerMap = std::map; class Bucket { public: diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index 488adefa9b..2672af5135 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -218,18 +218,6 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource* getID()); } } -style::FillExtrusionPaintProperties::PossiblyEvaluated RenderFillExtrusionLayer::paintProperties() const { - return FillExtrusionPaintProperties::PossiblyEvaluated { - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get() - }; -} bool RenderFillExtrusionLayer::queryIntersectsFeature( const GeometryCoordinates& queryGeometry, diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp index 481c394fbd..e73a152df5 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp @@ -26,7 +26,6 @@ public: bool hasTransition() const override; bool hasCrossfade() const override; void render(PaintParameters&, RenderSource*) override; - style::FillExtrusionPaintProperties::PossiblyEvaluated paintProperties() const; bool queryIntersectsFeature( const GeometryCoordinates&, diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index b4f8cb8e0b..891db976f6 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -236,18 +236,6 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { } } -style::FillPaintProperties::PossiblyEvaluated RenderFillLayer::paintProperties() const { - return FillPaintProperties::PossiblyEvaluated { - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get() - }; -} - bool RenderFillLayer::queryIntersectsFeature( const GeometryCoordinates& queryGeometry, const GeometryTileFeature& feature, diff --git a/src/mbgl/renderer/layers/render_fill_layer.hpp b/src/mbgl/renderer/layers/render_fill_layer.hpp index 6ce90be4a3..57bebec7be 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.hpp +++ b/src/mbgl/renderer/layers/render_fill_layer.hpp @@ -22,7 +22,6 @@ public: bool hasTransition() const override; bool hasCrossfade() const override; void render(PaintParameters&, RenderSource*) override; - style::FillPaintProperties::PossiblyEvaluated paintProperties() const; bool queryIntersectsFeature( const GeometryCoordinates&, diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 601f717ec2..b7785d1cb7 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -264,24 +264,6 @@ void RenderLineLayer::updateColorRamp() { } } -RenderLinePaintProperties::PossiblyEvaluated RenderLineLayer::paintProperties() const { - return RenderLinePaintProperties::PossiblyEvaluated { - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get(), - evaluated.get() - - }; -} - float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const float zoom) const { float lineWidth = evaluated.get() .evaluate(feature, zoom, style::LineWidth::defaultValue()); @@ -294,7 +276,6 @@ float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const fl } } - void RenderLineLayer::update() { updateColorRamp(); } diff --git a/src/mbgl/renderer/layers/render_line_layer.hpp b/src/mbgl/renderer/layers/render_line_layer.hpp index 5819484a2c..3d050528c4 100644 --- a/src/mbgl/renderer/layers/render_line_layer.hpp +++ b/src/mbgl/renderer/layers/render_line_layer.hpp @@ -17,8 +17,6 @@ class RenderLinePaintProperties : public style::ConcatenateProperties< style::LinePaintProperties, style::Properties> {}; -class LineBucket; - class RenderLineLayer: public RenderLayer { public: using StyleLayerImpl = style::LineLayer::Impl; @@ -34,8 +32,6 @@ public: void render(PaintParameters&, RenderSource*) override; void update() final; - RenderLinePaintProperties::PossiblyEvaluated paintProperties() const; - bool queryIntersectsFeature( const GeometryCoordinates&, const GeometryTileFeature&, -- cgit v1.2.1