summaryrefslogtreecommitdiffstats
path: root/src/render/geometry/buffer.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-01 11:16:48 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-05 12:17:21 +0000
commit1fd0de22bdd55adb0046936337b675bf6a987138 (patch)
treecda17894c46b23e4d7011a9107b51b620fa11103 /src/render/geometry/buffer.cpp
parent8d6f253656a4ae7c2a43e8beb238a9258aa143a2 (diff)
Buffer handles creation
Change-Id: I1b70651df24b9eb1418db4552674531153c601a3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/buffer.cpp')
-rw-r--r--src/render/geometry/buffer.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/render/geometry/buffer.cpp b/src/render/geometry/buffer.cpp
index cadf5cd02..f4c88562a 100644
--- a/src/render/geometry/buffer.cpp
+++ b/src/render/geometry/buffer.cpp
@@ -41,6 +41,7 @@
#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DCore/qbackendscenepropertychange.h>
#include <Qt3DRender/private/buffermanager_p.h>
+#include <Qt3DRender/private/qbuffer_p.h>
QT_BEGIN_NAMESPACE
@@ -111,6 +112,22 @@ void Buffer::updateFromPeer(Qt3DCore::QNode *peer)
}
}
+void Buffer::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change)
+{
+ const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QBufferData>>(change);
+ const auto &data = typedChange->data;
+ m_data = data.data;
+ m_type = data.type;
+ m_usage = data.usage;
+ m_syncData = data.syncData;
+ m_bufferDirty = true;
+
+ m_functor = data.functor;
+ Q_ASSERT(m_manager);
+ if (m_functor)
+ m_manager->addDirtyBuffer(peerId());
+}
+
void Buffer::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
{
if (e->type() == NodeUpdated) {