summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-12-10 16:20:08 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2017-12-11 16:15:38 +0000
commit7aab0e3b850cc17735ac19ab7a6e7db2bac1cb83 (patch)
tree721c7dba20026f97571efd06cb758b8448244132 /tests
parent8470becd886d299c1be892d8113dfff216035611 (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.cpp12
-rw-r--r--tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp29
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)