aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgdefaultspritenode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/scenegraph/qsgdefaultspritenode.cpp')
-rw-r--r--src/quick/scenegraph/qsgdefaultspritenode.cpp52
1 files changed, 2 insertions, 50 deletions
diff --git a/src/quick/scenegraph/qsgdefaultspritenode.cpp b/src/quick/scenegraph/qsgdefaultspritenode.cpp
index 573c6e7a5d..2f3a384891 100644
--- a/src/quick/scenegraph/qsgdefaultspritenode.cpp
+++ b/src/quick/scenegraph/qsgdefaultspritenode.cpp
@@ -80,7 +80,6 @@ public:
QQuickSpriteMaterial::QQuickSpriteMaterial()
{
setFlag(Blending, true);
- setFlag(SupportsRhiShader, true);
}
QQuickSpriteMaterial::~QQuickSpriteMaterial()
@@ -88,51 +87,7 @@ QQuickSpriteMaterial::~QQuickSpriteMaterial()
delete texture;
}
-class SpriteMaterialShader : public QSGMaterialShader
-{
-public:
- SpriteMaterialShader()
- {
- setShaderSourceFile(QOpenGLShader::Vertex, QStringLiteral(":/qt-project.org/scenegraph/shaders/sprite.vert"));
- setShaderSourceFile(QOpenGLShader::Fragment, QStringLiteral(":/qt-project.org/scenegraph/shaders/sprite.frag"));
- }
-
- void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) override
- {
- QQuickSpriteMaterial *m = static_cast<QQuickSpriteMaterial *>(newEffect);
- m->texture->bind();
-
- program()->setUniformValue(m_opacity_id, state.opacity());
- program()->setUniformValue(m_animData_id, m->animW, m->animH, m->animT);
- program()->setUniformValue(m_animPos_id, m->animX1, m->animY1, m->animX2, m->animY2);
-
- if (state.isMatrixDirty())
- program()->setUniformValue(m_matrix_id, state.combinedMatrix());
- }
-
- void initialize() override {
- m_matrix_id = program()->uniformLocation("qt_Matrix");
- m_opacity_id = program()->uniformLocation("qt_Opacity");
- m_animData_id = program()->uniformLocation("animData");
- m_animPos_id = program()->uniformLocation("animPos");
- }
-
- char const *const *attributeNames() const override {
- static const char *attr[] = {
- "vPos",
- "vTex",
- nullptr
- };
- return attr;
- }
-
- int m_matrix_id;
- int m_opacity_id;
- int m_animData_id;
- int m_animPos_id;
-};
-
-class SpriteMaterialRhiShader : public QSGMaterialRhiShader
+class SpriteMaterialRhiShader : public QSGMaterialShader
{
public:
SpriteMaterialRhiShader();
@@ -201,10 +156,7 @@ void SpriteMaterialRhiShader::updateSampledImage(RenderState &state, int binding
QSGMaterialShader *QQuickSpriteMaterial::createShader() const
{
- if (flags().testFlag(RhiShaderWanted))
- return new SpriteMaterialRhiShader;
- else
- return new SpriteMaterialShader;
+ return new SpriteMaterialRhiShader;
}
static QSGGeometry::Attribute Sprite_Attributes[] = {