diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/mbgl/actor/actor.hpp | 5 | ||||
-rw-r--r-- | include/mbgl/actor/scheduler.hpp | 5 | ||||
-rw-r--r-- | include/mbgl/map/map.hpp | 2 | ||||
-rw-r--r-- | include/mbgl/renderer/renderer.hpp | 3 | ||||
-rw-r--r-- | include/mbgl/style/style.hpp | 3 |
5 files changed, 12 insertions, 6 deletions
diff --git a/include/mbgl/actor/actor.hpp b/include/mbgl/actor/actor.hpp index 0052fad242..97964ae531 100644 --- a/include/mbgl/actor/actor.hpp +++ b/include/mbgl/actor/actor.hpp @@ -55,6 +55,10 @@ public: Actor(Scheduler& scheduler, Args&&... args) : target(scheduler, parent, std::forward<Args>(args)...) {} + template <class... Args> + Actor(std::shared_ptr<Scheduler> scheduler, Args&&... args) + : retainer(std::move(scheduler)), target(*retainer, parent, std::forward<Args>(args)...) {} + Actor(const Actor&) = delete; ActorRef<std::decay_t<Object>> self() { @@ -62,6 +66,7 @@ public: } private: + std::shared_ptr<Scheduler> retainer; AspiringActor<Object> parent; EstablishedActor<Object> target; }; diff --git a/include/mbgl/actor/scheduler.hpp b/include/mbgl/actor/scheduler.hpp index 75ead29f0a..6470ab1245 100644 --- a/include/mbgl/actor/scheduler.hpp +++ b/include/mbgl/actor/scheduler.hpp @@ -41,6 +41,11 @@ public: // Set/Get the current Scheduler for this thread static Scheduler* GetCurrent(); static void SetCurrent(Scheduler*); + + // Get the scheduler for asynchronous tasks. This method + // will lazily initialize a shared worker pool when ran + // from the first time. + static std::shared_ptr<Scheduler> GetBackground(); }; } // namespace mbgl diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index 2fdd72dcb8..b1d4b14e4f 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -22,7 +22,6 @@ namespace mbgl { -class Scheduler; class RendererFrontend; namespace style { @@ -34,7 +33,6 @@ class Map : private util::noncopyable { public: explicit Map(RendererFrontend&, MapObserver&, - Scheduler&, const MapOptions&, const ResourceOptions&); ~Map(); diff --git a/include/mbgl/renderer/renderer.hpp b/include/mbgl/renderer/renderer.hpp index 50483fcf4b..787f9dceee 100644 --- a/include/mbgl/renderer/renderer.hpp +++ b/include/mbgl/renderer/renderer.hpp @@ -14,7 +14,6 @@ namespace mbgl { class RendererObserver; class RenderedQueryOptions; -class Scheduler; class SourceQueryOptions; class UpdateParameters; @@ -24,7 +23,7 @@ class RendererBackend; class Renderer { public: - Renderer(gfx::RendererBackend&, float pixelRatio_, Scheduler&, + Renderer(gfx::RendererBackend&, float pixelRatio_, const optional<std::string> programCacheDir = {}, const optional<std::string> localFontFamily = {}); ~Renderer(); diff --git a/include/mbgl/style/style.hpp b/include/mbgl/style/style.hpp index d6fdbd8f2c..4a6a542b88 100644 --- a/include/mbgl/style/style.hpp +++ b/include/mbgl/style/style.hpp @@ -11,7 +11,6 @@ namespace mbgl { class FileSource; -class Scheduler; namespace style { @@ -22,7 +21,7 @@ class Layer; class Style { public: - Style(Scheduler&, FileSource&, float pixelRatio); + Style(FileSource&, float pixelRatio); ~Style(); void loadJSON(const std::string&); |