summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/buckets
diff options
context:
space:
mode:
authorzmiao <miao.zhao@mapbox.com>2020-01-29 12:46:16 +0200
committerzmiao <miao.zhao@mapbox.com>2020-02-12 12:24:05 +0200
commit3e99c08ea610d791b21f1631308451687c464d98 (patch)
treec7f3e20ad9ddc161ab3378d37bde9aa31675da83 /src/mbgl/renderer/buckets
parent4f18d5fa92df175ac30f856a9273a00349b56cc3 (diff)
downloadqtlocation-mapboxgl-3e99c08ea610d791b21f1631308451687c464d98.tar.gz
Enable parse within expression
Add geometry type checker
Diffstat (limited to 'src/mbgl/renderer/buckets')
-rw-r--r--src/mbgl/renderer/buckets/circle_bucket.cpp10
-rw-r--r--src/mbgl/renderer/buckets/circle_bucket.hpp8
-rw-r--r--src/mbgl/renderer/buckets/fill_bucket.cpp14
-rw-r--r--src/mbgl/renderer/buckets/fill_bucket.hpp8
-rw-r--r--src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp14
-rw-r--r--src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp8
-rw-r--r--src/mbgl/renderer/buckets/heatmap_bucket.cpp10
-rw-r--r--src/mbgl/renderer/buckets/heatmap_bucket.hpp8
-rw-r--r--src/mbgl/renderer/buckets/line_bucket.cpp14
-rw-r--r--src/mbgl/renderer/buckets/line_bucket.hpp8
10 files changed, 71 insertions, 31 deletions
diff --git a/src/mbgl/renderer/buckets/circle_bucket.cpp b/src/mbgl/renderer/buckets/circle_bucket.cpp
index 560a74781a..744b559c42 100644
--- a/src/mbgl/renderer/buckets/circle_bucket.cpp
+++ b/src/mbgl/renderer/buckets/circle_bucket.cpp
@@ -41,8 +41,12 @@ bool CircleBucket::hasData() const {
return !segments.empty();
}
-void CircleBucket::addFeature(const GeometryTileFeature& feature, const GeometryCollection& geometry,
- const ImagePositions&, const PatternLayerMap&, std::size_t featureIndex) {
+void CircleBucket::addFeature(const GeometryTileFeature& feature,
+ const GeometryCollection& geometry,
+ const ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t featureIndex,
+ const CanonicalTileID& canonical) {
constexpr const uint16_t vertexLength = 4;
for (auto& circle : geometry) {
@@ -90,7 +94,7 @@ void CircleBucket::addFeature(const GeometryTileFeature& feature, const Geometry
}
for (auto& pair : paintPropertyBinders) {
- pair.second.populateVertexVectors(feature, vertices.elements(), featureIndex, {}, {});
+ pair.second.populateVertexVectors(feature, vertices.elements(), featureIndex, {}, {}, canonical);
}
}
diff --git a/src/mbgl/renderer/buckets/circle_bucket.hpp b/src/mbgl/renderer/buckets/circle_bucket.hpp
index e514f8a5f2..17ddd9dc10 100644
--- a/src/mbgl/renderer/buckets/circle_bucket.hpp
+++ b/src/mbgl/renderer/buckets/circle_bucket.hpp
@@ -18,8 +18,12 @@ public:
CircleBucket(const BucketParameters&, const std::vector<Immutable<style::LayerProperties>>&);
~CircleBucket() override;
- void addFeature(const GeometryTileFeature&, const GeometryCollection&, const ImagePositions&,
- const PatternLayerMap&, std::size_t) override;
+ void addFeature(const GeometryTileFeature&,
+ const GeometryCollection&,
+ const ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t,
+ const CanonicalTileID&) override;
bool hasData() const override;
diff --git a/src/mbgl/renderer/buckets/fill_bucket.cpp b/src/mbgl/renderer/buckets/fill_bucket.cpp
index 6660934f8d..73c2530241 100644
--- a/src/mbgl/renderer/buckets/fill_bucket.cpp
+++ b/src/mbgl/renderer/buckets/fill_bucket.cpp
@@ -44,9 +44,12 @@ FillBucket::FillBucket(const FillBucket::PossiblyEvaluatedLayoutProperties,
FillBucket::~FillBucket() = default;
-void FillBucket::addFeature(const GeometryTileFeature& feature, const GeometryCollection& geometry,
- const ImagePositions& patternPositions, const PatternLayerMap& patternDependencies,
- std::size_t index) {
+void FillBucket::addFeature(const GeometryTileFeature& feature,
+ const GeometryCollection& geometry,
+ const ImagePositions& patternPositions,
+ const PatternLayerMap& patternDependencies,
+ std::size_t index,
+ const CanonicalTileID& canonical) {
for (auto& polygon : classifyRings(geometry)) {
// Optimize polygons with many interior rings for earcut tesselation.
limitHoles(polygon, 500);
@@ -113,9 +116,10 @@ void FillBucket::addFeature(const GeometryTileFeature& feature, const GeometryCo
for (auto& pair : paintPropertyBinders) {
const auto it = patternDependencies.find(pair.first);
if (it != patternDependencies.end()){
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, it->second);
+ pair.second.populateVertexVectors(
+ feature, vertices.elements(), index, patternPositions, it->second, canonical);
} else {
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {});
+ pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {}, canonical);
}
}
}
diff --git a/src/mbgl/renderer/buckets/fill_bucket.hpp b/src/mbgl/renderer/buckets/fill_bucket.hpp
index 7a3f681121..4de97141a7 100644
--- a/src/mbgl/renderer/buckets/fill_bucket.hpp
+++ b/src/mbgl/renderer/buckets/fill_bucket.hpp
@@ -25,8 +25,12 @@ public:
const float zoom,
const uint32_t overscaling);
- void addFeature(const GeometryTileFeature&, const GeometryCollection&, const mbgl::ImagePositions&,
- const PatternLayerMap&, std::size_t) override;
+ void addFeature(const GeometryTileFeature&,
+ const GeometryCollection&,
+ const mbgl::ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t,
+ const CanonicalTileID&) override;
bool hasData() const override;
diff --git a/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp b/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
index 698895fdcf..39c9f9af1e 100644
--- a/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
+++ b/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
@@ -50,9 +50,12 @@ FillExtrusionBucket::FillExtrusionBucket(const FillExtrusionBucket::PossiblyEval
FillExtrusionBucket::~FillExtrusionBucket() = default;
-void FillExtrusionBucket::addFeature(const GeometryTileFeature& feature, const GeometryCollection& geometry,
- const ImagePositions& patternPositions, const PatternLayerMap& patternDependencies,
- std::size_t index) {
+void FillExtrusionBucket::addFeature(const GeometryTileFeature& feature,
+ const GeometryCollection& geometry,
+ const ImagePositions& patternPositions,
+ const PatternLayerMap& patternDependencies,
+ std::size_t index,
+ const CanonicalTileID& canonical) {
for (auto& polygon : classifyRings(geometry)) {
// Optimize polygons with many interior rings for earcut tesselation.
limitHoles(polygon, 500);
@@ -157,9 +160,10 @@ void FillExtrusionBucket::addFeature(const GeometryTileFeature& feature, const G
for (auto& pair : paintPropertyBinders) {
const auto it = patternDependencies.find(pair.first);
if (it != patternDependencies.end()){
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, it->second);
+ pair.second.populateVertexVectors(
+ feature, vertices.elements(), index, patternPositions, it->second, canonical);
} else {
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {});
+ pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {}, canonical);
}
}
}
diff --git a/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp b/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
index 8535f99b70..833eee7a73 100644
--- a/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
+++ b/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
@@ -24,8 +24,12 @@ public:
const float,
const uint32_t);
- void addFeature(const GeometryTileFeature&, const GeometryCollection&, const mbgl::ImagePositions&,
- const PatternLayerMap&, std::size_t) override;
+ void addFeature(const GeometryTileFeature&,
+ const GeometryCollection&,
+ const mbgl::ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t,
+ const CanonicalTileID&) override;
bool hasData() const override;
diff --git a/src/mbgl/renderer/buckets/heatmap_bucket.cpp b/src/mbgl/renderer/buckets/heatmap_bucket.cpp
index 78c4fb7507..31c4bc0e9c 100644
--- a/src/mbgl/renderer/buckets/heatmap_bucket.cpp
+++ b/src/mbgl/renderer/buckets/heatmap_bucket.cpp
@@ -39,8 +39,12 @@ bool HeatmapBucket::hasData() const {
return !segments.empty();
}
-void HeatmapBucket::addFeature(const GeometryTileFeature& feature, const GeometryCollection& geometry,
- const ImagePositions&, const PatternLayerMap&, std::size_t featureIndex) {
+void HeatmapBucket::addFeature(const GeometryTileFeature& feature,
+ const GeometryCollection& geometry,
+ const ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t featureIndex,
+ const CanonicalTileID& canonical) {
constexpr const uint16_t vertexLength = 4;
for (auto& points : geometry) {
@@ -87,7 +91,7 @@ void HeatmapBucket::addFeature(const GeometryTileFeature& feature, const Geometr
}
for (auto& pair : paintPropertyBinders) {
- pair.second.populateVertexVectors(feature, vertices.elements(), featureIndex, {}, {});
+ pair.second.populateVertexVectors(feature, vertices.elements(), featureIndex, {}, {}, canonical);
}
}
diff --git a/src/mbgl/renderer/buckets/heatmap_bucket.hpp b/src/mbgl/renderer/buckets/heatmap_bucket.hpp
index 04d4170b50..0aaff7f298 100644
--- a/src/mbgl/renderer/buckets/heatmap_bucket.hpp
+++ b/src/mbgl/renderer/buckets/heatmap_bucket.hpp
@@ -18,8 +18,12 @@ public:
HeatmapBucket(const BucketParameters&, const std::vector<Immutable<style::LayerProperties>>&);
~HeatmapBucket() override;
- void addFeature(const GeometryTileFeature&, const GeometryCollection&, const ImagePositions&,
- const PatternLayerMap&, std::size_t) override;
+ void addFeature(const GeometryTileFeature&,
+ const GeometryCollection&,
+ const ImagePositions&,
+ const PatternLayerMap&,
+ std::size_t,
+ const CanonicalTileID&) override;
bool hasData() const override;
void upload(gfx::UploadPass&) override;
diff --git a/src/mbgl/renderer/buckets/line_bucket.cpp b/src/mbgl/renderer/buckets/line_bucket.cpp
index c32515e016..fdb110bc9d 100644
--- a/src/mbgl/renderer/buckets/line_bucket.cpp
+++ b/src/mbgl/renderer/buckets/line_bucket.cpp
@@ -27,9 +27,12 @@ LineBucket::LineBucket(const LineBucket::PossiblyEvaluatedLayoutProperties layou
LineBucket::~LineBucket() = default;
-void LineBucket::addFeature(const GeometryTileFeature& feature, const GeometryCollection& geometryCollection,
- const ImagePositions& patternPositions, const PatternLayerMap& patternDependencies,
- std::size_t index) {
+void LineBucket::addFeature(const GeometryTileFeature& feature,
+ const GeometryCollection& geometryCollection,
+ const ImagePositions& patternPositions,
+ const PatternLayerMap& patternDependencies,
+ std::size_t index,
+ const CanonicalTileID& canonical) {
for (auto& line : geometryCollection) {
addGeometry(line, feature);
}
@@ -37,9 +40,10 @@ void LineBucket::addFeature(const GeometryTileFeature& feature, const GeometryCo
for (auto& pair : paintPropertyBinders) {
const auto it = patternDependencies.find(pair.first);
if (it != patternDependencies.end()){
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, it->second);
+ pair.second.populateVertexVectors(
+ feature, vertices.elements(), index, patternPositions, it->second, canonical);
} else {
- pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {});
+ pair.second.populateVertexVectors(feature, vertices.elements(), index, patternPositions, {}, canonical);
}
}
}
diff --git a/src/mbgl/renderer/buckets/line_bucket.hpp b/src/mbgl/renderer/buckets/line_bucket.hpp
index a3237c9df9..a3821d108b 100644
--- a/src/mbgl/renderer/buckets/line_bucket.hpp
+++ b/src/mbgl/renderer/buckets/line_bucket.hpp
@@ -25,8 +25,12 @@ public:
const uint32_t overscaling);
~LineBucket() override;
- void addFeature(const GeometryTileFeature&, const GeometryCollection&, const mbgl::ImagePositions& patternPositions,
- const PatternLayerMap&, std::size_t) override;
+ void addFeature(const GeometryTileFeature&,
+ const GeometryCollection&,
+ const mbgl::ImagePositions& patternPositions,
+ const PatternLayerMap&,
+ std::size_t,
+ const CanonicalTileID&) override;
bool hasData() const override;