diff options
Diffstat (limited to 'platform')
-rw-r--r-- | platform/default/filesource-files.json | 1 | ||||
-rw-r--r-- | platform/default/include/mbgl/gl/headless_frontend.hpp | 6 | ||||
-rw-r--r-- | platform/default/include/mbgl/map/map_snapshotter.hpp | 3 | ||||
-rw-r--r-- | platform/default/src/mbgl/gl/headless_frontend.cpp | 8 | ||||
-rw-r--r-- | platform/default/src/mbgl/map/map_snapshotter.cpp | 15 | ||||
-rw-r--r-- | platform/default/src/mbgl/storage/file_source_options.cpp | 55 | ||||
-rw-r--r-- | platform/glfw/main.cpp | 34 |
7 files changed, 89 insertions, 33 deletions
diff --git a/platform/default/filesource-files.json b/platform/default/filesource-files.json index f61aa6a335..c256cec1be 100644 --- a/platform/default/filesource-files.json +++ b/platform/default/filesource-files.json @@ -3,6 +3,7 @@ "sources": [ "platform/default/src/mbgl/storage/asset_file_source.cpp", "platform/default/src/mbgl/storage/default_file_source.cpp", + "platform/default/src/mbgl/storage/file_source_options.cpp", "platform/default/src/mbgl/storage/file_source_request.cpp", "platform/default/src/mbgl/storage/local_file_request.cpp", "platform/default/src/mbgl/storage/local_file_source.cpp", diff --git a/platform/default/include/mbgl/gl/headless_frontend.hpp b/platform/default/include/mbgl/gl/headless_frontend.hpp index d32c2e7768..a30519ad4e 100644 --- a/platform/default/include/mbgl/gl/headless_frontend.hpp +++ b/platform/default/include/mbgl/gl/headless_frontend.hpp @@ -11,16 +11,16 @@ namespace mbgl { -class FileSource; class Renderer; class RendererBackend; class Map; class TransformState; +class FileSourceOptions; class HeadlessFrontend : public RendererFrontend { public: - HeadlessFrontend(float pixelRatio_, FileSource&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); - HeadlessFrontend(Size, float pixelRatio_, FileSource&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); + HeadlessFrontend(float pixelRatio_, const FileSourceOptions&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); + HeadlessFrontend(Size, float pixelRatio_, const FileSourceOptions&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); ~HeadlessFrontend() override; void reset() override; diff --git a/platform/default/include/mbgl/map/map_snapshotter.hpp b/platform/default/include/mbgl/map/map_snapshotter.hpp index 8c4b3e023e..e7c6a94883 100644 --- a/platform/default/include/mbgl/map/map_snapshotter.hpp +++ b/platform/default/include/mbgl/map/map_snapshotter.hpp @@ -25,8 +25,7 @@ class Style; class MapSnapshotter { public: - MapSnapshotter(FileSource* fileSource, - const std::pair<bool, std::string> style, + MapSnapshotter(const std::pair<bool, std::string> style, const Size&, const float pixelRatio, const optional<CameraOptions> cameraOptions, diff --git a/platform/default/src/mbgl/gl/headless_frontend.cpp b/platform/default/src/mbgl/gl/headless_frontend.cpp index 71cd656e59..c1f8205fdb 100644 --- a/platform/default/src/mbgl/gl/headless_frontend.cpp +++ b/platform/default/src/mbgl/gl/headless_frontend.cpp @@ -8,11 +8,11 @@ namespace mbgl { -HeadlessFrontend::HeadlessFrontend(float pixelRatio_, FileSource& fileSource, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) - : HeadlessFrontend({ 256, 256 }, pixelRatio_, fileSource, programCacheDir, mode, localFontFamily) { +HeadlessFrontend::HeadlessFrontend(float pixelRatio_, const FileSourceOptions& fileSourceOptions, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) + : HeadlessFrontend({ 256, 256 }, pixelRatio_, fileSourceOptions, programCacheDir, mode, localFontFamily) { } -HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, FileSource& fileSource, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) +HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, const FileSourceOptions& fileSourceOptions, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) : size(size_), pixelRatio(pixelRatio_), backend({ static_cast<uint32_t>(size.width * pixelRatio), @@ -23,7 +23,7 @@ HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, FileSource& fi renderer->render(*updateParameters); } }), - renderer(std::make_unique<Renderer>(backend, pixelRatio, fileSource, mode, programCacheDir, localFontFamily)) { + renderer(std::make_unique<Renderer>(backend, pixelRatio, fileSourceOptions, mode, programCacheDir, localFontFamily)) { } HeadlessFrontend::~HeadlessFrontend() = default; diff --git a/platform/default/src/mbgl/map/map_snapshotter.cpp b/platform/default/src/mbgl/map/map_snapshotter.cpp index 9532b01b7e..4d3dc75724 100644 --- a/platform/default/src/mbgl/map/map_snapshotter.cpp +++ b/platform/default/src/mbgl/map/map_snapshotter.cpp @@ -5,7 +5,6 @@ #include <mbgl/map/map.hpp> #include <mbgl/map/map_options.hpp> #include <mbgl/map/transform_state.hpp> -#include <mbgl/storage/file_source.hpp> #include <mbgl/style/style.hpp> #include <mbgl/util/event.hpp> #include <mbgl/map/transform.hpp> @@ -14,8 +13,7 @@ namespace mbgl { class MapSnapshotter::Impl { public: - Impl(FileSource*, - const std::pair<bool, std::string> style, + Impl(const std::pair<bool, std::string> style, const Size&, const float pixelRatio, const optional<CameraOptions> cameraOptions, @@ -45,7 +43,7 @@ private: Map map; }; -MapSnapshotter::Impl::Impl(FileSource* fileSource, +MapSnapshotter::Impl::Impl( const std::pair<bool, std::string> style, const Size& size, const float pixelRatio, @@ -53,8 +51,8 @@ MapSnapshotter::Impl::Impl(FileSource* fileSource, const optional<LatLngBounds> region, const optional<std::string> programCacheDir, const optional<std::string> localFontFamily) - , frontend(size, pixelRatio, programCacheDir, GLContextMode::Unique, localFontFamily) - , map(frontend, MapObserver::nullObserver(), size, pixelRatio, *fileSource, MapOptions().withMapMode(MapMode::Static)) { + : frontend(size, pixelRatio, FileSourceOptions(), programCacheDir, GLContextMode::Unique, localFontFamily) + , map(frontend, MapObserver::nullObserver(), size, pixelRatio, MapOptions().withMapMode(MapMode::Static), FileSourceOptions()) { if (style.first) { map.getStyle().loadJSON(style.second); @@ -160,15 +158,14 @@ LatLngBounds MapSnapshotter::Impl::getRegion() const { return map.latLngBoundsForCamera(getCameraOptions()); } -MapSnapshotter::MapSnapshotter(FileSource* fileSource, - const std::pair<bool, std::string> style, +MapSnapshotter::MapSnapshotter(const std::pair<bool, std::string> style, const Size& size, const float pixelRatio, const optional<CameraOptions> cameraOptions, const optional<LatLngBounds> region, const optional<std::string> programCacheDir, const optional<std::string> localFontFamily) - : impl(std::make_unique<util::Thread<MapSnapshotter::Impl>>("Map Snapshotter", fileSource, style, size, pixelRatio, cameraOptions, region, programCacheDir, localFontFamily)) { + : impl(std::make_unique<util::Thread<MapSnapshotter::Impl>>("Map Snapshotter", style, size, pixelRatio, cameraOptions, region, programCacheDir, localFontFamily)) { } MapSnapshotter::~MapSnapshotter() = default; diff --git a/platform/default/src/mbgl/storage/file_source_options.cpp b/platform/default/src/mbgl/storage/file_source_options.cpp new file mode 100644 index 0000000000..782c90f768 --- /dev/null +++ b/platform/default/src/mbgl/storage/file_source_options.cpp @@ -0,0 +1,55 @@ +#include <mbgl/storage/file_source_options.hpp> +#include <mbgl/util/constants.hpp> + +#include <cassert> + +namespace mbgl { + +class FileSourceOptions::Impl { +public: + std::string accessToken; + std::string cachePath { ":memory:" }; + std::string assetRoot { "." }; + uint64_t maximumSize{mbgl::util::DEFAULT_MAX_CACHE_SIZE}; +}; + +FileSourceOptions::FileSourceOptions() : impl_(std::make_shared<FileSourceOptions::Impl>()) {} +FileSourceOptions::~FileSourceOptions() = default; + +FileSourceOptions& FileSourceOptions::withAccessToken(std::string accessToken) { + impl_->accessToken = std::move(accessToken); + return *this; +} + +const std::string& FileSourceOptions::accessToken() const { + return impl_->accessToken; +} + +FileSourceOptions& FileSourceOptions::withCachePath(std::string path) { + impl_->cachePath = std::move(path); + return *this; +} + +const std::string& FileSourceOptions::cachePath() const { + return impl_->cachePath; +} + +FileSourceOptions& FileSourceOptions::withAssetRoot(std::string path) { + impl_->assetRoot = std::move(path); + return *this; +} + +const std::string& FileSourceOptions::assetRoot() const { + return impl_->assetRoot; +} + +FileSourceOptions& FileSourceOptions::withMaximumCacheSize(uint64_t size) { + impl_->maximumSize = size; + return *this; +} + +uint64_t FileSourceOptions::maximumCacheSize() const { + return impl_->maximumSize; +} + +} // namespace mbgl
\ No newline at end of file diff --git a/platform/glfw/main.cpp b/platform/glfw/main.cpp index b66acf8088..4ce3706dea 100644 --- a/platform/glfw/main.cpp +++ b/platform/glfw/main.cpp @@ -8,6 +8,7 @@ #include <mbgl/storage/default_file_source.hpp> #include <mbgl/style/style.hpp> #include <mbgl/renderer/renderer.hpp> +#include <mbgl/platform/factory.hpp> #include <args/args.hxx> @@ -92,22 +93,25 @@ int main(int argc, char *argv[]) { GLFWView backend(fullscreen, benchmark); view = &backend; - mbgl::DefaultFileSource fileSource(cacheDB, "."); - if (!settings.online) { - fileSource.setOnlineStatus(false); - mbgl::Log::Warning(mbgl::Event::Setup, "Application is offline. Press `O` to toggle online status."); - } - // Set access token if present const char *token = getenv("MAPBOX_ACCESS_TOKEN"); if (token == nullptr) { mbgl::Log::Warning(mbgl::Event::Setup, "no access token set. mapbox.com tiles won't work."); - } else { - fileSource.setAccessToken(std::string(token)); } - GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(backend, view->getPixelRatio(), fileSource), backend }; - mbgl::Map map(rendererFrontend, backend, view->getSize(), view->getPixelRatio(), fileSource, mbgl::MapOptions()); + auto fileSourceOptions = mbgl::FileSourceOptions().withCachePath(cacheDB).withAccessToken(std::string(token)); + + GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(backend, view->getPixelRatio(), fileSourceOptions), backend }; + mbgl::Map map(rendererFrontend, backend, view->getSize(), view->getPixelRatio(), + mbgl::MapOptions(), fileSourceOptions); + + auto fileSource = std::static_pointer_cast<mbgl::DefaultFileSource>(mbgl::platform::Factory::sharedFileSource(fileSourceOptions)); + printf("accessToken: %s\n", fileSource->getAccessToken().c_str()); + + if (!settings.online) { + fileSource->setOnlineStatus(false); + mbgl::Log::Warning(mbgl::Event::Setup, "Application is offline. Press `O` to toggle online status."); + } backend.setMap(&map); @@ -122,9 +126,9 @@ int main(int argc, char *argv[]) { .withPitch(settings.pitch)); map.setDebug(mbgl::MapDebugOptions(settings.debug)); - view->setOnlineStatusCallback([&settings, &fileSource]() { + view->setOnlineStatusCallback([&settings, fileSource]() { settings.online = !settings.online; - fileSource.setOnlineStatus(settings.online); + fileSource->setOnlineStatus(settings.online); mbgl::Log::Info(mbgl::Event::Setup, "Application is %s. Press `O` to toggle online status.", settings.online ? "online" : "offline"); }); @@ -142,13 +146,13 @@ int main(int argc, char *argv[]) { mbgl::Log::Info(mbgl::Event::Setup, "Changed style to: %s", newStyle.name); }); - view->setPauseResumeCallback([&fileSource] () { + view->setPauseResumeCallback([fileSource] () { static bool isPaused = false; if (isPaused) { - fileSource.resume(); + fileSource->resume(); } else { - fileSource.pause(); + fileSource->pause(); } isPaused = !isPaused; |