aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@theqtcompany.com>2016-06-29 14:24:39 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2016-07-14 13:04:53 +0000
commitf091351e5d4c116ffdd16768fec60bb07efa049f (patch)
tree95d093c3f4d527e77f1181ab7b78610ebb0ce2c6 /src/quick/items
parentcc7cf5f5705553b625c1b28b49c41587b587bb38 (diff)
Enable building Qt Quick Sprite classes with QT_NO_OPENGL
Change-Id: Iaea1fa3bd17acee326ae8e299cb0c60d371ffb5b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/quick/items')
-rw-r--r--src/quick/items/items.pri22
-rw-r--r--src/quick/items/qquickanimatedsprite.cpp12
-rw-r--r--src/quick/items/qquickitemsmodule.cpp12
-rw-r--r--src/quick/items/qquickspritesequence.cpp12
4 files changed, 35 insertions, 23 deletions
diff --git a/src/quick/items/items.pri b/src/quick/items/items.pri
index 0c7dc97a2c..3f1e438c2b 100644
--- a/src/quick/items/items.pri
+++ b/src/quick/items/items.pri
@@ -79,7 +79,11 @@ HEADERS += \
$$PWD/qquickrendercontrol.h \
$$PWD/qquickrendercontrol_p.h \
$$PWD/qquickgraphicsinfo_p.h \
- $$PWD/qquickitemgrabresult.h
+ $$PWD/qquickitemgrabresult.h \
+ $$PWD/qquickspriteengine_p.h \
+ $$PWD/qquicksprite_p.h \
+ $$PWD/qquickspritesequence_p.h \
+ $$PWD/qquickanimatedsprite_p.h
SOURCES += \
$$PWD/qquickevents.cpp \
@@ -134,7 +138,11 @@ SOURCES += \
$$PWD/qquickgenericshadereffect.cpp \
$$PWD/qquickrendercontrol.cpp \
$$PWD/qquickgraphicsinfo.cpp \
- $$PWD/qquickitemgrabresult.cpp
+ $$PWD/qquickitemgrabresult.cpp \
+ $$PWD/qquickspriteengine.cpp \
+ $$PWD/qquicksprite.cpp \
+ $$PWD/qquickspritesequence.cpp \
+ $$PWD/qquickanimatedsprite.cpp
# Items that depend on OpenGL Renderer
contains(QT_CONFIG, opengl(es1|es2)?) {
@@ -142,18 +150,10 @@ contains(QT_CONFIG, opengl(es1|es2)?) {
$$PWD/qquickopenglinfo.cpp \
$$PWD/qquickopenglshadereffect.cpp \
$$PWD/qquickopenglshadereffectnode.cpp \
- $$PWD/qquickframebufferobject.cpp \
- $$PWD/qquickspriteengine.cpp \
- $$PWD/qquicksprite.cpp \
- $$PWD/qquickspritesequence.cpp \
- $$PWD/qquickanimatedsprite.cpp
+ $$PWD/qquickframebufferobject.cpp
HEADERS += \
$$PWD/qquickopenglinfo_p.h \
- $$PWD/qquickspriteengine_p.h \
- $$PWD/qquicksprite_p.h \
- $$PWD/qquickspritesequence_p.h \
- $$PWD/qquickanimatedsprite_p.h \
$$PWD/qquickopenglshadereffect_p.h \
$$PWD/qquickopenglshadereffectnode_p.h \
$$PWD/qquickframebufferobject.h
diff --git a/src/quick/items/qquickanimatedsprite.cpp b/src/quick/items/qquickanimatedsprite.cpp
index 77c7ae106b..aaa0487afd 100644
--- a/src/quick/items/qquickanimatedsprite.cpp
+++ b/src/quick/items/qquickanimatedsprite.cpp
@@ -96,6 +96,7 @@ QQuickAnimatedSpriteMaterial::~QQuickAnimatedSpriteMaterial()
delete texture;
}
+#ifndef QT_NO_OPENGL
class AnimatedSpriteMaterialData : public QSGMaterialShader
{
public:
@@ -140,10 +141,15 @@ public:
int m_animData_id;
int m_animPos_id;
};
+#endif
QSGMaterialShader *QQuickAnimatedSpriteMaterial::createShader() const
{
+#ifndef QT_NO_OPENGL
return new AnimatedSpriteMaterialData;
+#else
+ return nullptr;
+#endif
}
struct AnimatedSpriteVertex {
@@ -448,8 +454,8 @@ void QQuickAnimatedSprite::createEngine()
}
static QSGGeometry::Attribute AnimatedSprite_Attributes[] = {
- QSGGeometry::Attribute::create(0, 2, GL_FLOAT, true), // pos
- QSGGeometry::Attribute::create(1, 2, GL_FLOAT), // tex
+ QSGGeometry::Attribute::create(0, 2, QSGGeometry::TypeFloat, true), // pos
+ QSGGeometry::Attribute::create(1, 2, QSGGeometry::TypeFloat), // tex
};
static QSGGeometry::AttributeSet AnimatedSprite_AttributeSet =
@@ -508,7 +514,7 @@ QSGGeometryNode* QQuickAnimatedSprite::buildNode()
int vCount = 4;
int iCount = 6;
QSGGeometry *g = new QSGGeometry(AnimatedSprite_AttributeSet, vCount, iCount);
- g->setDrawingMode(GL_TRIANGLES);
+ g->setDrawingMode(QSGGeometry::DrawTriangles);
AnimatedSpriteVertices *p = (AnimatedSpriteVertices *) g->vertexData();
diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp
index 8ed7f2bb05..fb60331ce2 100644
--- a/src/quick/items/qquickitemsmodule.cpp
+++ b/src/quick/items/qquickitemsmodule.cpp
@@ -73,11 +73,11 @@
//#include <private/qquickpincharea_p.h>
#include <QtQuick/private/qquickcanvasitem_p.h>
#include <QtQuick/private/qquickcontext2d_p.h>
-# include "qquickitemgrabresult.h"
+#include "qquickitemgrabresult.h"
+#include "qquicksprite_p.h"
+#include "qquickspritesequence_p.h"
+#include "qquickanimatedsprite_p.h"
#ifndef QT_NO_OPENGL
-# include "qquicksprite_p.h"
-# include "qquickspritesequence_p.h"
-# include "qquickanimatedsprite_p.h"
# include "qquickopenglinfo_p.h"
#endif
#include "qquickgraphicsinfo_p.h"
@@ -218,11 +218,11 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor)
qmlRegisterUncreatableType<QQuickPaintedItem>("QtQuick", 2, 0, "PaintedItem", QQuickPaintedItem::tr("Cannot create instance of abstract class PaintedItem"));
qmlRegisterType<QQuickCanvasItem>("QtQuick", 2, 0, "Canvas");
-#ifndef QT_NO_OPENGL
+
qmlRegisterType<QQuickSprite>("QtQuick", 2, 0, "Sprite");
qmlRegisterType<QQuickAnimatedSprite>("QtQuick", 2, 0, "AnimatedSprite");
qmlRegisterType<QQuickSpriteSequence>("QtQuick", 2, 0, "SpriteSequence");
-#endif
+
qmlRegisterType<QQuickParentChange>(uri, major, minor,"ParentChange");
qmlRegisterType<QQuickAnchorChanges>(uri, major, minor,"AnchorChanges");
qmlRegisterType<QQuickAnchorSet>();
diff --git a/src/quick/items/qquickspritesequence.cpp b/src/quick/items/qquickspritesequence.cpp
index f32e1afd50..6654c7a964 100644
--- a/src/quick/items/qquickspritesequence.cpp
+++ b/src/quick/items/qquickspritesequence.cpp
@@ -95,6 +95,7 @@ QQuickSpriteSequenceMaterial::~QQuickSpriteSequenceMaterial()
delete texture;
}
+#ifndef QT_NO_OPENGL
class SpriteSequenceMaterialData : public QSGMaterialShader
{
public:
@@ -139,10 +140,15 @@ public:
int m_animData_id;
int m_animPos_id;
};
+#endif
QSGMaterialShader *QQuickSpriteSequenceMaterial::createShader() const
{
+#ifndef QT_NO_OPENGL
return new SpriteSequenceMaterialData;
+#else
+ return nullptr;
+#endif
}
struct SpriteVertex {
@@ -275,8 +281,8 @@ void QQuickSpriteSequence::createEngine()
}
static QSGGeometry::Attribute SpriteSequence_Attributes[] = {
- QSGGeometry::Attribute::create(0, 2, GL_FLOAT, true), // pos
- QSGGeometry::Attribute::create(1, 2, GL_FLOAT), // tex
+ QSGGeometry::Attribute::create(0, 2, QSGGeometry::TypeFloat, true), // pos
+ QSGGeometry::Attribute::create(1, 2, QSGGeometry::TypeFloat), // tex
};
static QSGGeometry::AttributeSet SpriteSequence_AttributeSet =
@@ -341,7 +347,7 @@ QSGGeometryNode* QQuickSpriteSequence::buildNode()
int vCount = 4;
int iCount = 6;
QSGGeometry *g = new QSGGeometry(SpriteSequence_AttributeSet, vCount, iCount);
- g->setDrawingMode(GL_TRIANGLES);
+ g->setDrawingMode(QSGGeometry::DrawTriangles);
SpriteVertices *p = (SpriteVertices *) g->vertexData();
QRectF texRect = m_material->texture->normalizedTextureSubRect();