diff options
author | Ansis Brammanis <ansis@mapbox.com> | 2017-11-07 13:50:09 -0500 |
---|---|---|
committer | Chris Loer <chris.loer@mapbox.com> | 2017-11-07 11:43:02 -0800 |
commit | 2a814a0f68a870ed626ee7b24e8f41c5f1fcc05c (patch) | |
tree | aeb732f3d79df00563cda9e21df1a253efdd0f41 | |
parent | 6104d0f488e0839c296eca80dea5a43035a9c70b (diff) | |
download | qtlocation-mapboxgl-2a814a0f68a870ed626ee7b24e8f41c5f1fcc05c.tar.gz |
move SymbolInstances to bucket instead of copying
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.hpp | 2 |
3 files changed, 4 insertions, 5 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index ba7aab1de5..f048c0cd6e 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -422,9 +422,8 @@ std::unique_ptr<SymbolBucket> SymbolLayout::place(const bool showCollisionBoxes) const bool mayOverlap = layout.get<TextAllowOverlap>() || layout.get<IconAllowOverlap>() || layout.get<TextIgnorePlacement>() || layout.get<IconIgnorePlacement>(); - auto bucket = std::make_unique<SymbolBucket>(layout, layerPaintProperties, textSize, iconSize, zoom, sdfIcons, iconsNeedLinear, mayOverlap, symbolInstances); + auto bucket = std::make_unique<SymbolBucket>(layout, layerPaintProperties, textSize, iconSize, zoom, sdfIcons, iconsNeedLinear, mayOverlap, std::move(symbolInstances)); - // this iterates over the *bucket's* symbol instances so that it can set the placedsymbol index. TODO cleanup for (SymbolInstance &symbolInstance : bucket->symbolInstances) { const bool hasText = symbolInstance.hasText; diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp index 6799b38d7e..ebcf93f2b1 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.cpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp @@ -18,12 +18,12 @@ SymbolBucket::SymbolBucket(style::SymbolLayoutProperties::PossiblyEvaluated layo bool sdfIcons_, bool iconsNeedLinear_, bool sortFeaturesByY_, - const std::vector<SymbolInstance>& symbolInstances_) + const std::vector<SymbolInstance>&& symbolInstances_) : layout(std::move(layout_)), sdfIcons(sdfIcons_), iconsNeedLinear(iconsNeedLinear_ || iconSize.isDataDriven() || !iconSize.isZoomConstant()), sortFeaturesByY(sortFeaturesByY_), - symbolInstances(symbolInstances_), // TODO maybe not copy + symbolInstances(std::move(symbolInstances_)), textSizeBinder(SymbolSizeBinder::create(zoom, textSize, TextSize::defaultValue())), iconSizeBinder(SymbolSizeBinder::create(zoom, iconSize, IconSize::defaultValue())) { diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp index bcf470be87..4abea90508 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.hpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp @@ -47,7 +47,7 @@ public: bool sdfIcons, bool iconsNeedLinear, bool sortFeaturesByY, - const std::vector<SymbolInstance>&); + const std::vector<SymbolInstance>&&); void upload(gl::Context&) override; bool hasData() const override; |