diff options
-rw-r--r-- | platform/qt/include/qmapboxgl.hpp | 9 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 18 | ||||
-rw-r--r-- | platform/qt/src/qquickmapboxgl.cpp | 6 | ||||
-rw-r--r-- | platform/qt/src/qquickmapboxglrenderer.cpp | 1 |
4 files changed, 28 insertions, 6 deletions
diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp index 4c02c42736..3b10dadc9c 100644 --- a/platform/qt/include/qmapboxgl.hpp +++ b/platform/qt/include/qmapboxgl.hpp @@ -36,6 +36,11 @@ public: ConstrainWidthAndHeight }; + enum ViewportMode { + DefaultViewport = 0, + FlippedYViewport + }; + MapMode mapMode() const; void setMapMode(MapMode); @@ -45,6 +50,9 @@ public: ConstrainMode constrainMode() const; void setConstrainMode(ConstrainMode); + ViewportMode viewportMode() const; + void setViewportMode(ViewportMode); + unsigned cacheDatabaseMaximumSize() const; void setCacheDatabaseMaximumSize(unsigned); @@ -61,6 +69,7 @@ private: MapMode m_mapMode; GLContextMode m_contextMode; ConstrainMode m_constrainMode; + ViewportMode m_viewportMode; unsigned m_cacheMaximumSize; QString m_cacheDatabasePath; diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index 633223488e..e0f57cc0dc 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -35,6 +35,10 @@ static_assert(mbgl::underlying_type(QMapboxGLSettings::NoConstrain) == mbgl::und static_assert(mbgl::underlying_type(QMapboxGLSettings::ConstrainHeightOnly) == mbgl::underlying_type(mbgl::ConstrainMode::HeightOnly), "error"); static_assert(mbgl::underlying_type(QMapboxGLSettings::ConstrainWidthAndHeight) == mbgl::underlying_type(mbgl::ConstrainMode::WidthAndHeight), "error"); +// mbgl::ViewportMode +static_assert(mbgl::underlying_type(QMapboxGLSettings::DefaultViewport) == mbgl::underlying_type(mbgl::ViewportMode::Default), "error"); +static_assert(mbgl::underlying_type(QMapboxGLSettings::FlippedYViewport) == mbgl::underlying_type(mbgl::ViewportMode::FlippedY), "error"); + // mbgl::NorthOrientation static_assert(mbgl::underlying_type(QMapboxGL::NorthUpwards) == mbgl::underlying_type(mbgl::NorthOrientation::Upwards), "error"); static_assert(mbgl::underlying_type(QMapboxGL::NorthRightwards) == mbgl::underlying_type(mbgl::NorthOrientation::Rightwards), "error"); @@ -61,6 +65,7 @@ QMapboxGLSettings::QMapboxGLSettings() : m_mapMode(QMapboxGLSettings::ContinuousMap) , m_contextMode(QMapboxGLSettings::SharedGLContext) , m_constrainMode(QMapboxGLSettings::ConstrainHeightOnly) + , m_viewportMode(QMapboxGLSettings::DefaultViewport) , m_cacheMaximumSize(mbgl::util::DEFAULT_MAX_CACHE_SIZE) , m_cacheDatabasePath(":memory:") , m_assetPath(QCoreApplication::applicationDirPath()) @@ -97,6 +102,16 @@ void QMapboxGLSettings::setConstrainMode(ConstrainMode mode) m_constrainMode = mode; } +QMapboxGLSettings::ViewportMode QMapboxGLSettings::viewportMode() const +{ + return m_viewportMode; +} + +void QMapboxGLSettings::setViewportMode(ViewportMode mode) +{ + m_viewportMode = mode; +} + unsigned QMapboxGLSettings::cacheDatabaseMaximumSize() const { return m_cacheMaximumSize; @@ -605,7 +620,8 @@ QMapboxGLPrivate::QMapboxGLPrivate(QMapboxGL *q, const QMapboxGLSettings &settin *this, *fileSourceObj, static_cast<mbgl::MapMode>(settings.mapMode()), static_cast<mbgl::GLContextMode>(settings.contextMode()), - static_cast<mbgl::ConstrainMode>(settings.constrainMode()))) + static_cast<mbgl::ConstrainMode>(settings.constrainMode()), + static_cast<mbgl::ViewportMode>(settings.viewportMode()))) { qRegisterMetaType<QMapboxGL::MapChange>("QMapboxGL::MapChange"); diff --git a/platform/qt/src/qquickmapboxgl.cpp b/platform/qt/src/qquickmapboxgl.cpp index d705fa1083..2961925c8b 100644 --- a/platform/qt/src/qquickmapboxgl.cpp +++ b/platform/qt/src/qquickmapboxgl.cpp @@ -14,10 +14,6 @@ QQuickMapboxGL::QQuickMapboxGL(QQuickItem *parent_) : QQuickFramebufferObject(parent_) { -#if QT_VERSION >= 0x050600 - // FIXME: https://github.com/mapbox/mapbox-gl-native/issues/4866 - setMirrorVertically(true); -#endif } QQuickMapboxGL::~QQuickMapboxGL() @@ -166,7 +162,7 @@ QColor QQuickMapboxGL::color() const void QQuickMapboxGL::pan(int dx, int dy) { - m_pan += QPointF(dx, dy); + m_pan += QPointF(dx, -dy); m_syncState |= PanNeedsSync; update(); diff --git a/platform/qt/src/qquickmapboxglrenderer.cpp b/platform/qt/src/qquickmapboxglrenderer.cpp index c76c98fb62..6212c4f128 100644 --- a/platform/qt/src/qquickmapboxglrenderer.cpp +++ b/platform/qt/src/qquickmapboxglrenderer.cpp @@ -16,6 +16,7 @@ QQuickMapboxGLRenderer::QQuickMapboxGLRenderer() settings.setAccessToken(qgetenv("MAPBOX_ACCESS_TOKEN")); settings.setCacheDatabasePath("/tmp/mbgl-cache.db"); settings.setCacheDatabaseMaximumSize(20 * 1024 * 1024); + settings.setViewportMode(QMapboxGLSettings::FlippedYViewport); m_map.reset(new QMapboxGL(nullptr, settings)); } |