summaryrefslogtreecommitdiff
path: root/src/mbgl/annotation/annotation_manager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/annotation/annotation_manager.hpp')
-rw-r--r--src/mbgl/annotation/annotation_manager.hpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp
index 6906791db7..dee823bc0f 100644
--- a/src/mbgl/annotation/annotation_manager.hpp
+++ b/src/mbgl/annotation/annotation_manager.hpp
@@ -4,7 +4,6 @@
#include <mbgl/annotation/symbol_annotation_impl.hpp>
#include <mbgl/style/image.hpp>
#include <mbgl/map/update.hpp>
-#include <mbgl/style/style.hpp>
#include <mbgl/util/noncopyable.hpp>
#include <mutex>
@@ -21,9 +20,13 @@ class AnnotationTileData;
class SymbolAnnotationImpl;
class ShapeAnnotationImpl;
+namespace style {
+class Style;
+} // namespace style
+
class AnnotationManager : private util::noncopyable {
public:
- AnnotationManager();
+ AnnotationManager(style::Style&);
~AnnotationManager();
AnnotationID addAnnotation(const Annotation&, const uint8_t maxZoom);
@@ -34,7 +37,9 @@ public:
void removeImage(const std::string&);
double getTopOffsetPixelsForImage(const std::string&);
- void updateStyle(style::Style::Impl&);
+ void setStyle(style::Style&);
+ void onStyleLoaded();
+
void updateData();
void addTile(AnnotationTile&);
@@ -52,12 +57,14 @@ private:
Update update(const AnnotationID&, const LineAnnotation&, const uint8_t);
Update update(const AnnotationID&, const FillAnnotation&, const uint8_t);
- void removeAndAdd(const AnnotationID&, const Annotation&, const uint8_t);
-
void remove(const AnnotationID&);
+ void updateStyle();
+
std::unique_ptr<AnnotationTileData> getTileData(const CanonicalTileID&);
+ std::reference_wrapper<style::Style> style;
+
std::mutex mutex;
AnnotationID nextID = 0;
@@ -73,8 +80,7 @@ private:
SymbolAnnotationMap symbolAnnotations;
ShapeAnnotationMap shapeAnnotations;
ImageMap images;
- std::unordered_set<std::string> obsoleteShapeAnnotationLayers;
- std::unordered_set<std::string> obsoleteImages;
+
std::unordered_set<AnnotationTile*> tiles;
friend class AnnotationTile;