summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-01 21:45:53 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-04 16:56:43 +0300
commitd2e867e3e007fcbcb78cb80bce931db1ddc3cf5c (patch)
tree0ea50bb6cf4144bea490a1ccfcae453f45141446
parent63dd17e2bbdb2c956789865c1d517305f860a175 (diff)
downloadqtlocation-mapboxgl-d2e867e3e007fcbcb78cb80bce931db1ddc3cf5c.tar.gz
[core] Introduce ImageManager::getSharedImage
-rw-r--r--src/mbgl/renderer/image_manager.cpp9
-rw-r--r--src/mbgl/renderer/image_manager.hpp1
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mbgl/renderer/image_manager.cpp b/src/mbgl/renderer/image_manager.cpp
index ff4c20eefb..3c22cdcf32 100644
--- a/src/mbgl/renderer/image_manager.cpp
+++ b/src/mbgl/renderer/image_manager.cpp
@@ -84,9 +84,16 @@ void ImageManager::removeImage(const std::string& id) {
}
const style::Image::Impl* ImageManager::getImage(const std::string& id) const {
+ if (auto* image = getSharedImage(id)) {
+ return image->get();
+ }
+ return nullptr;
+}
+
+const Immutable<style::Image::Impl>* ImageManager::getSharedImage(const std::string& id) const {
const auto it = images.find(id);
if (it != images.end()) {
- return it->second.get();
+ return &(it->second);
}
return nullptr;
}
diff --git a/src/mbgl/renderer/image_manager.hpp b/src/mbgl/renderer/image_manager.hpp
index 5305358513..9097418681 100644
--- a/src/mbgl/renderer/image_manager.hpp
+++ b/src/mbgl/renderer/image_manager.hpp
@@ -36,6 +36,7 @@ public:
void dumpDebugLogs() const;
const style::Image::Impl* getImage(const std::string&) const;
+ const Immutable<style::Image::Impl>* getSharedImage(const std::string&) const;
void addImage(Immutable<style::Image::Impl>);
bool updateImage(Immutable<style::Image::Impl>);