summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-02-15 16:18:23 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-02-16 12:26:48 +0000
commite0c9c70b229e6b5dbe99e3cfb258206e4a5570b3 (patch)
tree2633b92386c56e0a9e6249f12586c6eb611be980 /src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h
parent270d7a4d5ea707b331efdf05f94442145b1035cf (diff)
downloadqtlocation-e0c9c70b229e6b5dbe99e3cfb258206e4a5570b3.tar.gz
Optional support for QSGMapboxGLRenderNode
QSGMapboxGLRenderNode support is experimental: It doesn't support QQuickItem transforms nor stencil clipping. By default, QSGMapboxGLTextureNode is enabled. The user can select QSGMapboxGLRenderNode by setting 'mapboxgl.use_fbo' plugin parameter to 'false'. Change-Id: I3d5338990458f62fdbe7b8dc00317a85ee1ff188 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
Diffstat (limited to 'src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h')
-rw-r--r--src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h b/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h
index bd7cc4b3..5805a76c 100644
--- a/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h
+++ b/src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h
@@ -38,6 +38,8 @@
#ifndef QSGMAPBOXGLNODE_H
#define QSGMAPBOXGLNODE_H
+#include <QtQuick/QQuickWindow>
+#include <QtQuick/QSGRenderNode>
#include <QtQuick/QSGSimpleTextureNode>
#include <QtQuick/private/qsgtexture_p.h>
#include <QtGui/QOpenGLFramebufferObject>
@@ -46,19 +48,34 @@
class QGeoMapMapboxGL;
-class QSGMapboxGLNode : public QSGSimpleTextureNode
+class QSGMapboxGLTextureNode : public QSGSimpleTextureNode
{
public:
- QSGMapboxGLNode(const QMapboxGLSettings &, const QSize &, qreal pixelRatio, QGeoMapMapboxGL *geoMap);
+ QSGMapboxGLTextureNode(const QMapboxGLSettings &, const QSize &, qreal pixelRatio, QGeoMapMapboxGL *geoMap);
+
+ QMapboxGL* map() const;
void resize(const QSize &size, qreal pixelRatio);
- void render();
+ void render(QQuickWindow *);
+
+private:
+ QScopedPointer<QMapboxGL> m_map;
+ QScopedPointer<QOpenGLFramebufferObject> m_fbo;
+};
+
+class QSGMapboxGLRenderNode : public QSGRenderNode
+{
+public:
+ QSGMapboxGLRenderNode(const QMapboxGLSettings &, const QSize &, qreal pixelRatio, QGeoMapMapboxGL *geoMap);
QMapboxGL* map() const;
+ // QSGRenderNode
+ void render(const RenderState *state) Q_DECL_OVERRIDE;
+ StateFlags changedStates() const Q_DECL_OVERRIDE;
+
private:
QScopedPointer<QMapboxGL> m_map;
- QScopedPointer<QOpenGLFramebufferObject> m_fbo;
};
#endif // QSGMAPBOXGLNODE_H