aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickshadereffect
diff options
context:
space:
mode:
authorPeter Hartmann <peter.hartmann@intopalo.com>2018-10-11 17:31:28 +0300
committerPeter Hartmann <peter.hartmann@intopalo.com>2018-10-15 11:15:51 +0000
commitf157da4d57330a10e085a0e475936d4465577c6d (patch)
tree4c6a4d60e10aa49589c0841e7b2a16408660e56f /tests/auto/quick/qquickshadereffect
parentf8a20e4cd72a5436b6e3e72198fd072e94661f3c (diff)
ShaderEffect: Allow use of shaders without QML engine
Change-Id: I43a18b94be6d17f6cca745a23bb006515c567de3 Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'tests/auto/quick/qquickshadereffect')
-rw-r--r--tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp b/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp
index f601f520bb..a57b7d4c1f 100644
--- a/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp
+++ b/tests/auto/quick/qquickshadereffect/tst_qquickshadereffect.cpp
@@ -46,6 +46,10 @@ class TestShaderEffect : public QQuickShaderEffect
Q_PROPERTY(QMatrix4x4 mat4x4 READ mat4x4Read NOTIFY dummyChanged)
public:
+ TestShaderEffect(QQuickItem* parent = nullptr) : QQuickShaderEffect(parent)
+ {
+ }
+
QMatrix4x4 mat4x4Read() const { return QMatrix4x4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); }
QVariant dummyRead() const { return QVariant(); }
@@ -79,6 +83,8 @@ private slots:
void deleteShaderEffectSource();
void twoImagesOneShaderEffect();
+ void withoutQmlEngine();
+
private:
enum PresenceFlags {
VertexPresent = 0x01,
@@ -320,6 +326,16 @@ void tst_qquickshadereffect::twoImagesOneShaderEffect()
delete view;
}
+void tst_qquickshadereffect::withoutQmlEngine()
+{
+ // using a shader without QML engine used to crash
+ auto window = new QQuickWindow;
+ auto shaderEffect = new TestShaderEffect(window->contentItem());
+ shaderEffect->setVertexShader("");
+ QVERIFY(shaderEffect->isComponentComplete());
+ delete window;
+}
+
QTEST_MAIN(tst_qquickshadereffect)
#include "tst_qquickshadereffect.moc"