diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-01-11 18:55:56 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-01-14 12:53:44 +0200 |
commit | 12295ef3355170d1877da5ef183eecfe7ad982be (patch) | |
tree | 68a11fc84042d9eb38cb62622dd3066d90bb1952 /src/mbgl/renderer/layers/render_symbol_layer.cpp | |
parent | 4db55c3ace71fcc07c3ba4de99d411bf59d46397 (diff) | |
download | qtlocation-mapboxgl-12295ef3355170d1877da5ef183eecfe7ad982be.tar.gz |
[core] SymbolBucket: use single map for paint properties data
Obviates unnecessary lookups, improves readability.
Diffstat (limited to 'src/mbgl/renderer/layers/render_symbol_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 61dcf8fa47..bc605fe9eb 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -102,7 +102,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { } SymbolBucket& bucket = *bucket_; assert(bucket.paintProperties.find(getID()) != bucket.paintProperties.end()); - const auto& evaluated_ = bucket.paintProperties.at(getID()); + const auto& bucketPaintProperties = bucket.paintProperties.at(getID()); + const auto& evaluated_ = bucketPaintProperties.evaluated; const auto& layout = bucket.layout; auto draw = [&] (auto& program, @@ -187,7 +188,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.icon, bucket.iconSizeBinder, values, - bucket.paintPropertyBinders.at(getID()).first, + bucketPaintProperties.iconBinders, paintPropertyValues); } @@ -197,7 +198,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.icon, bucket.iconSizeBinder, values, - bucket.paintPropertyBinders.at(getID()).first, + bucketPaintProperties.iconBinders, paintPropertyValues); } } else { @@ -206,7 +207,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.icon, bucket.iconSizeBinder, values, - bucket.paintPropertyBinders.at(getID()).first, + bucketPaintProperties.iconBinders, paintPropertyValues); } } @@ -240,7 +241,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.text, bucket.textSizeBinder, values, - bucket.paintPropertyBinders.at(getID()).second, + bucketPaintProperties.textBinders, paintPropertyValues); } @@ -250,7 +251,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { bucket.text, bucket.textSizeBinder, values, - bucket.paintPropertyBinders.at(getID()).second, + bucketPaintProperties.textBinders, paintPropertyValues); } } @@ -405,7 +406,8 @@ void RenderSymbolLayer::sortRenderTiles(const TransformState& state) { } void RenderSymbolLayer::updateBucketPaintProperties(Bucket* bucket) const { - static_cast<SymbolBucket*>(bucket)->paintProperties[getID()] = evaluated; + assert(bucket->supportsLayer(*baseImpl)); + static_cast<SymbolBucket*>(bucket)->paintProperties.at(getID()).evaluated = evaluated; } } // namespace mbgl |