diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2019-10-08 16:15:37 +0300 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2020-01-13 10:57:23 +0200 |
commit | 1e6ad7651650d39cdfae03bacd74144d25fbbf23 (patch) | |
tree | 92f5f3f95ddd231ed44936f363499f5223876ffc /platform/qt | |
parent | 77c86bc6b9777c30120f4aba98af9f21222b54da (diff) | |
download | qtlocation-mapboxgl-1e6ad7651650d39cdfae03bacd74144d25fbbf23.tar.gz |
[qt] Use new FileSourceManager interface
Diffstat (limited to 'platform/qt')
-rw-r--r-- | platform/qt/src/http_request.hpp | 1 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 21 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl_p.hpp | 2 |
3 files changed, 17 insertions, 7 deletions
diff --git a/platform/qt/src/http_request.hpp b/platform/qt/src/http_request.hpp index b4d476d586..2e760fc8d5 100644 --- a/platform/qt/src/http_request.hpp +++ b/platform/qt/src/http_request.hpp @@ -1,6 +1,7 @@ #pragma once #include <mbgl/storage/http_file_source.hpp> +#include <mbgl/storage/resource.hpp> #include <mbgl/util/async_request.hpp> #include <QNetworkReply> diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index a4cadf8100..fd72e8cf02 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -15,8 +15,9 @@ #include <mbgl/math/log2.hpp> #include <mbgl/math/minmax.hpp> #include <mbgl/renderer/renderer.hpp> -#include <mbgl/storage/default_file_source.hpp> +#include <mbgl/storage/file_source_manager.hpp> #include <mbgl/storage/network_status.hpp> +#include <mbgl/storage/online_file_source.hpp> #include <mbgl/storage/resource_options.hpp> #include <mbgl/style/conversion/filter.hpp> #include <mbgl/style/conversion/geojson.hpp> @@ -1737,13 +1738,21 @@ QMapboxGLPrivate::QMapboxGLPrivate(QMapboxGL *q, const QMapboxGLSettings &settin resourceOptions); if (settings.resourceTransform()) { - m_resourceTransform = std::make_unique<mbgl::Actor<mbgl::ResourceTransform>>( + m_resourceTransform = std::make_unique<mbgl::Actor<mbgl::ResourceTransform::TransformCallback>>( *mbgl::Scheduler::GetCurrent(), - [callback = settings.resourceTransform()](mbgl::Resource::Kind, const std::string &url_) -> std::string { - return callback(std::move(url_)); + [callback = settings.resourceTransform()]( + mbgl::Resource::Kind, const std::string &url_, mbgl::ResourceTransform::FinishedCallback onFinished) { + onFinished(callback(std::move(url_))); }); - auto fs = mbgl::FileSource::getSharedFileSource(resourceOptions); - std::static_pointer_cast<mbgl::DefaultFileSource>(fs)->setResourceTransform(m_resourceTransform->self()); + + mbgl::ResourceTransform transform{[actorRef = m_resourceTransform->self()]( + mbgl::Resource::Kind kind, + const std::string &url, + mbgl::ResourceTransform::FinishedCallback onFinished) { + actorRef.invoke(&mbgl::ResourceTransform::TransformCallback::operator(), kind, url, std::move(onFinished)); + }}; + auto fs = mbgl::FileSourceManager::get()->getFileSource(mbgl::FileSourceType::Network, resourceOptions); + std::static_pointer_cast<mbgl::OnlineFileSource>(fs)->setResourceTransform(std::move(transform)); } // Needs to be Queued to give time to discard redundant draw calls via the `renderQueued` flag. diff --git a/platform/qt/src/qmapboxgl_p.hpp b/platform/qt/src/qmapboxgl_p.hpp index 7f7040d7ac..ec45d89c77 100644 --- a/platform/qt/src/qmapboxgl_p.hpp +++ b/platform/qt/src/qmapboxgl_p.hpp @@ -56,7 +56,7 @@ private: std::unique_ptr<QMapboxGLMapObserver> m_mapObserver; std::unique_ptr<QMapboxGLMapRenderer> m_mapRenderer; - std::unique_ptr<mbgl::Actor<mbgl::ResourceTransform>> m_resourceTransform; + std::unique_ptr<mbgl::Actor<mbgl::ResourceTransform::TransformCallback>> m_resourceTransform; QMapboxGLSettings::GLContextMode m_mode; qreal m_pixelRatio; |