summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-06 17:26:56 -0700
committerKonstantin Käfer <mail@kkaefer.com>2016-06-10 12:42:14 +0200
commitd62baffb1b73b0dd135c253e0a52565fcc33f2ec (patch)
tree41445d9738bfe014a013abbd4c9827359394e2cd /src
parentb45713e5e98b31b73ab1aaa278bf746116a345fc (diff)
downloadqtlocation-mapboxgl-d62baffb1b73b0dd135c253e0a52565fcc33f2ec.tar.gz
[core] Merge AnnotationTileSource into AnnotationTileData
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/annotation/annotation_manager.cpp16
-rw-r--r--src/mbgl/annotation/annotation_manager.hpp8
-rw-r--r--src/mbgl/tile/annotation_tile_data.cpp15
-rw-r--r--src/mbgl/tile/annotation_tile_data.hpp4
-rw-r--r--src/mbgl/tile/annotation_tile_source.cpp24
-rw-r--r--src/mbgl/tile/annotation_tile_source.hpp26
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