summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2/declarativerendernode_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualizationqml2/declarativerendernode_p.h')
-rw-r--r--src/datavisualizationqml2/declarativerendernode_p.h57
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