[core] Add interface to add sprites to the style
Unlike annotations, they will go away when we change the style.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user