summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2018-09-20 14:33:08 +0200
committerKonstantin Käfer <mail@kkaefer.com>2018-09-24 11:35:44 +0200
commit153acd981b344d7a3963514cfb3241e8cb27ba2d (patch)
tree477120d32b0c65a260c22aa358363ba15c01cc4c /platform
parent515fcf394f1e93d16b0f86e3db4c10e579fd0f1a (diff)
downloadqtlocation-mapboxgl-153acd981b344d7a3963514cfb3241e8cb27ba2d.tar.gz
[core] Always request 1x and @2x sprite images for portability
When creating a offline region, we've previously only requested the sprite image for the specified resolution. This lead to offline packs not being usable on devices that have a different pixel ratio. We're now requesting both 1x and 2x sprites. Some devices use even higher or fractional pixel ratios. However, we only ever use 1x and 2x sprite images in our requests.
Diffstat (limited to 'platform')
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp
index 118f3aad88..17af0abf3c 100644
--- a/platform/default/mbgl/storage/offline_download.cpp
+++ b/platform/default/mbgl/storage/offline_download.cpp
@@ -209,7 +209,7 @@ OfflineRegionStatus OfflineDownload::getStatus() const {
}
if (!parser.spriteURL.empty()) {
- result->requiredResourceCount += 2;
+ result->requiredResourceCount += 4;
}
return *result;
@@ -306,9 +306,11 @@ void OfflineDownload::activateDownload() {
}
if (!parser.spriteURL.empty()) {
- auto pixelRatio = definition.match([](auto& reg){ return reg.pixelRatio; });
- queueResource(Resource::spriteImage(parser.spriteURL, pixelRatio));
- queueResource(Resource::spriteJSON(parser.spriteURL, pixelRatio));
+ // Always request 1x and @2x sprite images for portability.
+ queueResource(Resource::spriteImage(parser.spriteURL, 1));
+ queueResource(Resource::spriteImage(parser.spriteURL, 2));
+ queueResource(Resource::spriteJSON(parser.spriteURL, 1));
+ queueResource(Resource::spriteJSON(parser.spriteURL, 2));
}
continueDownload();