diff options
Diffstat (limited to 'src/mbgl/tile')
-rw-r--r-- | src/mbgl/tile/geojson_tile.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/geojson_tile.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile_data.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile_data.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/tile_cache.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/tile/tile_cache.hpp | 14 | ||||
-rw-r--r-- | src/mbgl/tile/tile_data.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/tile_data.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/tile_worker.cpp | 11 | ||||
-rw-r--r-- | src/mbgl/tile/tile_worker.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile_data.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile_data.hpp | 2 |
14 files changed, 44 insertions, 38 deletions
diff --git a/src/mbgl/tile/geojson_tile.cpp b/src/mbgl/tile/geojson_tile.cpp index 39cca01728..9162cedf14 100644 --- a/src/mbgl/tile/geojson_tile.cpp +++ b/src/mbgl/tile/geojson_tile.cpp @@ -101,7 +101,8 @@ std::unique_ptr<GeoJSONTile> convertTile(const mapbox::geojsonvt::Tile& tile) { return std::make_unique<GeoJSONTile>(layer); } -GeoJSONTileMonitor::GeoJSONTileMonitor(mapbox::geojsonvt::GeoJSONVT* geojsonvt_, const TileID& id) +GeoJSONTileMonitor::GeoJSONTileMonitor(mapbox::geojsonvt::GeoJSONVT* geojsonvt_, + const OverscaledTileID& id) : tileID(id), geojsonvt(geojsonvt_) { } @@ -119,7 +120,8 @@ void GeoJSONTileMonitor::setGeoJSONVT(mapbox::geojsonvt::GeoJSONVT* vt) { void GeoJSONTileMonitor::update() { if (geojsonvt) { - auto tile = convertTile(geojsonvt->getTile(tileID.sourceZ, tileID.x, tileID.y)); + auto tile = convertTile( + geojsonvt->getTile(tileID.canonical.z, tileID.canonical.x, tileID.canonical.y)); callback(nullptr, std::move(tile), {}, {}); } } diff --git a/src/mbgl/tile/geojson_tile.hpp b/src/mbgl/tile/geojson_tile.hpp index f6d9d9cce7..768f005482 100644 --- a/src/mbgl/tile/geojson_tile.hpp +++ b/src/mbgl/tile/geojson_tile.hpp @@ -2,7 +2,7 @@ #define MBGL_ANNOTATION_GEOJSON_VT_TILE #include <mbgl/tile/geometry_tile.hpp> -#include <mbgl/map/tile_id.hpp> +#include <mbgl/tile/tile_id.hpp> #include <unordered_map> @@ -56,7 +56,7 @@ private: class GeoJSONTileMonitor : public GeometryTileMonitor { public: - GeoJSONTileMonitor(mapbox::geojsonvt::GeoJSONVT*, const TileID&); + GeoJSONTileMonitor(mapbox::geojsonvt::GeoJSONVT*, const OverscaledTileID&); virtual ~GeoJSONTileMonitor(); std::unique_ptr<AsyncRequest> monitorTile(const GeometryTileMonitor::Callback&) override; @@ -67,7 +67,7 @@ private: void update(); public: - const TileID tileID; + const OverscaledTileID tileID; private: mapbox::geojsonvt::GeoJSONVT* geojsonvt = nullptr; diff --git a/src/mbgl/tile/raster_tile_data.cpp b/src/mbgl/tile/raster_tile_data.cpp index abf46b22f0..10445cdcdd 100644 --- a/src/mbgl/tile/raster_tile_data.cpp +++ b/src/mbgl/tile/raster_tile_data.cpp @@ -8,7 +8,7 @@ using namespace mbgl; -RasterTileData::RasterTileData(const TileID& id_, +RasterTileData::RasterTileData(const OverscaledTileID& id_, float pixelRatio, const std::string& urlTemplate, gl::TexturePool &texturePool_, @@ -20,7 +20,8 @@ RasterTileData::RasterTileData(const TileID& id_, worker(worker_) { state = State::loading; - const Resource resource = Resource::tile(urlTemplate, pixelRatio, id.x, id.y, id.sourceZ); + const Resource resource = + Resource::tile(urlTemplate, pixelRatio, id.canonical.x, id.canonical.y, id.canonical.z); req = fileSource.request(resource, [callback, this](Response res) { if (res.error) { callback(std::make_exception_ptr(std::runtime_error(res.error->message))); diff --git a/src/mbgl/tile/raster_tile_data.hpp b/src/mbgl/tile/raster_tile_data.hpp index dfc8b85731..af15bba948 100644 --- a/src/mbgl/tile/raster_tile_data.hpp +++ b/src/mbgl/tile/raster_tile_data.hpp @@ -13,7 +13,7 @@ namespace gl { class TexturePool; } class RasterTileData : public TileData { public: - RasterTileData(const TileID&, + RasterTileData(const OverscaledTileID&, float pixelRatio, const std::string& urlTemplate, gl::TexturePool&, diff --git a/src/mbgl/tile/tile_cache.cpp b/src/mbgl/tile/tile_cache.cpp index 423b355827..0f0a231d54 100644 --- a/src/mbgl/tile/tile_cache.cpp +++ b/src/mbgl/tile/tile_cache.cpp @@ -15,11 +15,9 @@ void TileCache::setSize(size_t size_) { } assert(orderedKeys.size() <= size); - - tiles.reserve(size); } -void TileCache::add(uint64_t key, std::shared_ptr<TileData> data) { +void TileCache::add(const OverscaledTileID& key, std::shared_ptr<TileData> data) { // insert new or query existing data if (tiles.emplace(key, data).second) { @@ -38,7 +36,7 @@ void TileCache::add(uint64_t key, std::shared_ptr<TileData> data) { assert(orderedKeys.size() <= size); }; -std::shared_ptr<TileData> TileCache::get(uint64_t key) { +std::shared_ptr<TileData> TileCache::get(const OverscaledTileID& key) { std::shared_ptr<TileData> data; @@ -53,7 +51,7 @@ std::shared_ptr<TileData> TileCache::get(uint64_t key) { return data; }; -bool TileCache::has(uint64_t key) { +bool TileCache::has(const OverscaledTileID& key) { return tiles.find(key) != tiles.end(); } diff --git a/src/mbgl/tile/tile_cache.hpp b/src/mbgl/tile/tile_cache.hpp index 4d0b42242a..8bf747035e 100644 --- a/src/mbgl/tile/tile_cache.hpp +++ b/src/mbgl/tile/tile_cache.hpp @@ -1,9 +1,11 @@ #ifndef MBGL_MAP_TILE_CACHE #define MBGL_MAP_TILE_CACHE +#include <mbgl/tile/tile_id.hpp> + #include <list> #include <memory> -#include <unordered_map> +#include <map> namespace mbgl { @@ -15,14 +17,14 @@ public: void setSize(size_t); size_t getSize() const { return size; }; - void add(uint64_t key, std::shared_ptr<TileData> data); - std::shared_ptr<TileData> get(uint64_t key); - bool has(uint64_t key); + void add(const OverscaledTileID& key, std::shared_ptr<TileData> data); + std::shared_ptr<TileData> get(const OverscaledTileID& key); + bool has(const OverscaledTileID& key); void clear(); private: - std::unordered_map<uint64_t, std::shared_ptr<TileData>> tiles; - std::list<uint64_t> orderedKeys; + std::map<OverscaledTileID, std::shared_ptr<TileData>> tiles; + std::list<OverscaledTileID> orderedKeys; size_t size; }; diff --git a/src/mbgl/tile/tile_data.cpp b/src/mbgl/tile/tile_data.cpp index 49a426b466..d5179c5b0b 100644 --- a/src/mbgl/tile/tile_data.cpp +++ b/src/mbgl/tile/tile_data.cpp @@ -4,7 +4,7 @@ namespace mbgl { -TileData::TileData(const TileID& id_) +TileData::TileData(const OverscaledTileID& id_) : id(id_), state(State::initial) { } @@ -25,7 +25,7 @@ const char* TileData::StateToString(const State state) { } void TileData::dumpDebugLogs() const { - Log::Info(Event::General, "TileData::id: %s", std::string(id).c_str()); + Log::Info(Event::General, "TileData::id: %s", util::toString(id).c_str()); Log::Info(Event::General, "TileData::state: %s", TileData::StateToString(state)); } diff --git a/src/mbgl/tile/tile_data.hpp b/src/mbgl/tile/tile_data.hpp index 338f246da0..b608c026ad 100644 --- a/src/mbgl/tile/tile_data.hpp +++ b/src/mbgl/tile/tile_data.hpp @@ -5,7 +5,7 @@ #include <mbgl/util/chrono.hpp> #include <mbgl/util/optional.hpp> #include <mbgl/util/feature.hpp> -#include <mbgl/map/tile_id.hpp> +#include <mbgl/tile/tile_id.hpp> #include <mbgl/renderer/bucket.hpp> #include <mbgl/text/placement_config.hpp> #include <mbgl/tile/geometry_tile.hpp> @@ -73,7 +73,7 @@ public: return state == State::partial || state == State::parsed; } - TileData(const TileID&); + TileData(const OverscaledTileID&); virtual ~TileData(); // Mark this tile as no longer needed and cancel any pending work. @@ -106,7 +106,7 @@ public: void dumpDebugLogs() const; - const TileID id; + const OverscaledTileID id; optional<SystemTimePoint> modified; optional<SystemTimePoint> expires; diff --git a/src/mbgl/tile/tile_worker.cpp b/src/mbgl/tile/tile_worker.cpp index bc1fdb4195..0a9ab35779 100644 --- a/src/mbgl/tile/tile_worker.cpp +++ b/src/mbgl/tile/tile_worker.cpp @@ -11,12 +11,13 @@ #include <mbgl/renderer/symbol_bucket.hpp> #include <mbgl/platform/log.hpp> #include <mbgl/util/constants.hpp> +#include <mbgl/util/string.hpp> #include <mbgl/util/exception.hpp> #include <utility> using namespace mbgl; -TileWorker::TileWorker(TileID id_, +TileWorker::TileWorker(const OverscaledTileID& id_, std::string sourceID_, SpriteStore& spriteStore_, GlyphAtlas& glyphAtlas_, @@ -139,8 +140,8 @@ void TileWorker::parseLayer(const StyleLayer* layer) { // Skip this bucket if we are to not render this if ((layer->source != sourceID) || - (id.z < std::floor(layer->minZoom)) || - (id.z >= std::ceil(layer->maxZoom)) || + (id.overscaledZ < std::floor(layer->minZoom)) || + (id.overscaledZ >= std::ceil(layer->maxZoom)) || (layer->visibility == VisibilityType::None)) { return; } @@ -149,8 +150,8 @@ void TileWorker::parseLayer(const StyleLayer* layer) { if (!geometryLayer) { // The layer specified in the bucket does not exist. Do nothing. if (debug::tileParseWarnings) { - Log::Warning(Event::ParseTile, "layer '%s' does not exist in tile %d/%d/%d", - layer->sourceLayer.c_str(), id.z, id.x, id.y); + Log::Warning(Event::ParseTile, "layer '%s' does not exist in tile %s", + layer->sourceLayer.c_str(), util::toString(id).c_str()); } return; } diff --git a/src/mbgl/tile/tile_worker.hpp b/src/mbgl/tile/tile_worker.hpp index 7c4b147d08..7cb2536c90 100644 --- a/src/mbgl/tile/tile_worker.hpp +++ b/src/mbgl/tile/tile_worker.hpp @@ -42,7 +42,7 @@ using TileParseResult = variant< class TileWorker : public util::noncopyable { public: - TileWorker(TileID, + TileWorker(const OverscaledTileID&, std::string sourceID, SpriteStore&, GlyphAtlas&, @@ -66,7 +66,7 @@ private: void insertBucket(const std::string& name, std::unique_ptr<Bucket>); std::unique_ptr<CollisionTile> placeLayers(PlacementConfig); - const TileID id; + const OverscaledTileID id; const std::string sourceID; SpriteStore& spriteStore; diff --git a/src/mbgl/tile/vector_tile.cpp b/src/mbgl/tile/vector_tile.cpp index 25314c114c..27edd85324 100644 --- a/src/mbgl/tile/vector_tile.cpp +++ b/src/mbgl/tile/vector_tile.cpp @@ -217,7 +217,8 @@ std::string VectorTileLayer::getName() const { return name; } -VectorTileMonitor::VectorTileMonitor(const TileID& tileID_, float pixelRatio_, const std::string& urlTemplate_, FileSource& fileSource_) +VectorTileMonitor::VectorTileMonitor(const OverscaledTileID& tileID_, float pixelRatio_, + const std::string& urlTemplate_, FileSource& fileSource_) : tileID(tileID_), pixelRatio(pixelRatio_), urlTemplate(urlTemplate_), @@ -225,7 +226,8 @@ VectorTileMonitor::VectorTileMonitor(const TileID& tileID_, float pixelRatio_, c } std::unique_ptr<AsyncRequest> VectorTileMonitor::monitorTile(const GeometryTileMonitor::Callback& callback) { - const Resource resource = Resource::tile(urlTemplate, pixelRatio, tileID.x, tileID.y, tileID.sourceZ); + const Resource resource = Resource::tile(urlTemplate, pixelRatio, tileID.canonical.x, + tileID.canonical.y, tileID.canonical.z); return fileSource.request(resource, [callback, this](Response res) { if (res.error) { callback(std::make_exception_ptr(std::runtime_error(res.error->message)), nullptr, res.modified, res.expires); diff --git a/src/mbgl/tile/vector_tile.hpp b/src/mbgl/tile/vector_tile.hpp index 153d7dcef4..c0892cd243 100644 --- a/src/mbgl/tile/vector_tile.hpp +++ b/src/mbgl/tile/vector_tile.hpp @@ -2,7 +2,7 @@ #define MBGL_MAP_VECTOR_TILE #include <mbgl/tile/geometry_tile.hpp> -#include <mbgl/map/tile_id.hpp> +#include <mbgl/tile/tile_id.hpp> #include <protozero/pbf_reader.hpp> #include <map> @@ -72,12 +72,12 @@ class FileSource; class VectorTileMonitor : public GeometryTileMonitor { public: - VectorTileMonitor(const TileID&, float pixelRatio, const std::string& urlTemplate, FileSource&); + VectorTileMonitor(const OverscaledTileID&, float pixelRatio, const std::string& urlTemplate, FileSource&); std::unique_ptr<AsyncRequest> monitorTile(const GeometryTileMonitor::Callback&) override; private: - TileID tileID; + OverscaledTileID tileID; float pixelRatio; std::string urlTemplate; FileSource& fileSource; diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index 1840dca9fe..77e314e3b9 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -10,7 +10,7 @@ namespace mbgl { -VectorTileData::VectorTileData(const TileID& id_, +VectorTileData::VectorTileData(const OverscaledTileID& id_, std::unique_ptr<GeometryTileMonitor> monitor_, std::string sourceID, Style& style_, diff --git a/src/mbgl/tile/vector_tile_data.hpp b/src/mbgl/tile/vector_tile_data.hpp index 52cef71d1b..e785595913 100644 --- a/src/mbgl/tile/vector_tile_data.hpp +++ b/src/mbgl/tile/vector_tile_data.hpp @@ -19,7 +19,7 @@ class FeatureIndex; class VectorTileData : public TileData { public: - VectorTileData(const TileID&, + VectorTileData(const OverscaledTileID&, std::unique_ptr<GeometryTileMonitor> monitor, std::string sourceID, Style&, |