summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rwxr-xr-xplatform/android/src/android_renderer_backend.cpp3
-rw-r--r--platform/android/src/map_renderer.cpp3
-rw-r--r--platform/darwin/src/MGLRendererConfiguration.h4
-rw-r--r--platform/darwin/src/MGLRendererConfiguration.mm4
-rw-r--r--platform/default/include/mbgl/gl/headless_backend.hpp2
-rw-r--r--platform/default/include/mbgl/gl/headless_frontend.hpp14
-rw-r--r--platform/default/src/mbgl/gl/headless_backend.cpp4
-rw-r--r--platform/default/src/mbgl/gl/headless_frontend.cpp24
-rw-r--r--platform/default/src/mbgl/map/map_snapshotter.cpp15
-rw-r--r--platform/glfw/glfw_gl_backend.cpp3
-rw-r--r--platform/ios/src/MGLMapView.mm11
-rw-r--r--platform/macos/src/MGLMapView.mm11
-rw-r--r--platform/qt/src/qmapboxgl.cpp4
-rw-r--r--platform/qt/src/qmapboxgl_map_renderer.cpp3
-rw-r--r--platform/qt/src/qmapboxgl_renderer_backend.cpp5
-rw-r--r--platform/qt/src/qmapboxgl_renderer_backend.hpp2
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&);