diff options
Diffstat (limited to 'src/mbgl/sprite/sprite_store.cpp')
-rw-r--r-- | src/mbgl/sprite/sprite_store.cpp | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/src/mbgl/sprite/sprite_store.cpp b/src/mbgl/sprite/sprite_store.cpp index e051b969a1..15a345cc4d 100644 --- a/src/mbgl/sprite/sprite_store.cpp +++ b/src/mbgl/sprite/sprite_store.cpp @@ -32,14 +32,10 @@ void SpriteStore::setURL(const std::string& url) { return; } - std::string spriteURL(url + (pixelRatio > 1 ? "@2x" : "") + ".png"); - std::string jsonURL(url + (pixelRatio > 1 ? "@2x" : "") + ".json"); - loader = std::make_unique<Loader>(); FileSource* fs = util::ThreadContext::getFileSource(); - loader->jsonRequest = fs->request({ Resource::Kind::SpriteJSON, jsonURL }, - [this, jsonURL](Response res) { + loader->jsonRequest = fs->request(Resource::spriteJSON(url, pixelRatio), [this](Response res) { if (res.error) { observer->onSpriteError(std::make_exception_ptr(std::runtime_error(res.error->message))); return; @@ -57,24 +53,22 @@ void SpriteStore::setURL(const std::string& url) { } }); - loader->spriteRequest = - fs->request({ Resource::Kind::SpriteImage, spriteURL }, - [this, spriteURL](Response res) { - if (res.error) { - observer->onSpriteError(std::make_exception_ptr(std::runtime_error(res.error->message))); - return; - } + loader->spriteRequest = fs->request(Resource::spriteImage(url, pixelRatio), [this](Response res) { + if (res.error) { + observer->onSpriteError(std::make_exception_ptr(std::runtime_error(res.error->message))); + return; + } - if (res.notModified) { - // We got the same data back as last time. Abort early. - return; - } + if (res.notModified) { + // We got the same data back as last time. Abort early. + return; + } - if (!loader->image || *loader->image != *res.data) { - loader->image = res.data; - emitSpriteLoadedIfComplete(); - } - }); + if (!loader->image || *loader->image != *res.data) { + loader->image = res.data; + emitSpriteLoadedIfComplete(); + } + }); } void SpriteStore::emitSpriteLoadedIfComplete() { |