diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-10-15 16:42:19 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-10-17 12:04:16 +0200 |
commit | aee3dbc8b8f90b76d18ccc833b36dfb787c0bdc5 (patch) | |
tree | 2d481f39500573f55ddf82c98f0a9d12ccd59230 /tests | |
parent | b71e3b7b5c29a3528e421bd680d126679e348221 (diff) |
Buffer: mark as dirty even if empty on firstTime
We otherwise assert in the case we create an empty buffer
that is empty but referenced by Attributes.
This is still a valid case as buffer data can be set later
on.
Change-Id: Ida198f5815f6cbb488b6b27436c4238146c3ae39
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/buffer/tst_buffer.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/tests/auto/render/buffer/tst_buffer.cpp b/tests/auto/render/buffer/tst_buffer.cpp index 1487d3728..48215bea5 100644 --- a/tests/auto/render/buffer/tst_buffer.cpp +++ b/tests/auto/render/buffer/tst_buffer.cpp @@ -113,26 +113,40 @@ private Q_SLOTS: // GIVEN Qt3DRender::QBuffer frontendBuffer; - frontendBuffer.setUsage(Qt3DRender::QBuffer::DynamicCopy); - frontendBuffer.setData(QByteArrayLiteral("C7KR4")); - frontendBuffer.setDataGenerator(Qt3DRender::QBufferDataGeneratorPtr(new TestFunctor(73))); // WHEN backendBuffer.setManager(&bufferManager); backendBuffer.setRenderer(&renderer); simulateInitializationSync(&frontendBuffer, &backendBuffer); - frontendBuffer.updateData(2, QByteArrayLiteral("LS5")); + // THEN + QCOMPARE(backendBuffer.isDirty(), true); + QCOMPARE(backendBuffer.usage(), Qt3DRender::QBuffer::StaticDraw); + QVERIFY(backendBuffer.data().isEmpty()); + QVERIFY(backendBuffer.dataGenerator().isNull()); + QVERIFY(backendBuffer.pendingBufferUpdates().empty()); + + // WHEN + frontendBuffer.setUsage(Qt3DRender::QBuffer::DynamicCopy); + frontendBuffer.setData(QByteArrayLiteral("C7KR4")); + frontendBuffer.setDataGenerator(Qt3DRender::QBufferDataGeneratorPtr(new TestFunctor(73))); backendBuffer.syncFromFrontEnd(&frontendBuffer, false); // THEN QCOMPARE(backendBuffer.usage(), Qt3DRender::QBuffer::DynamicCopy); QCOMPARE(backendBuffer.isDirty(), true); - QCOMPARE(backendBuffer.data(), QByteArrayLiteral("C7LS5")); + QCOMPARE(backendBuffer.data(), QByteArrayLiteral("C7KR4")); QVERIFY(!backendBuffer.dataGenerator().isNull()); QVERIFY(!backendBuffer.pendingBufferUpdates().empty()); // WHEN + frontendBuffer.updateData(2, QByteArrayLiteral("LS5")); + backendBuffer.syncFromFrontEnd(&frontendBuffer, false); + + // THEN + QCOMPARE(backendBuffer.isDirty(), true); + QCOMPARE(backendBuffer.data(), QByteArrayLiteral("C7LS5")); + // WHEN backendBuffer.cleanup(); // THEN |