summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-20 21:05:45 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-29 11:12:55 +0200
commit6419cd0ab2ba877bbae51ae7590ddba47765dac7 (patch)
treeb167f864db677365d281423e1df755f7fd383989 /include
parentab5572b0bc3d386893592b842ad58b356b227a5d (diff)
downloadqtlocation-mapboxgl-6419cd0ab2ba877bbae51ae7590ddba47765dac7.tar.gz
[core] Calculate GeoJSON tile geometries in a background thread
Call `mapbox::geojsonvt::GeoJSONVT::getTile()` in a background thread, so that the rendering thread is not blocked.
Diffstat (limited to 'include')
-rw-r--r--include/mbgl/style/sources/geojson_source.hpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/include/mbgl/style/sources/geojson_source.hpp b/include/mbgl/style/sources/geojson_source.hpp
index 1cc104b245..9569b61df4 100644
--- a/include/mbgl/style/sources/geojson_source.hpp
+++ b/include/mbgl/style/sources/geojson_source.hpp
@@ -39,17 +39,19 @@ struct GeoJSONOptions {
};
class GeoJSONData {
public:
+ using TileFeatures = mapbox::feature::feature_collection<int16_t>;
+ using Features = mapbox::feature::feature_collection<double>;
static std::shared_ptr<GeoJSONData> create(const GeoJSON&,
Immutable<GeoJSONOptions> = GeoJSONOptions::defaultOptions());
virtual ~GeoJSONData() = default;
- virtual mapbox::feature::feature_collection<int16_t> getTile(const CanonicalTileID&) = 0;
+ virtual void getTile(const CanonicalTileID&, const std::function<void(TileFeatures)>&) = 0;
// SuperclusterData
- virtual mapbox::feature::feature_collection<double> getChildren(const std::uint32_t) = 0;
- virtual mapbox::feature::feature_collection<double> getLeaves(const std::uint32_t,
- const std::uint32_t limit = 10u,
- const std::uint32_t offset = 0u) = 0;
+ virtual Features getChildren(const std::uint32_t) = 0;
+ virtual Features getLeaves(const std::uint32_t,
+ const std::uint32_t limit = 10u,
+ const std::uint32_t offset = 0u) = 0;
virtual std::uint8_t getClusterExpansionZoom(std::uint32_t) = 0;
};