summaryrefslogtreecommitdiff
path: root/src/mbgl/annotation
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2015-11-27 10:35:09 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2015-11-27 17:47:02 +0200
commitd55aa7929cb10d40a58b6b7a8ed73bddd4f0a407 (patch)
treeb2ce29bdba9df471693d4e7ac6e6dfe4b8adfe63 /src/mbgl/annotation
parent1f0820c8e82810fb957cb1cd17fb4327debfc0e5 (diff)
downloadqtlocation-mapboxgl-d55aa7929cb10d40a58b6b7a8ed73bddd4f0a407.tar.gz
[core] Source should receive a ref to MapData just once
Diffstat (limited to 'src/mbgl/annotation')
-rw-r--r--src/mbgl/annotation/annotation_manager.cpp6
-rw-r--r--src/mbgl/annotation/annotation_manager.hpp4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp
index 5b1138a14a..c6d5413ec0 100644
--- a/src/mbgl/annotation/annotation_manager.cpp
+++ b/src/mbgl/annotation/annotation_manager.cpp
@@ -1,5 +1,6 @@
#include <mbgl/annotation/annotation_manager.hpp>
#include <mbgl/annotation/annotation_tile.hpp>
+#include <mbgl/map/map_data.hpp>
#include <mbgl/style/style.hpp>
#include <mbgl/layer/symbol_layer.hpp>
@@ -10,7 +11,8 @@ namespace mbgl {
const std::string AnnotationManager::SourceID = "com.mapbox.annotations";
const std::string AnnotationManager::PointLayerID = "com.mapbox.annotations.points";
-AnnotationManager::AnnotationManager() = default;
+AnnotationManager::AnnotationManager(MapData& data_) : data(data_) {}
+
AnnotationManager::~AnnotationManager() = default;
AnnotationIDs
@@ -108,7 +110,7 @@ std::unique_ptr<AnnotationTile> AnnotationManager::getTile(const TileID& tileID)
void AnnotationManager::updateStyle(Style& style) {
// Create annotation source, point layer, and point bucket
if (!style.getSource(SourceID)) {
- std::unique_ptr<Source> source = std::make_unique<Source>();
+ std::unique_ptr<Source> source = std::make_unique<Source>(data);
source->info.type = SourceType::Annotations;
source->info.source_id = SourceID;
source->enabled = true;
diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp
index f1b41c9ccc..16ebd16716 100644
--- a/src/mbgl/annotation/annotation_manager.hpp
+++ b/src/mbgl/annotation/annotation_manager.hpp
@@ -13,6 +13,7 @@
namespace mbgl {
+class MapData;
class PointAnnotation;
class ShapeAnnotation;
class AnnotationTile;
@@ -21,7 +22,7 @@ class Style;
class AnnotationManager : private util::noncopyable {
public:
- AnnotationManager();
+ AnnotationManager(MapData&);
~AnnotationManager();
AnnotationIDs addPointAnnotations(const std::vector<PointAnnotation>&, const uint8_t maxZoom);
@@ -42,6 +43,7 @@ public:
private:
std::unique_ptr<AnnotationTile> getTile(const TileID&);
+ MapData& data;
AnnotationID nextID = 0;
PointAnnotationImpl::Tree pointTree;
PointAnnotationImpl::Map pointAnnotations;