diff options
Diffstat (limited to 'src/plugins/geoservices/mapboxgl')
-rw-r--r-- | src/plugins/geoservices/mapboxgl/mapboxgl.pro | 8 | ||||
-rw-r--r-- | src/plugins/geoservices/mapboxgl/qgeoserviceproviderpluginmapboxgl.cpp | 10 |
2 files changed, 18 insertions, 0 deletions
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 ¶meters, 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); } |