summaryrefslogtreecommitdiff
path: root/src/map/sprite.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-08-11 16:57:33 +0200
committerKonstantin Käfer <mail@kkaefer.com>2014-08-11 16:57:33 +0200
commit7a98ad4cf949dd1279719bf926bd08da0133210f (patch)
tree66ef1177038f1edefc08cc72a78cb49421b01e5c /src/map/sprite.cpp
parente39ae931b9890bbe23013049df132243af454c49 (diff)
parent225b5e01cbadc46727f77ccf185c711b5f6956a7 (diff)
downloadqtlocation-mapboxgl-7a98ad4cf949dd1279719bf926bd08da0133210f.tar.gz
Merge pull request #407 from mapbox/filesource
Use style.json directory as base path for loading sprite images
Diffstat (limited to 'src/map/sprite.cpp')
-rw-r--r--src/map/sprite.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/map/sprite.cpp b/src/map/sprite.cpp
index 68453de52b..f396fec07d 100644
--- a/src/map/sprite.cpp
+++ b/src/map/sprite.cpp
@@ -5,6 +5,7 @@
#include <string>
#include <mbgl/platform/platform.hpp>
+#include <mbgl/util/filesource.hpp>
#include <mbgl/util/uv.hpp>
#include <mbgl/util/std.hpp>
@@ -20,9 +21,9 @@ SpritePosition::SpritePosition(uint16_t x, uint16_t y, uint16_t width, uint16_t
pixelRatio(pixelRatio) {
}
-std::shared_ptr<Sprite> Sprite::Create(const std::string& base_url, float pixelRatio) {
+std::shared_ptr<Sprite> Sprite::Create(const std::string& base_url, float pixelRatio, const std::shared_ptr<FileSource> &fileSource) {
std::shared_ptr<Sprite> sprite(std::make_shared<Sprite>(Key(), base_url, pixelRatio));
- sprite->load();
+ sprite->load(fileSource);
return sprite;
}
@@ -49,7 +50,7 @@ Sprite::operator bool() const {
// Note: This is a separate function that must be called exactly once after creation
// The reason this isn't part of the constructor is that calling shared_from_this() in
// the constructor fails.
-void Sprite::load() {
+void Sprite::load(const std::shared_ptr<FileSource> &fileSource) {
if (!valid) {
// Treat a non-existent sprite as a successfully loaded empty sprite.
loadedImage = true;
@@ -60,7 +61,7 @@ void Sprite::load() {
std::shared_ptr<Sprite> sprite = shared_from_this();
- platform::request_http(jsonURL, [sprite](platform::Response *res) {
+ fileSource->load(ResourceType::JSON, jsonURL, [sprite](platform::Response *res) {
if (res->code == 200) {
sprite->body.swap(res->body);
sprite->parseJSON();
@@ -73,7 +74,7 @@ void Sprite::load() {
}
});
- platform::request_http(spriteURL, [sprite](platform::Response *res) {
+ fileSource->load(ResourceType::Image, spriteURL, [sprite](platform::Response *res) {
if (res->code == 200) {
sprite->image.swap(res->body);
sprite->parseImage();