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 /src/mbgl/renderer/sources/render_geojson_source.cpp | |
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 'src/mbgl/renderer/sources/render_geojson_source.cpp')
-rw-r--r-- | src/mbgl/renderer/sources/render_geojson_source.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp index 4ed9dd9334..94d171cf18 100644 --- a/src/mbgl/renderer/sources/render_geojson_source.cpp +++ b/src/mbgl/renderer/sources/render_geojson_source.cpp @@ -95,8 +95,7 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_, const uint8_t maxZ = impl().getZoomRange().max; for (const auto& pair : tilePyramid.getTiles()) { if (pair.first.canonical.z <= maxZ) { - static_cast<GeoJSONTile*>(pair.second.get()) - ->updateData(data_->getTile(pair.first.canonical), needsRelayout); + static_cast<GeoJSONTile*>(pair.second.get())->updateData(data_, needsRelayout); } } } @@ -112,8 +111,8 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_, util::tileSize, impl().getZoomRange(), optional<LatLngBounds>{}, - [&, data_] (const OverscaledTileID& tileID) { - return std::make_unique<GeoJSONTile>(tileID, impl().id, parameters, data_->getTile(tileID.canonical)); + [&, data_](const OverscaledTileID& tileID) { + return std::make_unique<GeoJSONTile>(tileID, impl().id, parameters, data_); }); } |