summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/group_by_layout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/group_by_layout.cpp')
-rw-r--r--src/mbgl/renderer/group_by_layout.cpp34
1 files changed, 9 insertions, 25 deletions
diff --git a/src/mbgl/renderer/group_by_layout.cpp b/src/mbgl/renderer/group_by_layout.cpp
index 41a895902c..5f78dd0d2b 100644
--- a/src/mbgl/renderer/group_by_layout.cpp
+++ b/src/mbgl/renderer/group_by_layout.cpp
@@ -1,6 +1,4 @@
#include <mbgl/renderer/group_by_layout.hpp>
-#include <mbgl/renderer/render_layer.hpp>
-#include <mbgl/style/layer_impl.hpp>
#include <mbgl/style/conversion/stringify.hpp>
#include <mbgl/util/rapidjson.hpp>
@@ -11,38 +9,24 @@
namespace mbgl {
-std::string layoutKey(const RenderLayer& layer) {
+std::string layoutKey(const style::Layer::Impl& impl) {
using namespace style::conversion;
rapidjson::StringBuffer s;
rapidjson::Writer<rapidjson::StringBuffer> writer(s);
writer.StartArray();
- writer.Uint64(reinterpret_cast<uint64_t>(layer.baseImpl->getTypeInfo()));
- writer.String(layer.baseImpl->source);
- writer.String(layer.baseImpl->sourceLayer);
- writer.Double(layer.baseImpl->minZoom);
- writer.Double(layer.baseImpl->maxZoom);
- writer.Uint(static_cast<uint32_t>(layer.baseImpl->visibility));
- stringify(writer, layer.baseImpl->filter);
- layer.baseImpl->stringifyLayout(writer);
+ writer.Uint64(reinterpret_cast<uint64_t>(impl.getTypeInfo()));
+ writer.String(impl.source);
+ writer.String(impl.sourceLayer);
+ writer.Double(impl.minZoom);
+ writer.Double(impl.maxZoom);
+ writer.Uint(static_cast<uint32_t>(impl.visibility));
+ stringify(writer, impl.filter);
+ impl.stringifyLayout(writer);
writer.EndArray();
return s.GetString();
}
-std::vector<std::vector<const RenderLayer*>> groupByLayout(const std::vector<std::unique_ptr<RenderLayer>>& layers) {
- std::unordered_map<std::string, std::vector<const RenderLayer*>> map;
- for (auto& layer : layers) {
- map[layoutKey(*layer)].push_back(layer.get());
- }
-
- std::vector<std::vector<const RenderLayer*>> result;
- for (auto& pair : map) {
- result.push_back(pair.second);
- }
-
- return result;
-}
-
} // namespace mbgl