diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/render_style.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/style_diff.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/style_diff.hpp | 9 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/mbgl/renderer/render_style.cpp b/src/mbgl/renderer/render_style.cpp index dc49a20646..0998722f75 100644 --- a/src/mbgl/renderer/render_style.cpp +++ b/src/mbgl/renderer/render_style.cpp @@ -134,7 +134,7 @@ void RenderStyle::update(const UpdateParameters& parameters) { // Update changed images. for (const auto& entry : imageDiff.changed) { - spriteAtlas->updateImage(entry.second[1]); + spriteAtlas->updateImage(entry.second.after); } if (parameters.spriteLoaded && !spriteAtlas->isLoaded()) { @@ -157,7 +157,7 @@ void RenderStyle::update(const UpdateParameters& parameters) { // Update render layers for changed layers. for (const auto& entry : layerDiff.changed) { - renderLayers.at(entry.first)->setImpl(entry.second[1]); + renderLayers.at(entry.first)->setImpl(entry.second.after); } // Update layers for class and zoom changes. diff --git a/src/mbgl/renderer/style_diff.cpp b/src/mbgl/renderer/style_diff.cpp index cd547f2a0b..0017280310 100644 --- a/src/mbgl/renderer/style_diff.cpp +++ b/src/mbgl/renderer/style_diff.cpp @@ -33,7 +33,7 @@ StyleDifference<T> diff(const Immutable<std::vector<T>>& a, bIt++; } else { if (aIt->get() != bIt->get()) { - result.changed.emplace((*bIt)->id, std::array<T, 2> {{ *aIt, *bIt }}); + result.changed.emplace((*bIt)->id, StyleChange<T> { *aIt, *bIt }); } aIt++; bIt++; @@ -73,7 +73,7 @@ bool hasLayoutDifference(const LayerDifference& layerDiff, const std::string& la const auto it = layerDiff.changed.find(layerID); if (it == layerDiff.changed.end()) return false; - return it->second[0]->hasLayoutDifference(*it->second[1]); + return it->second.before->hasLayoutDifference(*it->second.after); } } // namespace mbgl diff --git a/src/mbgl/renderer/style_diff.hpp b/src/mbgl/renderer/style_diff.hpp index ef788c380c..a5b42fc662 100644 --- a/src/mbgl/renderer/style_diff.hpp +++ b/src/mbgl/renderer/style_diff.hpp @@ -11,11 +11,18 @@ namespace mbgl { template <class T> +class StyleChange { +public: + T before; + T after; +}; + +template <class T> class StyleDifference { public: std::unordered_map<std::string, T> added; std::unordered_map<std::string, T> removed; - std::unordered_map<std::string, std::array<T, 2>> changed; + std::unordered_map<std::string, StyleChange<T>> changed; }; using ImmutableImage = Immutable<style::Image::Impl>; |