diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-09-13 18:32:45 -0700 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-09-22 17:43:28 +0300 |
commit | 486bdddb23c93572c29068a229041b2575f383e8 (patch) | |
tree | 0e50aa7464032fb8628366af544d3c8e5e1a92f8 | |
parent | e8d47269f808845acdc5b3d76033428ac1fb630e (diff) | |
download | qtlocation-mapboxgl-486bdddb23c93572c29068a229041b2575f383e8.tar.gz |
[core] Add interface to add sprites to the style
Unlike annotations, they will go away when we change the style.
-rw-r--r-- | include/mbgl/map/map.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 24 |
2 files changed, 28 insertions, 0 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index 6c478c17f0..914c2cd0b3 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -161,6 +161,10 @@ public: void addLayer(std::unique_ptr<style::Layer>, const optional<std::string>& beforeLayerID = {}); void removeLayer(const std::string& layerID); + // Add image, bound to the style + void addImage(const std::string&, std::unique_ptr<const SpriteImage>); + void removeImage(const std::string&); + // Defaults std::string getStyleName() const; LatLng getDefaultLatLng() const; diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 1c376e40aa..3ff02aae71 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -823,6 +823,30 @@ void Map::removeLayer(const std::string& id) { impl->view.deactivate(); } +void Map::addImage(const std::string& name, std::unique_ptr<const SpriteImage> image) { + if (!impl->style) { + return; + } + + impl->styleMutated = true; + impl->style->spriteAtlas->setSprite(name, std::move(image)); + impl->style->spriteAtlas->updateDirty(); + + update(Update::Repaint); +} + +void Map::removeImage(const std::string& name) { + if (!impl->style) { + return; + } + + impl->styleMutated = true; + impl->style->spriteAtlas->removeSprite(name); + impl->style->spriteAtlas->updateDirty(); + + update(Update::Repaint); +} + #pragma mark - Defaults std::string Map::getStyleName() const { |