diff options
author | Gunnar Sletta <gunnar.sletta@digia.com> | 2013-05-28 09:42:05 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-28 19:35:18 +0200 |
commit | 493dea89672a8b4e4e1e3149283e93c0bfbe261c (patch) | |
tree | c02918a915ae2e6c216d98ef1b488e264428e6b0 /src/quick/items/qquickshadereffect.cpp | |
parent | 17b4cf5e49b95f322b5dcb39f4c122b17fd3c39f (diff) |
Do not draw negative-size ShaderEffect(Source) items.
We were a bit inconsistent here. A negative size Image element would not
render at all, a negative size ShaderEffect would render mirrored
and a negative size ShaderEffectSource would trigger an assert.
Be consistent and not draw any of them.
DropShadow from QtGraphicalEffects uses both a ShaderEffectSource and
a ShaderEffect together, so keeping the behavior in ShaderEffect
would make it render incorrectly.
Task-number: QTBUG-31383
Change-Id: Ied5568d7edbc2aed96b00adfdc6aae09b6f2a7d9
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Diffstat (limited to 'src/quick/items/qquickshadereffect.cpp')
-rw-r--r-- | src/quick/items/qquickshadereffect.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp index 102066704b..f39a15070c 100644 --- a/src/quick/items/qquickshadereffect.cpp +++ b/src/quick/items/qquickshadereffect.cpp @@ -912,8 +912,8 @@ QSGNode *QQuickShaderEffect::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDa { QQuickShaderEffectNode *node = static_cast<QQuickShaderEffectNode *>(oldNode); - // In the case of a bad vertex shader, don't try to create a node... - if (m_common.attributes.isEmpty()) { + // In the case of zero-size or a bad vertex shader, don't try to create a node... + if (m_common.attributes.isEmpty() || width() <= 0 || height() <= 0) { if (node) delete node; return 0; |