diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-09-06 15:01:34 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-09-16 12:01:06 -0700 |
commit | 41bbd4e4f7d66465433e370ca024ab0239fcace3 (patch) | |
tree | 8fe15fa31d97aafeb175a808e431b437297af88b /src/mbgl/style/source_impl.cpp | |
parent | 0bd66d40ddf9e75f860fe18e7c80de9c840f48ac (diff) | |
download | qtlocation-mapboxgl-41bbd4e4f7d66465433e370ca024ab0239fcace3.tar.gz |
[core] Use an actor model for tile worker concurrency
Diffstat (limited to 'src/mbgl/style/source_impl.cpp')
-rw-r--r-- | src/mbgl/style/source_impl.cpp | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/src/mbgl/style/source_impl.cpp b/src/mbgl/style/source_impl.cpp index e124cde583..58ae3d9f91 100644 --- a/src/mbgl/style/source_impl.cpp +++ b/src/mbgl/style/source_impl.cpp @@ -5,6 +5,7 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/style/update_parameters.hpp> #include <mbgl/style/query_parameters.hpp> +#include <mbgl/text/placement_config.hpp> #include <mbgl/platform/log.hpp> #include <mbgl/math/clamp.hpp> #include <mbgl/util/tile_cover.hpp> @@ -77,7 +78,7 @@ const std::map<UnwrappedTileID, RenderTile>& Source::Impl::getRenderTiles() cons return renderTiles; } -void Source::Impl::loadTiles(const UpdateParameters& parameters) { +void Source::Impl::updateTiles(const UpdateParameters& parameters) { if (!loaded) { return; } @@ -161,28 +162,17 @@ void Source::Impl::loadTiles(const UpdateParameters& parameters) { ++retainIt; } } -} -bool Source::Impl::parseTiles(const UpdateParameters& parameters) { - bool allTilesUpdated = true; - const PlacementConfig newConfig{ parameters.transformState.getAngle(), - parameters.transformState.getPitch(), - parameters.debugOptions & MapDebugOptions::Collision }; + const PlacementConfig config { parameters.transformState.getAngle(), + parameters.transformState.getPitch(), + parameters.debugOptions & MapDebugOptions::Collision }; + for (auto& pair : tiles) { - auto tile = pair.second.get(); - if (parameters.shouldReparsePartialTiles && tile->isIncomplete()) { - if (!tile->parsePending()) { - allTilesUpdated = false; - } - } else { - tile->redoPlacement(newConfig); - } + pair.second->setPlacementConfig(config); } - - return allTilesUpdated; } -void Source::Impl::reload() { +void Source::Impl::reloadTiles() { cache.clear(); for (auto& pair : tiles) { @@ -258,18 +248,14 @@ void Source::Impl::setObserver(SourceObserver* observer_) { observer = observer_; } -void Source::Impl::onTileLoaded(Tile& tile, TileLoadState loadState) { - observer->onTileLoaded(base, tile.id, loadState); +void Source::Impl::onTileChanged(Tile& tile) { + observer->onTileChanged(base, tile.id); } void Source::Impl::onTileError(Tile& tile, std::exception_ptr error) { observer->onTileError(base, tile.id, error); } -void Source::Impl::onTileUpdated(Tile& tile) { - observer->onTileUpdated(base, tile.id); -} - void Source::Impl::dumpDebugLogs() const { Log::Info(Event::General, "Source::id: %s", base.getID().c_str()); Log::Info(Event::General, "Source::loaded: %d", loaded); |