diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-05-01 16:04:14 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-01 22:14:18 +0200 |
commit | 46354ec47db9adc80ac185b2178dcd1f157665cd (patch) | |
tree | b37e47248e1fc66b02365a17898399bc7a54c53d /tests/auto/quick/nodes | |
parent | 0cb12e9e01b8309320706fab219945f0ff159413 (diff) |
Opt-in that QSGSimpleTextureNode can own the texture.
Having to subclass just to delete the texture is a bit
tedious.
Change-Id: I26c7e0b5c053ba70e004949ead748e50756d9b39
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'tests/auto/quick/nodes')
-rw-r--r-- | tests/auto/quick/nodes/tst_nodestest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/quick/nodes/tst_nodestest.cpp b/tests/auto/quick/nodes/tst_nodestest.cpp index 662e78ef6c..212337957e 100644 --- a/tests/auto/quick/nodes/tst_nodestest.cpp +++ b/tests/auto/quick/nodes/tst_nodestest.cpp @@ -52,6 +52,8 @@ #include <QtQuick/private/qsgcontext_p.h> #include <QtQuick/qsgsimplerectnode.h> +#include <QtQuick/qsgsimpletexturenode.h> +#include <QtQuick/private/qsgtexture_p.h> class NodesTest : public QObject { @@ -74,6 +76,8 @@ private Q_SLOTS: void isBlockedCheck(); + void textureNodeTextureOwnership(); + private: QOffscreenSurface *surface; QOpenGLContext *context; @@ -259,6 +263,32 @@ void NodesTest::isBlockedCheck() QVERIFY(!updater.isNodeBlocked(node, &root)); } +void NodesTest::textureNodeTextureOwnership() +{ + { // Check that it is not deleted by default + QPointer<QSGTexture> texture(new QSGPlainTexture()); + + QSGSimpleTextureNode *tn = new QSGSimpleTextureNode(); + QVERIFY(!tn->ownsTexture()); + + tn->setTexture(texture); + delete tn; + QVERIFY(!texture.isNull()); + } + + { // Check that it is deleted when we so desire + QPointer<QSGTexture> texture(new QSGPlainTexture()); + + QSGSimpleTextureNode *tn = new QSGSimpleTextureNode(); + tn->setOwnsTexture(true); + QVERIFY(tn->ownsTexture()); + + tn->setTexture(texture); + delete tn; + QVERIFY(texture.isNull()); + } +} + QTEST_MAIN(NodesTest); #include "tst_nodestest.moc" |