diff options
Diffstat (limited to 'tests/auto/render/qrendercapture/tst_qrendercapture.cpp')
-rw-r--r-- | tests/auto/render/qrendercapture/tst_qrendercapture.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp index 0c5184021..830615a95 100644 --- a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp +++ b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp @@ -108,6 +108,27 @@ private Q_SLOTS: QCOMPARE(reply->image().height(), 20); QCOMPARE(reply->image().format(), QImage::Format_ARGB32); } + + void checkRenderCaptureDestroy() + { + // GIVEN + QScopedPointer<MyRenderCapture> renderCapture(new MyRenderCapture()); + QScopedPointer<Qt3DRender::QRenderCaptureReply> reply(renderCapture->requestCapture()); + QImage img = QImage(20, 20, QImage::Format_ARGB32); + Qt3DRender::RenderCaptureDataPtr data = Qt3DRender::RenderCaptureDataPtr::create(); + data.data()->captureId = 2; + data.data()->image = img; + auto e = Qt3DCore::QPropertyUpdatedChangePtr::create(renderCapture->id()); + e->setDeliveryFlags(Qt3DCore::QSceneChange::DeliverToAll); + e->setPropertyName("renderCaptureData"); + e->setValue(QVariant::fromValue(data)); + + // WHEN + reply.reset(); + + // THEN + renderCapture->sceneChangeEvent(e); // Should not reset + } }; QTEST_MAIN(tst_QRenderCapture) |