diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-12-10 16:20:08 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-12-11 16:15:38 +0000 |
commit | 7aab0e3b850cc17735ac19ab7a6e7db2bac1cb83 (patch) | |
tree | 721c7dba20026f97571efd06cb758b8448244132 /tests | |
parent | 8470becd886d299c1be892d8113dfff216035611 (diff) |
Add QBlitFramebuffer auto-parenting behavior
As is common with other nodes.
Task-number: QTBUG-65081
Change-Id: I12ccd2fb5344e116f2f5333b73edb4562799543d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/blitframebuffer/tst_blitframebuffer.cpp | 12 | ||||
-rw-r--r-- | tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp | 29 |
2 files changed, 34 insertions, 7 deletions
diff --git a/tests/auto/render/blitframebuffer/tst_blitframebuffer.cpp b/tests/auto/render/blitframebuffer/tst_blitframebuffer.cpp index 6c70b0e95..26c43b5c2 100644 --- a/tests/auto/render/blitframebuffer/tst_blitframebuffer.cpp +++ b/tests/auto/render/blitframebuffer/tst_blitframebuffer.cpp @@ -62,11 +62,11 @@ private Q_SLOTS: void checkInitializeFromPeer() { // GIVEN - Qt3DRender::QRenderTarget sourceTarget; - Qt3DRender::QRenderTarget destinationTarget; + Qt3DRender::QRenderTarget *sourceTarget = new Qt3DRender::QRenderTarget; + Qt3DRender::QRenderTarget *destinationTarget = new Qt3DRender::QRenderTarget; Qt3DRender::QBlitFramebuffer blitFramebuffer; - blitFramebuffer.setSource(&sourceTarget); - blitFramebuffer.setDestination(&destinationTarget); + blitFramebuffer.setSource(sourceTarget); + blitFramebuffer.setDestination(destinationTarget); blitFramebuffer.setSourceRect(QRect(0,0,1,1)); blitFramebuffer.setDestinationRect(QRect(0,0,1,1)); blitFramebuffer.setSourceAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color1); @@ -81,8 +81,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendBlitFramebuffer.isEnabled(), true); QCOMPARE(backendBlitFramebuffer.peerId(), blitFramebuffer.id()); - QCOMPARE(backendBlitFramebuffer.sourceRenderTargetId(), sourceTarget.id()); - QCOMPARE(backendBlitFramebuffer.destinationRenderTargetId(), destinationTarget.id()); + QCOMPARE(backendBlitFramebuffer.sourceRenderTargetId(), sourceTarget->id()); + QCOMPARE(backendBlitFramebuffer.destinationRenderTargetId(), destinationTarget->id()); QCOMPARE(backendBlitFramebuffer.sourceRect(), QRect(0,0,1,1)); QCOMPARE(backendBlitFramebuffer.destinationRect(), QRect(0,0,1,1)); QCOMPARE(backendBlitFramebuffer.sourceAttachmentPoint(), Qt3DRender::QRenderTargetOutput::Color1); diff --git a/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp b/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp index 26ef936f6..f6c7e1a8a 100644 --- a/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp +++ b/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp @@ -85,7 +85,7 @@ private Q_SLOTS: QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges(); // THEN - QCOMPARE(creationChanges.size(), 1); + QCOMPARE(creationChanges.size(), 3); // 3 due to automatic parenting const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QBlitFramebufferData> creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QBlitFramebufferData>>(creationChanges.first()); @@ -331,6 +331,33 @@ private Q_SLOTS: arbiter.events.clear(); } + + void checkSourceDestReset() + { + // GIVEN + TestArbiter arbiter; + QScopedPointer<Qt3DRender::QBlitFramebuffer> blitFramebuffer(new Qt3DRender::QBlitFramebuffer()); + arbiter.setArbiterOnNode(blitFramebuffer.data()); + + Qt3DRender::QRenderTarget *sourceRenderTarget = new Qt3DRender::QRenderTarget; // no parent + Qt3DRender::QRenderTarget *destinationRenderTarget = new Qt3DRender::QRenderTarget(sourceRenderTarget); // have a parent + + // WHEN + blitFramebuffer->setSource(sourceRenderTarget); + blitFramebuffer->setDestination(destinationRenderTarget); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(sourceRenderTarget->parent(), blitFramebuffer.data()); + QCOMPARE(destinationRenderTarget->parent(), sourceRenderTarget); // already set parent must not change + + // WHEN + delete sourceRenderTarget; + + // THEN + QVERIFY(!blitFramebuffer->source()); + QVERIFY(!blitFramebuffer->destination()); // gone too since destinationRenderTarget was parented to sourceRenderTarget + } }; QTEST_MAIN(tst_QBlitFrameBuffer) |