summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/geoservices')
-rw-r--r--src/plugins/geoservices/geoservices.pro2
-rw-r--r--src/plugins/geoservices/mapboxgl/mapboxgl.pro8
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp10
3 files changed, 19 insertions, 1 deletions
diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro
index a0d29325..0810d392 100644
--- a/src/plugins/geoservices/geoservices.pro
+++ b/src/plugins/geoservices/geoservices.pro
@@ -6,7 +6,7 @@ qtConfig(concurrent) {
SUBDIRS += osm
}
-qtConfig(c++14):!win32:!qnx {
+qtConfig(c++14):!win32|mingw:!qnx {
!exists(../../3rdparty/mapbox-gl-native/CMakeLists.txt) {
warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.")
} else {
diff --git a/src/plugins/geoservices/mapboxgl/mapboxgl.pro b/src/plugins/geoservices/mapboxgl/mapboxgl.pro
index dcdee7e4..7781fd6d 100644
--- a/src/plugins/geoservices/mapboxgl/mapboxgl.pro
+++ b/src/plugins/geoservices/mapboxgl/mapboxgl.pro
@@ -38,6 +38,14 @@ qtConfig(icu) {
include(../../../3rdparty/icu_dependency.pri)
}
+# When building for Windows with dynamic OpenGL, this plugin
+# can only run with ANGLE because Mapbox GL requires at least
+# OpenGL ES and does not use QOpenGLFunctions for resolving
+# the OpenGL symbols. -lopengl32 only gives OpenGL 1.1.
+win32:qtConfig(dynamicgl) {
+ LIBS_PRIVATE += -lQtANGLE
+}
+
PLUGIN_TYPE = geoservices
PLUGIN_CLASS_NAME = QGeoServiceProviderFactoryMapboxGL
load(qt_plugin)
diff --git a/src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp
index 30c01f8c..fb8dd19e 100644
--- a/src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp
+++ b/src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp
@@ -38,6 +38,7 @@
#include "qgeoserviceproviderpluginmapboxgl.h"
#include "qgeomappingmanagerenginemapboxgl.h"
+#include <QtGui/QOpenGLContext>
QT_BEGIN_NAMESPACE
@@ -54,6 +55,15 @@ QGeoCodingManagerEngine *QGeoServiceProviderFactoryMapboxGL::createGeocodingMana
QGeoMappingManagerEngine *QGeoServiceProviderFactoryMapboxGL::createMappingManagerEngine(
const QVariantMap &parameters, QGeoServiceProvider::Error *error, QString *errorString) const
{
+#ifdef Q_OS_WIN
+ if (QOpenGLContext::openGLModuleType() != QOpenGLContext::LibGLES) {
+ qWarning("The Mapbox GL plugin only supports OpenGL ES on Windows. \
+ Try setting the environment variable QT_OPENGL to 'angle'.");
+
+ return 0;
+ }
+#endif
+
return new QGeoMappingManagerEngineMapboxGL(parameters, error, errorString);
}