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 09:48:06 +0000 |
commit | 59d26d3e9411150c7ed0fb0cf68d48988c8dbf59 (patch) | |
tree | ab5b481dc1fca7d8987b5b2e9ea7e4c311ea6872 | |
parent | f0e70c845e2095ff23ecd28f44ca84f6b5349e92 (diff) |
Update the backend's buffer data when updating part of QBuffer
Cherry-picked from da7e453d001715f9b0fc9eaf29dd245058e23dab
Change-Id: I9cf18df56d501c7ea49727bc2d1da20371308d4a
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 a23e46c65..a3098f0bd 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()); |