diff options
Diffstat (limited to 'src/quick/scenegraph/qsgdefaultspritenode.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgdefaultspritenode.cpp | 52 |
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[] = { |