diff options
Diffstat (limited to 'platform')
-rwxr-xr-x | platform/android/src/android_renderer_backend.cpp | 3 | ||||
-rw-r--r-- | platform/android/src/map_renderer.cpp | 3 | ||||
-rw-r--r-- | platform/darwin/src/MGLRendererConfiguration.h | 4 | ||||
-rw-r--r-- | platform/darwin/src/MGLRendererConfiguration.mm | 4 | ||||
-rw-r--r-- | platform/default/include/mbgl/gl/headless_backend.hpp | 2 | ||||
-rw-r--r-- | platform/default/include/mbgl/gl/headless_frontend.hpp | 14 | ||||
-rw-r--r-- | platform/default/src/mbgl/gl/headless_backend.cpp | 4 | ||||
-rw-r--r-- | platform/default/src/mbgl/gl/headless_frontend.cpp | 24 | ||||
-rw-r--r-- | platform/default/src/mbgl/map/map_snapshotter.cpp | 15 | ||||
-rw-r--r-- | platform/glfw/glfw_gl_backend.cpp | 3 | ||||
-rw-r--r-- | platform/ios/src/MGLMapView.mm | 11 | ||||
-rw-r--r-- | platform/macos/src/MGLMapView.mm | 11 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 4 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl_map_renderer.cpp | 3 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl_renderer_backend.cpp | 5 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl_renderer_backend.hpp | 2 |
16 files changed, 66 insertions, 46 deletions
diff --git a/platform/android/src/android_renderer_backend.cpp b/platform/android/src/android_renderer_backend.cpp index 09c9e85ad5..3fba0b83da 100755 --- a/platform/android/src/android_renderer_backend.cpp +++ b/platform/android/src/android_renderer_backend.cpp @@ -27,7 +27,8 @@ private: }; AndroidRendererBackend::AndroidRendererBackend() - : mbgl::gfx::Renderable({ 64, 64 }, std::make_unique<AndroidGLRenderableResource>(*this)) { + : gl::RendererBackend(gfx::ContextMode::Unique), + mbgl::gfx::Renderable({ 64, 64 }, std::make_unique<AndroidGLRenderableResource>(*this)) { } AndroidRendererBackend::~AndroidRendererBackend() = default; diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp index 7fefa457b1..36d23c1849 100644 --- a/platform/android/src/map_renderer.cpp +++ b/platform/android/src/map_renderer.cpp @@ -175,8 +175,7 @@ void MapRenderer::onSurfaceCreated(JNIEnv&) { // Create the new backend and renderer backend = std::make_unique<AndroidRendererBackend>(); - renderer = std::make_unique<Renderer>(*backend, pixelRatio, *threadPool, - GLContextMode::Unique, programCacheDir, localIdeographFontFamily); + renderer = std::make_unique<Renderer>(*backend, pixelRatio, *threadPool, programCacheDir, localIdeographFontFamily); rendererRef = std::make_unique<ActorRef<Renderer>>(*renderer, mailbox); // Set the observer on the new Renderer implementation diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h index ef7122ec51..ee5aaef174 100644 --- a/platform/darwin/src/MGLRendererConfiguration.h +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -1,7 +1,6 @@ #import "MGLFoundation.h" #import <Foundation/Foundation.h> -#include <mbgl/renderer/mode.hpp> #include <mbgl/util/optional.hpp> NS_ASSUME_NONNULL_BEGIN @@ -16,9 +15,6 @@ MGL_EXPORT /** Returns an instance of the current renderer configuration. */ @property (class, nonatomic, readonly) MGLRendererConfiguration *currentConfiguration; -/** The GL context mode to use. Defaults to `mbgl::GLContextMode::Unique` */ -@property (nonatomic, readonly) mbgl::GLContextMode contextMode; - /** The scale factor to use. Based on the native scale where available, otherwise the standard screen scale. */ diff --git a/platform/darwin/src/MGLRendererConfiguration.mm b/platform/darwin/src/MGLRendererConfiguration.mm index 78201987fe..d616e93eb2 100644 --- a/platform/darwin/src/MGLRendererConfiguration.mm +++ b/platform/darwin/src/MGLRendererConfiguration.mm @@ -57,10 +57,6 @@ static NSString * const MGLCollisionBehaviorPre4_0Key = @"MGLCollisionBehaviorPr return self; } -- (mbgl::GLContextMode)contextMode { - return mbgl::GLContextMode::Unique; -} - - (const float)scaleFactor { #if TARGET_OS_IPHONE return [UIScreen instancesRespondToSelector:@selector(nativeScale)] ? [[UIScreen mainScreen] nativeScale] : [[UIScreen mainScreen] scale]; diff --git a/platform/default/include/mbgl/gl/headless_backend.hpp b/platform/default/include/mbgl/gl/headless_backend.hpp index 9135c269be..b2141e9540 100644 --- a/platform/default/include/mbgl/gl/headless_backend.hpp +++ b/platform/default/include/mbgl/gl/headless_backend.hpp @@ -11,7 +11,7 @@ namespace gl { class HeadlessBackend final : public gl::RendererBackend, public gfx::Renderable { public: - HeadlessBackend(Size = { 256, 256 }); + HeadlessBackend(Size = { 256, 256 }, gfx::ContextMode = gfx::ContextMode::Unique); ~HeadlessBackend() override; gfx::Renderable& getDefaultRenderable() override; diff --git a/platform/default/include/mbgl/gl/headless_frontend.hpp b/platform/default/include/mbgl/gl/headless_frontend.hpp index 2e9378bf8f..ff733f423d 100644 --- a/platform/default/include/mbgl/gl/headless_frontend.hpp +++ b/platform/default/include/mbgl/gl/headless_frontend.hpp @@ -1,7 +1,6 @@ #pragma once #include <mbgl/map/camera.hpp> -#include <mbgl/renderer/mode.hpp> #include <mbgl/renderer/renderer_frontend.hpp> #include <mbgl/gl/headless_backend.hpp> #include <mbgl/util/async_task.hpp> @@ -22,8 +21,17 @@ class RendererBackend; class HeadlessFrontend : public RendererFrontend { public: - HeadlessFrontend(float pixelRatio_, Scheduler&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); - HeadlessFrontend(Size, float pixelRatio_, Scheduler&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {}); + HeadlessFrontend(float pixelRatio_, + Scheduler&, + const optional<std::string> programCacheDir = {}, + gfx::ContextMode mode = gfx::ContextMode::Unique, + const optional<std::string> localFontFamily = {}); + HeadlessFrontend(Size, + float pixelRatio_, + Scheduler&, + const optional<std::string> programCacheDir = {}, + gfx::ContextMode mode = gfx::ContextMode::Unique, + const optional<std::string> localFontFamily = {}); ~HeadlessFrontend() override; void reset() override; diff --git a/platform/default/src/mbgl/gl/headless_backend.cpp b/platform/default/src/mbgl/gl/headless_backend.cpp index cbf451d80b..7362adcb9e 100644 --- a/platform/default/src/mbgl/gl/headless_backend.cpp +++ b/platform/default/src/mbgl/gl/headless_backend.cpp @@ -31,8 +31,8 @@ public: gl::Framebuffer framebuffer; }; -HeadlessBackend::HeadlessBackend(Size size_) - : mbgl::gfx::Renderable(size_, nullptr) { +HeadlessBackend::HeadlessBackend(const Size size_, const gfx::ContextMode contextMode_) + : mbgl::gl::RendererBackend(contextMode_), mbgl::gfx::Renderable(size_, nullptr) { } HeadlessBackend::~HeadlessBackend() { diff --git a/platform/default/src/mbgl/gl/headless_frontend.cpp b/platform/default/src/mbgl/gl/headless_frontend.cpp index 406c197904..7e56996f63 100644 --- a/platform/default/src/mbgl/gl/headless_frontend.cpp +++ b/platform/default/src/mbgl/gl/headless_frontend.cpp @@ -9,15 +9,25 @@ namespace mbgl { -HeadlessFrontend::HeadlessFrontend(float pixelRatio_, Scheduler& scheduler, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) - : HeadlessFrontend({ 256, 256 }, pixelRatio_, scheduler, programCacheDir, mode, localFontFamily) { -} - -HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, Scheduler& scheduler, const optional<std::string> programCacheDir, GLContextMode mode, const optional<std::string> localFontFamily) +HeadlessFrontend::HeadlessFrontend(float pixelRatio_, + Scheduler& scheduler, + const optional<std::string> programCacheDir, + const gfx::ContextMode contextMode, + const optional<std::string> localFontFamily) + : HeadlessFrontend( + { 256, 256 }, pixelRatio_, scheduler, programCacheDir, contextMode, localFontFamily) { +} + +HeadlessFrontend::HeadlessFrontend(Size size_, + float pixelRatio_, + Scheduler& scheduler, + const optional<std::string> programCacheDir, + const gfx::ContextMode contextMode, + const optional<std::string> localFontFamily) : size(size_), pixelRatio(pixelRatio_), backend({ static_cast<uint32_t>(size.width * pixelRatio), - static_cast<uint32_t>(size.height * pixelRatio) }), + static_cast<uint32_t>(size.height * pixelRatio) }, contextMode), asyncInvalidate([this] { if (renderer && updateParameters) { gfx::BackendScope guard { backend }; @@ -30,7 +40,7 @@ HeadlessFrontend::HeadlessFrontend(Size size_, float pixelRatio_, Scheduler& sch renderer->render(*updateParameters_); } }), - renderer(std::make_unique<Renderer>(backend, pixelRatio, scheduler, mode, programCacheDir, localFontFamily)) { + renderer(std::make_unique<Renderer>(backend, pixelRatio, scheduler, 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 227a61d272..dc3d263261 100644 --- a/platform/default/src/mbgl/map/map_snapshotter.cpp +++ b/platform/default/src/mbgl/map/map_snapshotter.cpp @@ -56,14 +56,17 @@ MapSnapshotter::Impl::Impl(std::shared_ptr<Scheduler> scheduler_, const optional<std::string> programCacheDir, const optional<std::string> localFontFamily, const ResourceOptions& resourceOptions) - : scheduler(std::move(scheduler_)) - , frontend(size, pixelRatio, *scheduler, programCacheDir, GLContextMode::Unique, localFontFamily) - , map(frontend, MapObserver::nullObserver(), *scheduler, - MapOptions().withMapMode(MapMode::Static).withSize(size).withPixelRatio(pixelRatio), - resourceOptions) { + : scheduler(std::move(scheduler_)), + frontend( + size, pixelRatio, *scheduler, programCacheDir, gfx::ContextMode::Unique, localFontFamily), + map(frontend, + MapObserver::nullObserver(), + *scheduler, + MapOptions().withMapMode(MapMode::Static).withSize(size).withPixelRatio(pixelRatio), + resourceOptions) { if (style.first) { map.getStyle().loadJSON(style.second); - } else{ + } else { map.getStyle().loadURL(style.second); } diff --git a/platform/glfw/glfw_gl_backend.cpp b/platform/glfw/glfw_gl_backend.cpp index b61e2775d5..2d622fc193 100644 --- a/platform/glfw/glfw_gl_backend.cpp +++ b/platform/glfw/glfw_gl_backend.cpp @@ -20,7 +20,8 @@ private: }; GLFWGLBackend::GLFWGLBackend(GLFWwindow* window_) - : mbgl::gfx::Renderable( + : mbgl::gl::RendererBackend(mbgl::gfx::ContextMode::Unique), + mbgl::gfx::Renderable( [window_] { int fbWidth, fbHeight; glfwGetFramebufferSize(window_, &fbWidth, &fbHeight); diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 4cbe839179..4d980655cc 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -17,7 +17,6 @@ #include <mbgl/style/image.hpp> #include <mbgl/style/transition_options.hpp> #include <mbgl/style/layers/custom_layer.hpp> -#include <mbgl/renderer/mode.hpp> #include <mbgl/renderer/renderer.hpp> #import <mbgl/gl/renderer_backend.hpp> #import <mbgl/gl/renderable_resource.hpp> @@ -482,7 +481,7 @@ public: MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration]; _mbglThreadPool = mbgl::sharedThreadPool(); - auto renderer = std::make_unique<mbgl::Renderer>(*_mbglView, config.scaleFactor, *_mbglThreadPool, config.contextMode, config.cacheDir, config.localFontFamilyName); + auto renderer = std::make_unique<mbgl::Renderer>(*_mbglView, config.scaleFactor, *_mbglThreadPool, config.cacheDir, config.localFontFamilyName); BOOL enableCrossSourceCollisions = !config.perSourceCollisions; _rendererFrontend = std::make_unique<MGLRenderFrontend>(std::move(renderer), self, *_mbglView); @@ -6737,9 +6736,11 @@ class MBGLView : public mbgl::gl::RendererBackend, public mbgl::gfx::Renderable, public mbgl::MapObserver { public: - MBGLView(MGLMapView* nativeView_) : mbgl::gfx::Renderable( - nativeView_.framebufferSize, - std::make_unique<MBGLMapViewRenderable>(*this)), nativeView(nativeView_) { + MBGLView(MGLMapView* nativeView_) + : mbgl::gl::RendererBackend(mbgl::gfx::ContextMode::Unique), + mbgl::gfx::Renderable(nativeView_.framebufferSize, + std::make_unique<MBGLMapViewRenderable>(*this)), + nativeView(nativeView_) { } /// This function is called before we start rendering, when iOS invokes our rendering method. diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 589d866782..e9259cf907 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -286,7 +286,7 @@ public: _mbglThreadPool = mbgl::sharedThreadPool(); MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration]; - auto renderer = std::make_unique<mbgl::Renderer>(*_mbglView, config.scaleFactor, *_mbglThreadPool, config.contextMode, config.cacheDir, config.localFontFamilyName); + auto renderer = std::make_unique<mbgl::Renderer>(*_mbglView, config.scaleFactor, *_mbglThreadPool, config.cacheDir, config.localFontFamilyName); BOOL enableCrossSourceCollisions = !config.perSourceCollisions; _rendererFrontend = std::make_unique<MGLRenderFrontend>(std::move(renderer), self, *_mbglView, true); @@ -3060,9 +3060,12 @@ class MGLMapViewImpl : public mbgl::gl::RendererBackend, public mbgl::gfx::Renderable, public mbgl::MapObserver { public: - MGLMapViewImpl(MGLMapView *nativeView_) : mbgl::gfx::Renderable( - nativeView_.framebufferSize, - std::make_unique<MGLMapViewRenderable>(*this)), nativeView(nativeView_) {} + MGLMapViewImpl(MGLMapView* nativeView_) + : mbgl::gl::RendererBackend(mbgl::gfx::ContextMode::Unique), + mbgl::gfx::Renderable(nativeView_.framebufferSize, + std::make_unique<MGLMapViewRenderable>(*this)), + nativeView(nativeView_) { + } void onCameraWillChange(mbgl::MapObserver::CameraChangeMode mode) override { bool animated = mode == mbgl::MapObserver::CameraChangeMode::Animated; diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index 7dcc753347..e54733aba7 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -67,8 +67,8 @@ using namespace QMapbox; // mbgl::GLContextMode -static_assert(mbgl::underlying_type(QMapboxGLSettings::UniqueGLContext) == mbgl::underlying_type(mbgl::GLContextMode::Unique), "error"); -static_assert(mbgl::underlying_type(QMapboxGLSettings::SharedGLContext) == mbgl::underlying_type(mbgl::GLContextMode::Shared), "error"); +static_assert(mbgl::underlying_type(QMapboxGLSettings::UniqueGLContext) == mbgl::underlying_type(mbgl::gfx::ContextMode::Unique), "error"); +static_assert(mbgl::underlying_type(QMapboxGLSettings::SharedGLContext) == mbgl::underlying_type(mbgl::gfx::ContextMode::Shared), "error"); // mbgl::MapMode static_assert(mbgl::underlying_type(QMapboxGLSettings::Continuous) == mbgl::underlying_type(mbgl::MapMode::Continuous), "error"); diff --git a/platform/qt/src/qmapboxgl_map_renderer.cpp b/platform/qt/src/qmapboxgl_map_renderer.cpp index d10df50149..d72b5d0f2c 100644 --- a/platform/qt/src/qmapboxgl_map_renderer.cpp +++ b/platform/qt/src/qmapboxgl_map_renderer.cpp @@ -27,7 +27,8 @@ static auto *getScheduler() { }; QMapboxGLMapRenderer::QMapboxGLMapRenderer(qreal pixelRatio, mbgl::ThreadPool &tp, QMapboxGLSettings::GLContextMode mode, const QString &localFontFamily) - : m_renderer(std::make_unique<mbgl::Renderer>(m_backend, pixelRatio, tp, static_cast<mbgl::GLContextMode>(mode), mbgl::optional<std::string> {}, + : m_backend(static_cast<mbgl::gfx::ContextMode>(mode)), + m_renderer(std::make_unique<mbgl::Renderer>(m_backend, pixelRatio, tp, mbgl::optional<std::string> {}, localFontFamily.isEmpty() ? mbgl::nullopt : mbgl::optional<std::string> { localFontFamily.toStdString() })) , m_forceScheduler(needsToForceScheduler()) { diff --git a/platform/qt/src/qmapboxgl_renderer_backend.cpp b/platform/qt/src/qmapboxgl_renderer_backend.cpp index 2a9706eb48..39b49fe483 100644 --- a/platform/qt/src/qmapboxgl_renderer_backend.cpp +++ b/platform/qt/src/qmapboxgl_renderer_backend.cpp @@ -21,8 +21,9 @@ private: QMapboxGLRendererBackend& backend; }; -QMapboxGLRendererBackend::QMapboxGLRendererBackend() - : mbgl::gfx::Renderable({ 0, 0 }, std::make_unique<QMapboxGLRenderableResource>(*this)) { +QMapboxGLRendererBackend::QMapboxGLRendererBackend(const mbgl::gfx::ContextMode contextMode_) + : mbgl::gl::RendererBackend(contextMode_), + mbgl::gfx::Renderable({ 0, 0 }, std::make_unique<QMapboxGLRenderableResource>(*this)) { } QMapboxGLRendererBackend::~QMapboxGLRendererBackend() = default; diff --git a/platform/qt/src/qmapboxgl_renderer_backend.hpp b/platform/qt/src/qmapboxgl_renderer_backend.hpp index 8d015f500d..aba8003323 100644 --- a/platform/qt/src/qmapboxgl_renderer_backend.hpp +++ b/platform/qt/src/qmapboxgl_renderer_backend.hpp @@ -9,7 +9,7 @@ class QMapboxGLRendererBackend final : public mbgl::gl::RendererBackend, public mbgl::gfx::Renderable { public: - QMapboxGLRendererBackend(); + QMapboxGLRendererBackend(mbgl::gfx::ContextMode); ~QMapboxGLRendererBackend() override; void updateFramebuffer(quint32 fbo, const mbgl::Size&); |