diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-11-20 21:05:45 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-11-29 11:12:55 +0200 |
commit | 6419cd0ab2ba877bbae51ae7590ddba47765dac7 (patch) | |
tree | b167f864db677365d281423e1df755f7fd383989 /include/mbgl | |
parent | ab5572b0bc3d386893592b842ad58b356b227a5d (diff) | |
download | qtlocation-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/mbgl')
-rw-r--r-- | include/mbgl/style/sources/geojson_source.hpp | 12 |
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; }; |