summaryrefslogtreecommitdiffstats
path: root/src/datavisualization
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-09 14:02:34 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-09 14:19:04 +0200
commit2a4cff24ce61a830f7a119f33cb94c4eff78772e (patch)
tree36edb625c5fa6119ebba786a9d9353053e3a4435 /src/datavisualization
parent2203491ab2b639f3def805ea9cecbab1add32105 (diff)
Implement public utility function for AA setup
qDefaultSurfaceFormat() can be used to set up antialiasing for QML apps in just two lines: ... viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); Task-number: QTRD-2734 Change-Id: I3f7ba728cef6310d794256e1dc4c28cc33b2f9a3 Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavisualization')
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp17
-rw-r--r--src/datavisualization/global/datavisualizationglobal_p.h2
-rw-r--r--src/datavisualization/global/qdatavisualizationglobal.h2
-rw-r--r--src/datavisualization/utils/qutils.h48
-rw-r--r--src/datavisualization/utils/utils.pri3
5 files changed, 59 insertions, 13 deletions
diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp
index 3aada9cf..01974e54 100644
--- a/src/datavisualization/engine/qabstract3dgraph.cpp
+++ b/src/datavisualization/engine/qabstract3dgraph.cpp
@@ -21,6 +21,7 @@
#include "abstract3dcontroller_p.h"
#include "qabstract3dinputhandler_p.h"
#include "q3dscene_p.h"
+#include "qutils.h"
#include <QGuiApplication>
#include <QOpenGLContext>
@@ -65,19 +66,15 @@ QAbstract3DGraph::QAbstract3DGraph(QAbstract3DGraphPrivate *d, const QSurfaceFor
QSurfaceFormat surfaceFormat;
if (format) {
surfaceFormat = *format;
- } else {
- surfaceFormat.setDepthBufferSize(24);
+ // Make sure renderable type is correct
#if !defined(QT_OPENGL_ES_2)
- surfaceFormat.setSamples(8);
-#endif
- surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
- }
-
-#if !defined(QT_OPENGL_ES_2)
- surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL);
+ surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL);
#else
- surfaceFormat.setRenderableType(QSurfaceFormat::OpenGLES);
+ surfaceFormat.setRenderableType(QSurfaceFormat::OpenGLES);
#endif
+ } else {
+ surfaceFormat = qDefaultSurfaceFormat();
+ }
d_ptr->m_context = new QOpenGLContext(this);
setSurfaceType(QWindow::OpenGLSurface);
diff --git a/src/datavisualization/global/datavisualizationglobal_p.h b/src/datavisualization/global/datavisualizationglobal_p.h
index 86b454c9..8ff36a90 100644
--- a/src/datavisualization/global/datavisualizationglobal_p.h
+++ b/src/datavisualization/global/datavisualizationglobal_p.h
@@ -59,4 +59,4 @@ static const GLfloat gradientTextureWidth = 2.0f;
QT_DATAVISUALIZATION_END_NAMESPACE
-#endif // DATAVISUALIZATIONGLOBAL_P_H
+#endif
diff --git a/src/datavisualization/global/qdatavisualizationglobal.h b/src/datavisualization/global/qdatavisualizationglobal.h
index 1c118664..a125e4b2 100644
--- a/src/datavisualization/global/qdatavisualizationglobal.h
+++ b/src/datavisualization/global/qdatavisualizationglobal.h
@@ -64,4 +64,4 @@
# define QT_DATAVISUALIZATION_USE_NAMESPACE
#endif
-#endif // QVIS3DGLOBAL_H
+#endif
diff --git a/src/datavisualization/utils/qutils.h b/src/datavisualization/utils/qutils.h
new file mode 100644
index 00000000..9ae66e6b
--- /dev/null
+++ b/src/datavisualization/utils/qutils.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#ifndef QUTILS_H
+#define QUTILS_H
+
+#include <QtGui/QSurfaceFormat>
+
+namespace QtDataVisualization {
+
+inline static QSurfaceFormat qDefaultSurfaceFormat(bool antialias = true)
+{
+ QSurfaceFormat surfaceFormat;
+
+ surfaceFormat.setDepthBufferSize(24);
+ surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
+#if !defined(QT_OPENGL_ES_2)
+ surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL);
+#else
+ // Antialias not supported for ES
+ antialias = false;
+ surfaceFormat.setRenderableType(QSurfaceFormat::OpenGLES);
+#endif
+
+ if (antialias)
+ surfaceFormat.setSamples(8);
+
+ return surfaceFormat;
+}
+
+}
+
+#endif
diff --git a/src/datavisualization/utils/utils.pri b/src/datavisualization/utils/utils.pri
index cef5ebf0..8ce8794e 100644
--- a/src/datavisualization/utils/utils.pri
+++ b/src/datavisualization/utils/utils.pri
@@ -6,7 +6,8 @@ HEADERS += $$PWD/meshloader_p.h \
$$PWD/texturehelper_p.h \
$$PWD/utils_p.h \
$$PWD/abstractobjecthelper_p.h \
- $$PWD/surfaceobject_p.h
+ $$PWD/surfaceobject_p.h \
+ $$PWD/qutils.h
SOURCES += $$PWD/meshloader.cpp \
$$PWD/vertexindexer.cpp \