diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-02-15 16:18:23 +0200 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-02-16 12:26:48 +0000 |
commit | e0c9c70b229e6b5dbe99e3cfb258206e4a5570b3 (patch) | |
tree | 2633b92386c56e0a9e6249f12586c6eb611be980 /src/plugins/geoservices/mapboxgl/qsgmapboxglnode.h | |
parent | 270d7a4d5ea707b331efdf05f94442145b1035cf (diff) | |
download | qtlocation-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.h | 25 |
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 |