diff options
Diffstat (limited to 'src/datavisualizationqml2/declarativerendernode_p.h')
-rw-r--r-- | src/datavisualizationqml2/declarativerendernode_p.h | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/src/datavisualizationqml2/declarativerendernode_p.h b/src/datavisualizationqml2/declarativerendernode_p.h index 559e27e1..aa058eee 100644 --- a/src/datavisualizationqml2/declarativerendernode_p.h +++ b/src/datavisualizationqml2/declarativerendernode_p.h @@ -20,44 +20,63 @@ // W A R N I N G // ------------- // -// This file is not part of the QtDataVis3D API. It exists purely as an +// This file is not part of the QtDataVisualization API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. -#ifndef DECLARATIVERENDERNODE_P_H -#define DECLARATIVERENDERNODE_P_H +#ifndef DeclarativeRenderNode_P_H +#define DeclarativeRenderNode_P_H -#include <QObject> #include "datavisualizationglobal_p.h" -#include "abstract3dcontroller_p.h" -#include "abstractdeclarative_p.h" -#include <qsgsimpletexturenode.h> +#include <QtQuick/QSGGeometryNode> +#include <QtQuick/QSGTextureMaterial> +#include <QtQuick/QSGOpaqueTextureMaterial> +#include <QtQuick/QQuickWindow> + +class QOpenGLContext; class QOpenGLFramebufferObject; -class QSGTexture; -class QQuickWindow; QT_BEGIN_NAMESPACE_DATAVISUALIZATION -class DeclarativeRenderNode : public QObject, public QSGSimpleTextureNode +class Abstract3DController; +class AbstractDeclarative; + +class DeclarativeRenderNode : public QSGGeometryNode { - Q_OBJECT public: - explicit DeclarativeRenderNode(QQuickWindow *window, Abstract3DController *controller, - AbstractDeclarative::RenderingMode mode, QObject *parent = 0); - virtual ~DeclarativeRenderNode(); + DeclarativeRenderNode(AbstractDeclarative *declarative); + ~DeclarativeRenderNode(); + + void setSize(const QSize &size); + QSize size() const { return m_size; } + + void update(); + void updateFBO(); + + void setController(Abstract3DController *controller); + void setQuickWindow(QQuickWindow *window); + void setSamples(int samples); - // Renders view to FBO before render cycle starts. - void renderFBO(); + void preprocess(); private: - QOpenGLFramebufferObject *m_fbo; + QSGTextureMaterial m_material; + QSGOpaqueTextureMaterial m_materialO; + QSGGeometry m_geometry; QSGTexture *m_texture; + QSize m_size; + + AbstractDeclarative *m_declarative; + Abstract3DController *m_controller; + QOpenGLFramebufferObject *m_fbo; + QOpenGLFramebufferObject *m_multisampledFBO; QQuickWindow *m_window; - QPointer<Abstract3DController> m_controller; - AbstractDeclarative::RenderingMode m_mode; + int m_samples; + + bool m_dirtyFBO; }; QT_END_NAMESPACE_DATAVISUALIZATION |