[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.
This commit is contained in:
Mikhail Pozdnyakov
2019-01-30 17:45:31 +02:00
parent 1d6c36a3e7
commit 429ea6aba5
8 changed files with 5 additions and 54 deletions

View File

@@ -13,7 +13,7 @@ public:
std::string max;
};
using PatternLayerMap = std::unordered_map<std::string, PatternDependency>;
using PatternLayerMap = std::map<std::string, PatternDependency>;
class PatternFeature {
public:
@@ -44,8 +44,7 @@ public:
groupID = renderLayer->getID();
for (const auto& layer : layers) {
const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast<const PatternLayer*>(layer)->paintProperties();
layerPaintProperties.emplace(layer->getID(), std::move(evaluatedProps));
const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast<const PatternLayer*>(layer)->evaluated;
const auto patternProperty = evaluatedProps.template get<typename PatternLayer::PatternProperty>();
const auto constantPattern = patternProperty.constantOr(Faded<std::basic_string<char> >{ "", ""});
// 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<std::string, PatternDependency> patternDependencyMap;
PatternLayerMap patternDependencyMap;
if (hasPattern) {
for (const auto& layer : layers) {
const auto it = layerPaintProperties.find(layer->getID());

View File

@@ -14,7 +14,7 @@ class Context;
class RenderLayer;
class PatternDependency;
using PatternLayerMap = std::unordered_map<std::string, PatternDependency>;
using PatternLayerMap = std::map<std::string, PatternDependency>;
class Bucket {
public:

View File

@@ -218,18 +218,6 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource*
getID());
}
}
style::FillExtrusionPaintProperties::PossiblyEvaluated RenderFillExtrusionLayer::paintProperties() const {
return FillExtrusionPaintProperties::PossiblyEvaluated {
evaluated.get<style::FillExtrusionOpacity>(),
evaluated.get<style::FillExtrusionColor>(),
evaluated.get<style::FillExtrusionTranslate>(),
evaluated.get<style::FillExtrusionTranslateAnchor>(),
evaluated.get<style::FillExtrusionPattern>(),
evaluated.get<style::FillExtrusionHeight>(),
evaluated.get<style::FillExtrusionBase>(),
evaluated.get<style::FillExtrusionVerticalGradient>()
};
}
bool RenderFillExtrusionLayer::queryIntersectsFeature(
const GeometryCoordinates& queryGeometry,

View File

@@ -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&,

View File

@@ -236,18 +236,6 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) {
}
}
style::FillPaintProperties::PossiblyEvaluated RenderFillLayer::paintProperties() const {
return FillPaintProperties::PossiblyEvaluated {
evaluated.get<style::FillAntialias>(),
evaluated.get<style::FillOpacity>(),
evaluated.get<style::FillColor>(),
evaluated.get<style::FillOutlineColor>(),
evaluated.get<style::FillTranslate>(),
evaluated.get<style::FillTranslateAnchor>(),
evaluated.get<style::FillPattern>()
};
}
bool RenderFillLayer::queryIntersectsFeature(
const GeometryCoordinates& queryGeometry,
const GeometryTileFeature& feature,

View File

@@ -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&,

View File

@@ -264,24 +264,6 @@ void RenderLineLayer::updateColorRamp() {
}
}
RenderLinePaintProperties::PossiblyEvaluated RenderLineLayer::paintProperties() const {
return RenderLinePaintProperties::PossiblyEvaluated {
evaluated.get<style::LineOpacity>(),
evaluated.get<style::LineColor>(),
evaluated.get<style::LineTranslate>(),
evaluated.get<style::LineTranslateAnchor>(),
evaluated.get<style::LineWidth>(),
evaluated.get<style::LineGapWidth>(),
evaluated.get<style::LineOffset>(),
evaluated.get<style::LineBlur>(),
evaluated.get<style::LineDasharray>(),
evaluated.get<style::LinePattern>(),
evaluated.get<style::LineGradient>(),
evaluated.get<LineFloorwidth>()
};
}
float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const float zoom) const {
float lineWidth = evaluated.get<style::LineWidth>()
.evaluate(feature, zoom, style::LineWidth::defaultValue());
@@ -294,7 +276,6 @@ float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const fl
}
}
void RenderLineLayer::update() {
updateColorRamp();
}

View File

@@ -17,8 +17,6 @@ class RenderLinePaintProperties : public style::ConcatenateProperties<
style::LinePaintProperties,
style::Properties<LineFloorwidth>> {};
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&,