diff --git a/src/mbgl/util/async_task.hpp b/include/mbgl/util/async_task.hpp similarity index 100% rename from src/mbgl/util/async_task.hpp rename to include/mbgl/util/async_task.hpp diff --git a/src/mbgl/map/map_context.cpp b/src/mbgl/map/map_context.cpp index f00b3eaf5..400b2880d 100644 --- a/src/mbgl/map/map_context.cpp +++ b/src/mbgl/map/map_context.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include #include @@ -29,16 +28,16 @@ namespace mbgl { MapContext::MapContext(View& view_, FileSource& fileSource, MapData& data_) : view(view_), data(data_), - asyncUpdate(std::make_unique(util::RunLoop::getLoop(), [this] { update(); })), - asyncInvalidate(std::make_unique(util::RunLoop::getLoop(), [&view_] { view_.invalidate(); })), + asyncUpdate([this] { update(); }), + asyncInvalidate([&view_] { view_.invalidate(); }), texturePool(std::make_unique()) { assert(util::ThreadContext::currentlyOn(util::ThreadType::Map)); util::ThreadContext::setFileSource(&fileSource); util::ThreadContext::setGLObjectStore(&glObjectStore); - asyncUpdate->unref(); - asyncInvalidate->unref(); + asyncUpdate.unref(); + asyncInvalidate.unref(); view.activate(); } @@ -76,14 +75,14 @@ void MapContext::pause() { view.activate(); - asyncInvalidate->send(); + asyncInvalidate.send(); } void MapContext::triggerUpdate(const TransformState& state, const Update flags) { transformState = state; updateFlags |= flags; - asyncUpdate->send(); + asyncUpdate.send(); } void MapContext::setStyleURL(const std::string& url) { @@ -152,7 +151,7 @@ void MapContext::loadStyleJSON(const std::string& json, const std::string& base) data.loading = true; updateFlags |= Update::DefaultTransition | Update::Classes | Update::Zoom | Update::Annotations; - asyncUpdate->send(); + asyncUpdate.send(); } void MapContext::update() { @@ -184,7 +183,7 @@ void MapContext::update() { style->update(transformState, *texturePool); if (data.mode == MapMode::Continuous) { - asyncInvalidate->send(); + asyncInvalidate.send(); } else if (callback && style->isLoaded()) { renderSync(transformState, frameData); } @@ -223,7 +222,7 @@ void MapContext::renderStill(const TransformState& state, const FrameData& frame frameData = frame; updateFlags |= Update::RenderStill; - asyncUpdate->send(); + asyncUpdate.send(); } bool MapContext::renderSync(const TransformState& state, const FrameData& frame) { @@ -253,10 +252,10 @@ bool MapContext::renderSync(const TransformState& state, const FrameData& frame) if (style->hasTransitions()) { updateFlags |= Update::Classes; - asyncUpdate->send(); + asyncUpdate.send(); } else if (painter->needsAnimation()) { updateFlags |= Update::Repaint; - asyncUpdate->send(); + asyncUpdate.send(); } return isLoaded(); @@ -284,7 +283,7 @@ void MapContext::setSourceTileCacheSize(size_t size) { for (const auto &source : style->sources) { source->setCacheSize(sourceCacheSize); } - asyncInvalidate->send(); + asyncInvalidate.send(); } } @@ -294,7 +293,7 @@ void MapContext::onLowMemory() { for (const auto &source : style->sources) { source->onLowMemory(); } - asyncInvalidate->send(); + asyncInvalidate.send(); } void MapContext::setSprite(const std::string& name, std::shared_ptr sprite) { @@ -312,7 +311,7 @@ void MapContext::onTileDataChanged() { assert(util::ThreadContext::currentlyOn(util::ThreadType::Map)); updateFlags |= Update::Repaint; - asyncUpdate->send(); + asyncUpdate.send(); } void MapContext::onResourceLoadingFailed(std::exception_ptr error) { diff --git a/src/mbgl/map/map_context.hpp b/src/mbgl/map/map_context.hpp index f4df3aae2..c0ee68a61 100644 --- a/src/mbgl/map/map_context.hpp +++ b/src/mbgl/map/map_context.hpp @@ -6,15 +6,12 @@ #include #include #include +#include #include #include #include -namespace uv { -class async; -} - namespace mbgl { class View; @@ -77,8 +74,8 @@ private: util::GLObjectStore glObjectStore; Update updateFlags = Update::Nothing; - std::unique_ptr asyncUpdate; - std::unique_ptr asyncInvalidate; + util::AsyncTask asyncUpdate; + util::AsyncTask asyncInvalidate; std::unique_ptr texturePool; std::unique_ptr painter;