summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-10-08 16:15:37 +0300
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-01-13 10:57:23 +0200
commit1e6ad7651650d39cdfae03bacd74144d25fbbf23 (patch)
tree92f5f3f95ddd231ed44936f363499f5223876ffc
parent77c86bc6b9777c30120f4aba98af9f21222b54da (diff)
downloadqtlocation-mapboxgl-1e6ad7651650d39cdfae03bacd74144d25fbbf23.tar.gz
[qt] Use new FileSourceManager interface
-rw-r--r--platform/qt/src/http_request.hpp1
-rw-r--r--platform/qt/src/qmapboxgl.cpp21
-rw-r--r--platform/qt/src/qmapboxgl_p.hpp2
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;