diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/circle_bucket.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/fill_bucket.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/line_bucket.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.cpp | 11 | ||||
-rw-r--r-- | src/mbgl/style/paint_property_binder.hpp | 3 |
5 files changed, 22 insertions, 10 deletions
diff --git a/src/mbgl/renderer/circle_bucket.cpp b/src/mbgl/renderer/circle_bucket.cpp index 6722d04497..e437eff135 100644 --- a/src/mbgl/renderer/circle_bucket.cpp +++ b/src/mbgl/renderer/circle_bucket.cpp @@ -13,8 +13,10 @@ using namespace style; CircleBucket::CircleBucket(const BucketParameters& parameters, const std::vector<const Layer*>& layers) : mode(parameters.mode) { for (const auto& layer : layers) { - paintPropertyBinders.emplace(layer->getID(), - CircleProgram::PaintPropertyBinders( + paintPropertyBinders.emplace( + std::piecewise_construct, + std::forward_as_tuple(layer->getID()), + std::forward_as_tuple( layer->as<CircleLayer>()->impl->paint.evaluated, parameters.tileID.overscaledZ)); } diff --git a/src/mbgl/renderer/fill_bucket.cpp b/src/mbgl/renderer/fill_bucket.cpp index 64efafb108..d566461673 100644 --- a/src/mbgl/renderer/fill_bucket.cpp +++ b/src/mbgl/renderer/fill_bucket.cpp @@ -29,8 +29,10 @@ struct GeometryTooLongException : std::exception {}; FillBucket::FillBucket(const BucketParameters& parameters, const std::vector<const Layer*>& layers) { for (const auto& layer : layers) { - paintPropertyBinders.emplace(layer->getID(), - FillProgram::PaintPropertyBinders( + paintPropertyBinders.emplace( + std::piecewise_construct, + std::forward_as_tuple(layer->getID()), + std::forward_as_tuple( layer->as<FillLayer>()->impl->paint.evaluated, parameters.tileID.overscaledZ)); } diff --git a/src/mbgl/renderer/line_bucket.cpp b/src/mbgl/renderer/line_bucket.cpp index c4028f4b31..13caea4539 100644 --- a/src/mbgl/renderer/line_bucket.cpp +++ b/src/mbgl/renderer/line_bucket.cpp @@ -18,8 +18,10 @@ LineBucket::LineBucket(const BucketParameters& parameters, : layout(layout_.evaluate(PropertyEvaluationParameters(parameters.tileID.overscaledZ))), overscaling(parameters.tileID.overscaleFactor()) { for (const auto& layer : layers) { - paintPropertyBinders.emplace(layer->getID(), - LineProgram::PaintPropertyBinders( + paintPropertyBinders.emplace( + std::piecewise_construct, + std::forward_as_tuple(layer->getID()), + std::forward_as_tuple( layer->as<LineLayer>()->impl->paint.evaluated, parameters.tileID.overscaledZ)); } diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp index fa4178dda1..0132e2773b 100644 --- a/src/mbgl/renderer/symbol_bucket.cpp +++ b/src/mbgl/renderer/symbol_bucket.cpp @@ -18,10 +18,13 @@ SymbolBucket::SymbolBucket(style::SymbolLayoutProperties::Evaluated layout_, sdfIcons(sdfIcons_), iconsNeedLinear(iconsNeedLinear_) { for (const auto& pair : layerPaintProperties) { - paintPropertyBinders.emplace(pair.first, std::make_pair( - SymbolIconProgram::PaintPropertyBinders(pair.second.first, zoom), - SymbolSDFTextProgram::PaintPropertyBinders(pair.second.second, zoom) - )); + paintPropertyBinders.emplace( + std::piecewise_construct, + std::forward_as_tuple(pair.first), + std::forward_as_tuple( + std::piecewise_construct, + std::forward_as_tuple(pair.second.first, zoom), + std::forward_as_tuple(pair.second.second, zoom))); } } diff --git a/src/mbgl/style/paint_property_binder.hpp b/src/mbgl/style/paint_property_binder.hpp index 3654424472..630c1104f0 100644 --- a/src/mbgl/style/paint_property_binder.hpp +++ b/src/mbgl/style/paint_property_binder.hpp @@ -188,6 +188,9 @@ public: (void)z; // Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56958 } + PaintPropertyBinders(PaintPropertyBinders&&) = default; + PaintPropertyBinders(const PaintPropertyBinders&) = delete; + void populateVertexVectors(const GeometryTileFeature& feature, std::size_t length) { util::ignore({ (binders.template get<Ps>()->populateVertexVector(feature, length), 0)... |