diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-06 17:26:56 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-06-10 12:42:14 +0200 |
commit | d62baffb1b73b0dd135c253e0a52565fcc33f2ec (patch) | |
tree | 41445d9738bfe014a013abbd4c9827359394e2cd /src | |
parent | b45713e5e98b31b73ab1aaa278bf746116a345fc (diff) | |
download | qtlocation-mapboxgl-d62baffb1b73b0dd135c253e0a52565fcc33f2ec.tar.gz |
[core] Merge AnnotationTileSource into AnnotationTileData
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/annotation/annotation_manager.cpp | 16 | ||||
-rw-r--r-- | src/mbgl/annotation/annotation_manager.hpp | 8 | ||||
-rw-r--r-- | src/mbgl/tile/annotation_tile_data.cpp | 15 | ||||
-rw-r--r-- | src/mbgl/tile/annotation_tile_data.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/annotation_tile_source.cpp | 24 | ||||
-rw-r--r-- | src/mbgl/tile/annotation_tile_source.hpp | 26 |
6 files changed, 22 insertions, 71 deletions
diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp index 22cdf313bf..f52cf860cf 100644 --- a/src/mbgl/annotation/annotation_manager.cpp +++ b/src/mbgl/annotation/annotation_manager.cpp @@ -5,7 +5,7 @@ #include <mbgl/annotation/fill_annotation_impl.hpp> #include <mbgl/annotation/style_sourced_annotation_impl.hpp> #include <mbgl/style/source.hpp> -#include <mbgl/tile/annotation_tile_source.hpp> +#include <mbgl/tile/annotation_tile_data.hpp> #include <mbgl/style/style.hpp> #include <mbgl/style/layers/symbol_layer.hpp> #include <mbgl/style/layers/symbol_layer_impl.hpp> @@ -135,18 +135,18 @@ void AnnotationManager::updateStyle(Style& style) { obsoleteShapeAnnotationLayers.clear(); - for (auto& monitor : monitors) { - monitor->update(getTile(monitor->tileID.canonical)); + for (auto& data : monitors) { + data->setData(getTile(data->id.canonical), {}, {}); } } -void AnnotationManager::addTileSource(AnnotationTileSource& monitor) { - monitors.insert(&monitor); - monitor.update(getTile(monitor.tileID.canonical)); +void AnnotationManager::addTileData(AnnotationTileData& data) { + monitors.insert(&data); + data.setData(getTile(data.id.canonical), {}, {}); } -void AnnotationManager::removeTileSource(AnnotationTileSource& monitor) { - monitors.erase(&monitor); +void AnnotationManager::removeTileData(AnnotationTileData& data) { + monitors.erase(&data); } void AnnotationManager::addIcon(const std::string& name, std::shared_ptr<const SpriteImage> sprite) { diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp index 6f2700ab70..2285366123 100644 --- a/src/mbgl/annotation/annotation_manager.hpp +++ b/src/mbgl/annotation/annotation_manager.hpp @@ -15,7 +15,7 @@ namespace mbgl { class AnnotationTile; -class AnnotationTileSource; +class AnnotationTileData; class SymbolAnnotationImpl; class ShapeAnnotationImpl; @@ -41,8 +41,8 @@ public: void updateStyle(style::Style&); - void addTileSource(AnnotationTileSource&); - void removeTileSource(AnnotationTileSource&); + void addTileData(AnnotationTileData&); + void removeTileData(AnnotationTileData&); static const std::string SourceID; static const std::string PointLayerID; @@ -65,7 +65,7 @@ private: SymbolAnnotationMap symbolAnnotations; ShapeAnnotationMap shapeAnnotations; std::vector<std::string> obsoleteShapeAnnotationLayers; - std::set<AnnotationTileSource*> monitors; + std::set<AnnotationTileData*> monitors; SpriteStore spriteStore; SpriteAtlas spriteAtlas; diff --git a/src/mbgl/tile/annotation_tile_data.cpp b/src/mbgl/tile/annotation_tile_data.cpp index 1c24d83451..c6fed3ff53 100644 --- a/src/mbgl/tile/annotation_tile_data.cpp +++ b/src/mbgl/tile/annotation_tile_data.cpp @@ -1,20 +1,21 @@ #include <mbgl/tile/annotation_tile_data.hpp> -#include <mbgl/tile/annotation_tile_source.hpp> #include <mbgl/style/update_parameters.hpp> +#include <mbgl/annotation/annotation_manager.hpp> namespace mbgl { AnnotationTileData::AnnotationTileData(const OverscaledTileID& overscaledTileID, std::string sourceID, const style::UpdateParameters& parameters) - : GeometryTileData(overscaledTileID, sourceID, parameters.style, parameters.mode) { - tileSource = std::make_unique<AnnotationTileSource>(*this, overscaledTileID, parameters.annotationManager); + : GeometryTileData(overscaledTileID, sourceID, parameters.style, parameters.mode), + annotationManager(parameters.annotationManager) { + annotationManager.addTileData(*this); } -AnnotationTileData::~AnnotationTileData() = default; - -void AnnotationTileData::setNecessity(Necessity necessity) { - tileSource->setNecessity(static_cast<TileSource::Necessity>(necessity)); +AnnotationTileData::~AnnotationTileData() { + annotationManager.removeTileData(*this); } +void AnnotationTileData::setNecessity(Necessity) {} + } // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_data.hpp b/src/mbgl/tile/annotation_tile_data.hpp index 7995091a2f..c999cba167 100644 --- a/src/mbgl/tile/annotation_tile_data.hpp +++ b/src/mbgl/tile/annotation_tile_data.hpp @@ -4,7 +4,7 @@ namespace mbgl { -class TileSource; +class AnnotationManager; namespace style { class UpdateParameters; @@ -20,7 +20,7 @@ public: void setNecessity(Necessity) final; private: - std::unique_ptr<TileSource> tileSource; + AnnotationManager& annotationManager; }; } // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_source.cpp b/src/mbgl/tile/annotation_tile_source.cpp deleted file mode 100644 index 1d638d18f5..0000000000 --- a/src/mbgl/tile/annotation_tile_source.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include <mbgl/tile/annotation_tile_source.hpp> -#include <mbgl/tile/geometry_tile.hpp> -#include <mbgl/tile/geometry_tile_data.hpp> -#include <mbgl/annotation/annotation_manager.hpp> -#include <mbgl/util/async_request.hpp> - -namespace mbgl { - -AnnotationTileSource::AnnotationTileSource(GeometryTileData& tileData_, - const OverscaledTileID& tileID_, - AnnotationManager& annotationManager_) - : GeometryTileSource(tileData_), tileID(tileID_), annotationManager(annotationManager_) { - annotationManager.addTileSource(*this); -} - -AnnotationTileSource::~AnnotationTileSource() { - annotationManager.removeTileSource(*this); -} - -void AnnotationTileSource::update(std::unique_ptr<GeometryTile> tile) { - tileData.setData(std::move(tile), {}, {}); -} - -} // namespace mbgl diff --git a/src/mbgl/tile/annotation_tile_source.hpp b/src/mbgl/tile/annotation_tile_source.hpp deleted file mode 100644 index c06ee4a374..0000000000 --- a/src/mbgl/tile/annotation_tile_source.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include <mbgl/tile/tile_source.hpp> -#include <mbgl/tile/tile_id.hpp> - -#include <memory> - -namespace mbgl { - -class AnnotationManager; -class GeometryTile; - -class AnnotationTileSource final : public GeometryTileSource { -public: - AnnotationTileSource(GeometryTileData&, const OverscaledTileID&, AnnotationManager&); - ~AnnotationTileSource(); - - void update(std::unique_ptr<GeometryTile>); - - OverscaledTileID tileID; - -private: - AnnotationManager& annotationManager; -}; - -} // namespace mbgl |