summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-06-03 13:53:01 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-06-04 06:26:35 +0300
commite2c5eae7ab8e28b545b11d04ab57cdd31008fc8e (patch)
tree0fec3727110c4052010c8e635c80e3838a5ae94d /src
parent9a1aa98d9b9df279650515364220d30ec44ccbdb (diff)
Mac / linux fixes + other tweaks
Change-Id: I8b1457b86b0f881cfd374cf9e9ed3c803e7d04d2 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.h4
-rw-r--r--src/datavis3dqml2/datavisview.cpp44
-rw-r--r--src/datavis3dqml2/datavisview.h14
-rw-r--r--src/datavis3dqml2/scenerenderernode.cpp28
-rw-r--r--src/datavis3dqml2/scenerenderernode_p.h4
5 files changed, 80 insertions, 14 deletions
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.h b/src/datavis3dqml2/datavis3dqml2_plugin.h
index 17b7703b..55d18754 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.h
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.h
@@ -57,7 +57,7 @@
#include <QQmlExtensionPlugin>
-QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+QTENTERPRISE_DATAVIS3D_USE_NAMESPACE
//Q_DECLARE_METATYPE(Declarative3DBars *)
//Q_DECLARE_METATYPE(Declarative3DMaps *)
@@ -71,6 +71,8 @@ Q_DECLARE_METATYPE(QDataItem *)
Q_DECLARE_METATYPE(QDataRow *)
Q_DECLARE_METATYPE(QDataSet *)
+QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+
class Datavis3dqml2Plugin : public QQmlExtensionPlugin
{
Q_OBJECT
diff --git a/src/datavis3dqml2/datavisview.cpp b/src/datavis3dqml2/datavisview.cpp
index 0322acc1..5279d7da 100644
--- a/src/datavis3dqml2/datavisview.cpp
+++ b/src/datavis3dqml2/datavisview.cpp
@@ -39,13 +39,26 @@
**
****************************************************************************/
+//#define TEST1
+//#define TEST2
+
#include "datavisview.h"
#include "scenerenderernode_p.h"
#include <QDebug>
+#ifdef TEST1
+#include "q3dbars.h"
+#include <QtQuick/QQuickWindow>
+#endif
+
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+#ifdef TEST1
+Q3DBars *test_scene;
+QQuickWindow *test_window;
+#endif
+
DataVisView::DataVisView(QQuickItem *parent):
QQuickItem(parent)
{
@@ -62,6 +75,34 @@ DataVisView::~DataVisView()
QSGNode *DataVisView::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
+#ifdef TEST1
+ static bool done = false;
+ if (!done) {
+ qDebug() << "create scene";
+ test_scene = new Q3DBars();
+ //test_scene->initialize();
+
+ // TODO: For testing. Add some data to scene.
+ QVector< QVector<float> > data;
+ QVector<float> row;
+ for (int j = 0; j < 2; j++) {
+ for (int i = 0; i < 2; i++)
+ row.append(1.0f);
+ data.append(row);
+ row.clear();
+ }
+ // Set up sample space based on inserted data
+ test_scene->setupSampleSpace(2, 2);
+ // Add data to chart
+ test_scene->addDataSet(data);
+
+ test_window = window();
+ QObject::connect(test_window, &QQuickWindow::beforeRendering, test_scene, &Q3DBars::renderNow,
+ Qt::DirectConnection);
+ test_window->update();
+ done = true;
+ }
+#elif TEST2
// Delete old node and recreate it. This function gets called when window geometry changes.
if (oldNode)
delete oldNode;
@@ -71,6 +112,9 @@ QSGNode *DataVisView::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
node->setRect(boundingRect());
return node;
+#else
+ return NULL;
+#endif
}
QTENTERPRISE_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3dqml2/datavisview.h b/src/datavis3dqml2/datavisview.h
index 3488338c..4e9d29e2 100644
--- a/src/datavis3dqml2/datavisview.h
+++ b/src/datavis3dqml2/datavisview.h
@@ -44,6 +44,7 @@
#include "QtDataVis3D/qdatavis3dglobal.h"
+#include <QtQuick/QQuickItem>
#include <QQuickItem>
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
@@ -57,9 +58,6 @@ class DataVisView : public QQuickItem
Q_ENUMS(LabelTransparency)
public:
- DataVisView(QQuickItem *parent = 0);
- ~DataVisView();
-
enum SelectionMode {
ModeNone = 0,
ModeBar,
@@ -83,14 +81,20 @@ public:
TransparencyNoBackground // Draw just text on transparent background
};
+public:
+ DataVisView(QQuickItem *parent = 0);
+ ~DataVisView();
+
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
};
-QML_DECLARE_TYPE(DataVisView)
-
QTENTERPRISE_DATAVIS3D_END_NAMESPACE
+QTENTERPRISE_DATAVIS3D_USE_NAMESPACE
+
+QML_DECLARE_TYPE(DataVisView)
+
#endif // DATAVISVIEW_H
diff --git a/src/datavis3dqml2/scenerenderernode.cpp b/src/datavis3dqml2/scenerenderernode.cpp
index 98c2167e..00f03e5e 100644
--- a/src/datavis3dqml2/scenerenderernode.cpp
+++ b/src/datavis3dqml2/scenerenderernode.cpp
@@ -43,7 +43,7 @@
#include <QtQuick/QQuickWindow>
#include <QtGui/QOpenGLFramebufferObject>
-//#include "q3dbars.h"
+#include "q3dbars.h"
//#include "q3dmaps.h"
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
@@ -51,8 +51,8 @@ QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
SceneRendererNode::SceneRendererNode(QQuickWindow *window)
: m_fbo(0),
m_texture(0),
- m_window(window)//,
- //m_scene(0)
+ m_window(window),
+ m_scene(0)
{
connect(m_window, SIGNAL(beforeRendering()), this, SLOT(render()));
}
@@ -61,7 +61,7 @@ SceneRendererNode::~SceneRendererNode()
{
delete m_texture;
delete m_fbo;
- //delete m_scene;
+ delete m_scene;
}
void SceneRendererNode::render()
@@ -78,7 +78,23 @@ void SceneRendererNode::render()
// TODO: If we create the vis3d this way, how do we connect it with QML?
// Should we create it at QML and give it to DataVisView using a property (setVisualizer or similar)?
// DataVisView can then give it here as an argument in constructor?
- //m_scene = new Q3DBars();
+
+ m_scene = new Q3DBars();
+
+ // TODO: For testing. Add some data to scene.
+ QVector< QVector<float> > data;
+ QVector<float> row;
+ for (int j = 0; j < 2; j++) {
+ for (int i = 0; i < 2; i++)
+ row.append(1.0f);
+ data.append(row);
+ row.clear();
+ }
+ // Set up sample space based on inserted data
+ m_scene->setupSampleSpace(2, 2);
+ // Add data to chart
+ m_scene->addDataSet(data);
+
//m_scene = new Q3DMaps();
setTexture(m_texture);
}
@@ -86,7 +102,7 @@ void SceneRendererNode::render()
m_fbo->bind();
// TODO: Render here, or "capture" the rendering we do at Q3DBars/Q3DMaps
- //m_scene->render();
+ m_scene->renderNow();
m_fbo->bindDefault();
diff --git a/src/datavis3dqml2/scenerenderernode_p.h b/src/datavis3dqml2/scenerenderernode_p.h
index 2a1f282c..aa59b9c1 100644
--- a/src/datavis3dqml2/scenerenderernode_p.h
+++ b/src/datavis3dqml2/scenerenderernode_p.h
@@ -63,7 +63,7 @@ class QQuickWindow;
QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
-//class Q3DBars;
+class Q3DBars;
//class Q3DMaps;
// TODO: If we use texture node, our rendering is done into a texture that is then drawn to the
@@ -84,7 +84,7 @@ private:
QOpenGLFramebufferObject *m_fbo;
QSGTexture *m_texture;
QQuickWindow *m_window;
- //Q3DBars *m_scene;
+ Q3DBars *m_scene;
//Q3DMaps *m_scene;
};