summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/qgraphicsapifilter.h
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@theqtcompany.com>2015-11-03 10:29:17 +0100
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-03 14:24:05 +0000
commit0df2906ff79d7d43c0a96dd47d6be433cf006db9 (patch)
tree52becca52c0f906829dfacf1af1238546d54d09e /src/render/materialsystem/qgraphicsapifilter.h
parente35820a86b7fc61c8aafc266e9deb225b3d1c564 (diff)
Rename QOpenGLFilter to QGraphicsApiFilter
This API change is part of an effort to remove anything specific to one graphics API (in this case OpenGL) from the public APIs. In addition to the name of the class being changed, the QGraphicsApiFilter::Api has been refactored to reference the Graphics API, rather than an OpenGL API. Now this list includes OpenGL, and OpenGLES, but could also include Vulkan, DirectX, or any other graphics rendering API we wish to support in the future. Right now the properties in this class are still reflective of the OpenGL APIs, and may need to be extended with other properties in the future for other rendering technologies. The QGraphicsApiFilter::Profile enum has also been changed to be more more clear. So for now there are enums NoProfile, CoreProfile, and CompatibilityProfile. Task-number:QTBUG-49078 Change-Id: Ib5f9c3b7adee5badec6bce8a12b23683eb43b4cb Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/materialsystem/qgraphicsapifilter.h')
-rw-r--r--src/render/materialsystem/qgraphicsapifilter.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/render/materialsystem/qgraphicsapifilter.h b/src/render/materialsystem/qgraphicsapifilter.h
new file mode 100644
index 000000000..31a176532
--- /dev/null
+++ b/src/render/materialsystem/qgraphicsapifilter.h
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DRENDER_QGRAPHICSAPIFILTER_H
+#define QT3DRENDER_QGRAPHICSAPIFILTER_H
+
+#include <QObject>
+#include <QStringList>
+#include <Qt3DRender/qt3drender_global.h>
+#include <QSurfaceFormat>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DRender {
+
+class QGraphicsApiFilterPrivate;
+
+class QT3DRENDERSHARED_EXPORT QGraphicsApiFilter : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(Qt3DRender::QGraphicsApiFilter::Api api READ api WRITE setApi NOTIFY apiChanged)
+ Q_PROPERTY(Qt3DRender::QGraphicsApiFilter::Profile profile READ profile WRITE setProfile NOTIFY profileChanged)
+ Q_PROPERTY(int minorVersion READ minorVersion WRITE setMinorVersion NOTIFY minorVersionChanged)
+ Q_PROPERTY(int majorVersion READ majorVersion WRITE setMajorVersion NOTIFY majorVersionChanged)
+ Q_PROPERTY(QStringList extensions READ extensions WRITE setExtensions NOTIFY extensionsChanged)
+ Q_PROPERTY(QString vendor READ vendor WRITE setVendor NOTIFY vendorChanged)
+
+public:
+
+ enum Api
+ {
+ OpenGLES = QSurfaceFormat::OpenGLES,
+ OpenGL = QSurfaceFormat::OpenGL
+ };
+ Q_ENUM(Api)
+
+ enum Profile
+ {
+ NoProfile = QSurfaceFormat::NoProfile,
+ CoreProfile = QSurfaceFormat::CoreProfile,
+ CompatibilityProfile = QSurfaceFormat::CompatibilityProfile
+ };
+ Q_ENUM(Profile)
+
+ explicit QGraphicsApiFilter(QObject *parent = 0);
+
+ void copy(const QGraphicsApiFilter &ref);
+
+ Api api() const;
+ Profile profile() const;
+ int minorVersion() const;
+ int majorVersion() const;
+ QStringList extensions() const;
+ QString vendor() const;
+
+ void setApi(Api api);
+ void setProfile(Profile profile);
+ void setMinorVersion(int minorVersion);
+ void setMajorVersion(int majorVersion);
+ void setExtensions(const QStringList &extensions);
+ void setVendor(const QString &vendor);
+
+Q_SIGNALS:
+ void apiChanged();
+ void profileChanged();
+ void minorVersionChanged();
+ void majorVersionChanged();
+ void extensionsChanged();
+ void vendorChanged();
+ void graphicsApiFilterChanged();
+
+private:
+ Q_DECLARE_PRIVATE(QGraphicsApiFilter)
+};
+
+bool operator ==(const QGraphicsApiFilter &reference, const QGraphicsApiFilter &sample);
+bool operator !=(const QGraphicsApiFilter &reference, const QGraphicsApiFilter &sample);
+
+} // namespace Qt3DRender
+
+QT_END_NAMESPACE
+
+#endif // QT3DRENDER_QGRAPHICSAPIFILTER_H