summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/image_atlas.hpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-02 17:47:44 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-04 16:56:43 +0300
commite797e318311aac3d4dc1f559b835d9253d65c520 (patch)
treeb7d5558e4a0555ad4c21880629b20b41064188bd /src/mbgl/renderer/image_atlas.hpp
parentd2e867e3e007fcbcb78cb80bce931db1ddc3cf5c (diff)
downloadqtlocation-mapboxgl-e797e318311aac3d4dc1f559b835d9253d65c520.tar.gz
[core] ImageManager is not used at tile upload stage
Diffstat (limited to 'src/mbgl/renderer/image_atlas.hpp')
-rw-r--r--src/mbgl/renderer/image_atlas.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mbgl/renderer/image_atlas.hpp b/src/mbgl/renderer/image_atlas.hpp
index b59153c4a6..56d7406a0a 100644
--- a/src/mbgl/renderer/image_atlas.hpp
+++ b/src/mbgl/renderer/image_atlas.hpp
@@ -54,15 +54,23 @@ public:
using ImagePositions = std::map<std::string, ImagePosition>;
+class ImagePatch {
+public:
+ ImagePatch(Immutable<style::Image::Impl> image_,
+ const Rect<uint16_t>& textureRect_)
+ : image(std::move(image_))
+ , textureRect(textureRect_) {}
+ Immutable<style::Image::Impl> image;
+ Rect<uint16_t> textureRect;
+};
+
class ImageAtlas {
public:
PremultipliedImage image;
ImagePositions iconPositions;
ImagePositions patternPositions;
- void patchUpdatedImages(gfx::UploadPass&, gfx::Texture&, const ImageManager&);
-private:
- void patchUpdatedImage(gfx::UploadPass&, gfx::Texture&, ImagePosition& position, const ImageManager& imageManager, const std::string& name, uint16_t version);
+ std::vector<ImagePatch> getImagePatchesAndUpdateVersions(const ImageManager&);
};
ImageAtlas makeImageAtlas(const ImageMap&, const ImageMap&, const std::unordered_map<std::string, uint32_t>& versionMap);