aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-04-11 10:29:21 +0200
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-04-13 09:22:13 +0000
commit05605d89f9db80bb748c16ea19c566ab0995027e (patch)
treea05722b7c36c6769fedd7b893f547f86b90bdc9c /src/quick
parent6e6079031cf44149be4ca1f05547b4c03e505290 (diff)
Make QQuickShaderEffectMesh generic
There is nothing GL-specific here (apart from the attribute name list but that will likely remain that way with non-GL backends as well). By moving a few constants it can now be built unconditionally. Change-Id: I866b7b5c0262588a39818b177455f6276f8d584b Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/items.pri4
-rw-r--r--src/quick/items/qquickitemsmodule.cpp6
-rw-r--r--src/quick/items/qquickshadereffect.cpp27
-rw-r--r--src/quick/items/qquickshadereffect_p.h3
-rw-r--r--src/quick/items/qquickshadereffectmesh.cpp14
-rw-r--r--src/quick/items/qquickshadereffectmesh_p.h7
6 files changed, 31 insertions, 30 deletions
diff --git a/src/quick/items/items.pri b/src/quick/items/items.pri
index cad63a39c4..ee58fef1c4 100644
--- a/src/quick/items/items.pri
+++ b/src/quick/items/items.pri
@@ -73,6 +73,7 @@ HEADERS += \
$$PWD/qquickwindowattached_p.h \
$$PWD/qquickwindowmodule_p.h \
$$PWD/qquickshadereffectsource_p.h \
+ $$PWD/qquickshadereffectmesh_p.h \
$$PWD/qquickrendercontrol.h \
$$PWD/qquickrendercontrol_p.h
@@ -124,6 +125,7 @@ SOURCES += \
$$PWD/qquickscreen.cpp \
$$PWD/qquickwindowattached.cpp \
$$PWD/qquickshadereffectsource.cpp \
+ $$PWD/qquickshadereffectmesh.cpp \
$$PWD/qquickrendercontrol.cpp
# Items that depend on OpenGL Renderer
@@ -131,7 +133,6 @@ contains(QT_CONFIG, opengl(es1|es2)?) {
SOURCES += \
$$PWD/qquickopenglinfo.cpp \
$$PWD/qquickshadereffect.cpp \
- $$PWD/qquickshadereffectmesh.cpp \
$$PWD/qquickshadereffectnode.cpp \
$$PWD/qquickframebufferobject.cpp \
$$PWD/qquickspriteengine.cpp \
@@ -147,7 +148,6 @@ contains(QT_CONFIG, opengl(es1|es2)?) {
$$PWD/qquickspritesequence_p.h \
$$PWD/qquickanimatedsprite_p.h \
$$PWD/qquickshadereffect_p.h \
- $$PWD/qquickshadereffectmesh_p.h \
$$PWD/qquickshadereffectnode_p.h \
$$PWD/qquickframebufferobject.h \
$$PWD/qquickitemgrabresult.h
diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp
index 00837363ab..763133c39b 100644
--- a/src/quick/items/qquickitemsmodule.cpp
+++ b/src/quick/items/qquickitemsmodule.cpp
@@ -81,6 +81,7 @@
# include "qquickanimatedsprite_p.h"
# include "qquickopenglinfo_p.h"
#endif
+#include "qquickshadereffectmesh_p.h"
#include "qquickdrag_p.h"
#include "qquickdroparea_p.h"
#include "qquickmultipointtoucharea_p.h"
@@ -211,11 +212,12 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor)
qmlRegisterType<QQuickPinchEvent>();
qmlRegisterType<QQuickShaderEffectSource>("QtQuick", 2, 0, "ShaderEffectSource");
-#ifndef QT_NO_OPENGL
- qmlRegisterType<QQuickShaderEffect>("QtQuick", 2, 0, "ShaderEffect");
qmlRegisterUncreatableType<QQuickShaderEffectMesh>("QtQuick", 2, 0, "ShaderEffectMesh", QQuickShaderEffectMesh::tr("Cannot create instance of abstract class ShaderEffectMesh."));
qmlRegisterType<QQuickGridMesh>("QtQuick", 2, 0, "GridMesh");
+#ifndef QT_NO_OPENGL
+ qmlRegisterType<QQuickShaderEffect>("QtQuick", 2, 0, "ShaderEffect");
#endif
+
qmlRegisterUncreatableType<QQuickPaintedItem>("QtQuick", 2, 0, "PaintedItem", QQuickPaintedItem::tr("Cannot create instance of abstract class PaintedItem"));
qmlRegisterType<QQuickCanvasItem>("QtQuick", 2, 0, "Canvas");
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp
index 41b7ea3896..a2c2ebb380 100644
--- a/src/quick/items/qquickshadereffect.cpp
+++ b/src/quick/items/qquickshadereffect.cpp
@@ -50,25 +50,12 @@
#include "qquickimage_p.h"
#include "qquickshadereffectsource_p.h"
+#include "qquickshadereffectmesh_p.h"
#include <QtCore/qsignalmapper.h>
-#include <QtGui/qopenglframebufferobject.h>
QT_BEGIN_NAMESPACE
-static const char qt_position_attribute_name[] = "qt_Vertex";
-static const char qt_texcoord_attribute_name[] = "qt_MultiTexCoord0";
-
-const char *qtPositionAttributeName()
-{
- return qt_position_attribute_name;
-}
-
-const char *qtTexCoordAttributeName()
-{
- return qt_texcoord_attribute_name;
-}
-
namespace {
enum VariableQualifier {
@@ -256,14 +243,14 @@ void QQuickShaderEffectCommon::updateParseLog(bool ignoreAttributes)
{
parseLog.clear();
if (!ignoreAttributes) {
- if (!attributes.contains(qt_position_attribute_name)) {
+ if (!attributes.contains(qtPositionAttributeName())) {
parseLog += QLatin1String("Warning: Missing reference to \'");
- parseLog += QLatin1String(qt_position_attribute_name);
+ parseLog += QLatin1String(qtPositionAttributeName());
parseLog += QLatin1String("\'.\n");
}
- if (!attributes.contains(qt_texcoord_attribute_name)) {
+ if (!attributes.contains(qtTexCoordAttributeName())) {
parseLog += QLatin1String("Warning: Missing reference to \'");
- parseLog += QLatin1String(qt_texcoord_attribute_name);
+ parseLog += QLatin1String(qtTexCoordAttributeName());
parseLog += QLatin1String("\'.\n");
}
}
@@ -339,8 +326,8 @@ void QQuickShaderEffectCommon::updateShader(QQuickItem *item, Key::ShaderType sh
if (code.isEmpty()) {
// Optimize for default code.
if (shaderType == Key::VertexShader) {
- attributes.append(QByteArray(qt_position_attribute_name));
- attributes.append(QByteArray(qt_texcoord_attribute_name));
+ attributes.append(QByteArray(qtPositionAttributeName()));
+ attributes.append(QByteArray(qtTexCoordAttributeName()));
UniformData d;
d.name = "qt_Matrix";
d.specialType = UniformData::Matrix;
diff --git a/src/quick/items/qquickshadereffect_p.h b/src/quick/items/qquickshadereffect_p.h
index fb266d4c44..c43e4a558e 100644
--- a/src/quick/items/qquickshadereffect_p.h
+++ b/src/quick/items/qquickshadereffect_p.h
@@ -63,9 +63,6 @@
QT_BEGIN_NAMESPACE
-const char *qtPositionAttributeName();
-const char *qtTexCoordAttributeName();
-
class QSGContext;
class QSignalMapper;
class QQuickCustomMaterialShader;
diff --git a/src/quick/items/qquickshadereffectmesh.cpp b/src/quick/items/qquickshadereffectmesh.cpp
index 0811025654..478954e142 100644
--- a/src/quick/items/qquickshadereffectmesh.cpp
+++ b/src/quick/items/qquickshadereffectmesh.cpp
@@ -39,10 +39,22 @@
#include "qquickshadereffectmesh_p.h"
#include <QtQuick/qsggeometry.h>
-#include "qquickshadereffect_p.h"
QT_BEGIN_NAMESPACE
+static const char qt_position_attribute_name[] = "qt_Vertex";
+static const char qt_texcoord_attribute_name[] = "qt_MultiTexCoord0";
+
+const char *qtPositionAttributeName()
+{
+ return qt_position_attribute_name;
+}
+
+const char *qtTexCoordAttributeName()
+{
+ return qt_texcoord_attribute_name;
+}
+
QQuickShaderEffectMesh::QQuickShaderEffectMesh(QObject *parent)
: QObject(parent)
{
diff --git a/src/quick/items/qquickshadereffectmesh_p.h b/src/quick/items/qquickshadereffectmesh_p.h
index 7f9c95888c..c3dcb0322e 100644
--- a/src/quick/items/qquickshadereffectmesh_p.h
+++ b/src/quick/items/qquickshadereffectmesh_p.h
@@ -43,8 +43,8 @@
#include <QtGui/qcolor.h>
#include <QtCore/qobject.h>
#include <QtCore/qsize.h>
-#include <QtCore/qvariant.h>
-#include <QtGui/qopenglfunctions.h>
+#include <QtCore/qvector.h>
+#include <QtCore/qbytearray.h>
#ifndef QQUICKSHADEREFFECTMESH_P_H
#define QQUICKSHADEREFFECTMESH_P_H
@@ -62,6 +62,9 @@
QT_BEGIN_NAMESPACE
+const char *qtPositionAttributeName();
+const char *qtTexCoordAttributeName();
+
class QSGGeometry;
class QRectF;