summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiulio Camuffo <giulio.camuffo@kdab.com>2019-03-29 15:49:22 +0100
committerPaul Lemire <paul.lemire@kdab.com>2019-04-02 09:48:06 +0000
commit59d26d3e9411150c7ed0fb0cf68d48988c8dbf59 (patch)
treeab5b481dc1fca7d8987b5b2e9ea7e4c311ea6872
parentf0e70c845e2095ff23ecd28f44ca84f6b5349e92 (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.cpp1
-rw-r--r--tests/auto/render/buffer/tst_buffer.cpp2
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());