diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp | 17 | ||||
-rw-r--r-- | src/plugins/position/android/jar/src/org/qtproject/qt5/android/positioning/QtPositioning.java | 7 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp index 8df00905..dd5c9a86 100644 --- a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp +++ b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp @@ -97,23 +97,26 @@ QSGNode *QGeoMapMapboxGLPrivate::updateSceneGraph(QSGNode *node, QQuickWindow *w } QMapboxGL *map = 0; - if (m_useFBO) { - if (!node) { + if (!node) { + QOpenGLContext *currentCtx = QOpenGLContext::currentContext(); + if (!currentCtx) { + qWarning("QOpenGLContext is NULL!"); + return node; + } + if (m_useFBO) { QSGMapboxGLTextureNode *mbglNode = new QSGMapboxGLTextureNode(m_settings, m_viewportSize, window->devicePixelRatio(), q); QObject::connect(mbglNode->map(), &QMapboxGL::mapChanged, q, &QGeoMapMapboxGL::onMapChanged); m_syncState = MapTypeSync | CameraDataSync | ViewportSync; node = mbglNode; - } - map = static_cast<QSGMapboxGLTextureNode *>(node)->map(); - } else { - if (!node) { + } else { QSGMapboxGLRenderNode *mbglNode = new QSGMapboxGLRenderNode(m_settings, m_viewportSize, window->devicePixelRatio(), q); QObject::connect(mbglNode->map(), &QMapboxGL::mapChanged, q, &QGeoMapMapboxGL::onMapChanged); m_syncState = MapTypeSync | CameraDataSync | ViewportSync; node = mbglNode; } - map = static_cast<QSGMapboxGLRenderNode *>(node)->map(); } + map = (m_useFBO) ? static_cast<QSGMapboxGLTextureNode *>(node)->map() + : static_cast<QSGMapboxGLRenderNode *>(node)->map(); if (m_syncState & MapTypeSync) { m_developmentMode = m_activeMapType.name().startsWith("mapbox://") diff --git a/src/plugins/position/android/jar/src/org/qtproject/qt5/android/positioning/QtPositioning.java b/src/plugins/position/android/jar/src/org/qtproject/qt5/android/positioning/QtPositioning.java index edc39bd7..1ea0c071 100644 --- a/src/plugins/position/android/jar/src/org/qtproject/qt5/android/positioning/QtPositioning.java +++ b/src/plugins/position/android/jar/src/org/qtproject/qt5/android/positioning/QtPositioning.java @@ -229,8 +229,11 @@ public class QtPositioning implements LocationListener static private void removeActiveListener(int androidClassKey) { QtPositioning listener = runningListeners.remove(androidClassKey); - locationManager.removeUpdates(listener); - listener.setActiveLooper(false); + + if (listener != null) { + locationManager.removeUpdates(listener); + listener.setActiveLooper(false); + } } |