diff options
-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 { |