diff options
author | Giulio Camuffo <giulio.camuffo@kdab.com> | 2019-03-29 15:49:22 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-04-02 05:33:08 +0000 |
commit | da7e453d001715f9b0fc9eaf29dd245058e23dab (patch) | |
tree | 97a7f82f46f1e62b724f973efc8bea765cc25a28 | |
parent | b9ac4faf28cc27849a392019564209b319f90568 (diff) |
Update the backend's buffer data when updating part of QBuffer
Change-Id: I7e781ec9c6b21b93de55a14232fbecfe5c827798
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/geometry/buffer.cpp | 1 | ||||
-rw-r--r-- | tests/auto/render/buffer/tst_buffer.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/render/geometry/buffer.cpp b/src/render/geometry/buffer.cpp index 3658ef335..d60f89c7d 100644 --- a/src/render/geometry/buffer.cpp +++ b/src/render/geometry/buffer.cpp @@ -159,6 +159,7 @@ void Buffer::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) forceDataUpload(); } else if (propertyName == QByteArrayLiteral("updateData")) { Qt3DRender::QBufferUpdate updateData = propertyChange->value().value<Qt3DRender::QBufferUpdate>(); + m_data.replace(updateData.offset, updateData.data.size(), updateData.data); m_bufferUpdates.push_back(updateData); m_bufferDirty = true; } else if (propertyName == QByteArrayLiteral("usage")) { diff --git a/tests/auto/render/buffer/tst_buffer.cpp b/tests/auto/render/buffer/tst_buffer.cpp index 72ed399b3..da853d4e9 100644 --- a/tests/auto/render/buffer/tst_buffer.cpp +++ b/tests/auto/render/buffer/tst_buffer.cpp @@ -132,7 +132,7 @@ private Q_SLOTS: // THEN QCOMPARE(renderBuffer.usage(), Qt3DRender::QBuffer::DynamicCopy); QCOMPARE(renderBuffer.isDirty(), true); - QCOMPARE(renderBuffer.data(), QByteArrayLiteral("C7")); + QCOMPARE(renderBuffer.data(), QByteArrayLiteral("C7LS5")); QVERIFY(!renderBuffer.dataGenerator().isNull()); QVERIFY(!renderBuffer.pendingBufferUpdates().empty()); |