diff options
author | Joni Poikelin <joni.poikelin@qt.io> | 2017-02-01 08:56:34 +0200 |
---|---|---|
committer | Joni Poikelin <joni.poikelin@qt.io> | 2017-02-01 11:31:51 +0000 |
commit | 29a278ed0222c70b4ac4d00ccf44b4cf0d66360c (patch) | |
tree | aa4a6910943112f324d81675f9885d98ac1b31a4 | |
parent | 814d15c5255cf4a46419c21d5f193bb1a499f9f4 (diff) |
Fix regression with UniformAnimator target property validation
Task-number: QTBUG-58549
Change-Id: Iaa2a9cd8b86e8c2bb7e20b99fabad99d0bd51799
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
-rw-r--r-- | src/quick/items/qquickshadereffect.cpp | 5 | ||||
-rw-r--r-- | src/quick/items/qquickshadereffect_p.h | 2 | ||||
-rw-r--r-- | src/quick/util/qquickanimatorjob.cpp | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp index 7926607e33..436d7b33ce 100644 --- a/src/quick/items/qquickshadereffect.cpp +++ b/src/quick/items/qquickshadereffect.cpp @@ -873,4 +873,9 @@ void QQuickShaderEffectPrivate::updatePolish() q->m_impl->maybeUpdateShaders(); } +bool QQuickShaderEffect::isOpenGLShaderEffect() const +{ + return m_glImpl != Q_NULLPTR; +} + QT_END_NAMESPACE diff --git a/src/quick/items/qquickshadereffect_p.h b/src/quick/items/qquickshadereffect_p.h index 7885daffbb..d269dc5e50 100644 --- a/src/quick/items/qquickshadereffect_p.h +++ b/src/quick/items/qquickshadereffect_p.h @@ -117,6 +117,8 @@ public: bool isComponentComplete() const; QString parseLog(); + bool isOpenGLShaderEffect() const; + Q_SIGNALS: void fragmentShaderChanged(); void vertexShaderChanged(); diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 1176cf1ff7..33569c4784 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -46,6 +46,7 @@ #if QT_CONFIG(quick_shadereffect) && QT_CONFIG(opengl) # include <private/qquickopenglshadereffectnode_p.h> # include <private/qquickopenglshadereffect_p.h> +# include <private/qquickshadereffect_p.h> #endif #include <private/qanimationgroupjob_p.h> @@ -558,7 +559,8 @@ QQuickUniformAnimatorJob::QQuickUniformAnimatorJob() void QQuickUniformAnimatorJob::setTarget(QQuickItem *target) { - if (qobject_cast<QQuickOpenGLShaderEffect *>(target) != 0) + QQuickShaderEffect* effect = qobject_cast<QQuickShaderEffect*>(target); + if (effect && effect->isOpenGLShaderEffect()) m_target = target; } |