From f091351e5d4c116ffdd16768fec60bb07efa049f Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Wed, 29 Jun 2016 14:24:39 +0200 Subject: Enable building Qt Quick Sprite classes with QT_NO_OPENGL Change-Id: Iaea1fa3bd17acee326ae8e299cb0c60d371ffb5b Reviewed-by: Laszlo Agocs --- src/quick/items/items.pri | 22 +++++++++++----------- src/quick/items/qquickanimatedsprite.cpp | 12 +++++++++--- src/quick/items/qquickitemsmodule.cpp | 12 ++++++------ src/quick/items/qquickspritesequence.cpp | 12 +++++++++--- 4 files changed, 35 insertions(+), 23 deletions(-) (limited to 'src/quick/items') 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 #include #include -# 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("QtQuick", 2, 0, "PaintedItem", QQuickPaintedItem::tr("Cannot create instance of abstract class PaintedItem")); qmlRegisterType("QtQuick", 2, 0, "Canvas"); -#ifndef QT_NO_OPENGL + qmlRegisterType("QtQuick", 2, 0, "Sprite"); qmlRegisterType("QtQuick", 2, 0, "AnimatedSprite"); qmlRegisterType("QtQuick", 2, 0, "SpriteSequence"); -#endif + qmlRegisterType(uri, major, minor,"ParentChange"); qmlRegisterType(uri, major, minor,"AnchorChanges"); qmlRegisterType(); 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(); -- cgit v1.2.3