diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-02-14 16:56:17 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-05-10 14:20:38 +0300 |
commit | 06f1dc48a2fb317979ab48ce323115be5bd48f16 (patch) | |
tree | 5ef1e78a1f98a7a26034ca519e267bda235b2817 /src/mbgl/sprite | |
parent | 947bc75f56fae7f1e70f21b98730dc6b460b9194 (diff) | |
download | qtlocation-mapboxgl-06f1dc48a2fb317979ab48ce323115be5bd48f16.tar.gz |
[core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
Diffstat (limited to 'src/mbgl/sprite')
-rw-r--r-- | src/mbgl/sprite/sprite_loader.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/sprite/sprite_loader.hpp | 3 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/mbgl/sprite/sprite_loader.cpp b/src/mbgl/sprite/sprite_loader.cpp index ce8fbe5894..bfb0c570d6 100644 --- a/src/mbgl/sprite/sprite_loader.cpp +++ b/src/mbgl/sprite/sprite_loader.cpp @@ -20,9 +20,9 @@ namespace mbgl { static SpriteLoaderObserver nullObserver; struct SpriteLoader::Loader { - Loader(Scheduler& scheduler, SpriteLoader& imageManager) + Loader(SpriteLoader& imageManager) : mailbox(std::make_shared<Mailbox>(*Scheduler::GetCurrent())), - worker(scheduler, ActorRef<SpriteLoader>(imageManager, mailbox)) { + worker(Scheduler::GetBackground(), ActorRef<SpriteLoader>(imageManager, mailbox)) { } std::shared_ptr<const std::string> image; @@ -40,14 +40,14 @@ SpriteLoader::SpriteLoader(float pixelRatio_) SpriteLoader::~SpriteLoader() = default; -void SpriteLoader::load(const std::string& url, Scheduler& scheduler, FileSource& fileSource) { +void SpriteLoader::load(const std::string& url, FileSource& fileSource) { if (url.empty()) { // Treat a non-existent sprite as a successfully loaded empty sprite. observer->onSpriteLoaded({}); return; } - loader = std::make_unique<Loader>(scheduler, *this); + loader = std::make_unique<Loader>(*this); loader->jsonRequest = fileSource.request(Resource::spriteJSON(url, pixelRatio), [this](Response res) { if (res.error) { diff --git a/src/mbgl/sprite/sprite_loader.hpp b/src/mbgl/sprite/sprite_loader.hpp index 0daf46be9c..0b7d37fa14 100644 --- a/src/mbgl/sprite/sprite_loader.hpp +++ b/src/mbgl/sprite/sprite_loader.hpp @@ -12,7 +12,6 @@ namespace mbgl { -class Scheduler; class FileSource; class SpriteLoaderObserver; @@ -21,7 +20,7 @@ public: SpriteLoader(float pixelRatio); ~SpriteLoader(); - void load(const std::string& url, Scheduler&, FileSource&); + void load(const std::string& url, FileSource&); void setObserver(SpriteLoaderObserver*); |