summaryrefslogtreecommitdiffstats
path: root/src/render/geometry/qbuffer.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire350@gmail.com>2015-10-11 12:24:23 +0200
committerPaul Lemire <paul.lemire@kdab.com>2015-10-14 18:52:28 +0000
commitf85ae770b47e0e482e88ed5e7b14d8dfb3ea7e97 (patch)
tree38a3ad8404179be7dededa9dddb9ca7448bf26c6 /src/render/geometry/qbuffer.cpp
parent21e80f8c40d6cd8795b03b846161771f7ecc7aa3 (diff)
QBuffer: add a sync property
When true, data loaded through a functor will also be updated to the frontend. Change-Id: I2980e00a927ed5f787e217a20e2c42d8c5ea0e81 Task-number: QTBUG-48454 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/render/geometry/qbuffer.cpp')
-rw-r--r--src/render/geometry/qbuffer.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/render/geometry/qbuffer.cpp b/src/render/geometry/qbuffer.cpp
index f31badc2d..41c10e7e1 100644
--- a/src/render/geometry/qbuffer.cpp
+++ b/src/render/geometry/qbuffer.cpp
@@ -46,12 +46,13 @@ using namespace Qt3DCore;
namespace Qt3DRender {
/*!
- \class Qt3DCore::BufferPrivate
+ \class Qt3DRender::QBufferPrivate
\internal
*/
QBufferPrivate::QBufferPrivate()
: QAbstractBufferPrivate()
, m_usage(QBuffer::StaticDraw)
+ , m_sync(false)
{
}
@@ -83,6 +84,7 @@ void QBuffer::copy(const QNode *ref)
d_func()->m_type = buffer->d_func()->m_type;
d_func()->m_usage = buffer->d_func()->m_usage;
d_func()->m_functor = buffer->d_func()->m_functor;
+ d_func()->m_sync = buffer->d_func()->m_sync;
}
QBuffer::UsageType QBuffer::usage() const
@@ -126,6 +128,33 @@ QBufferFunctorPtr QBuffer::bufferFunctor() const
return d->m_functor;
}
+/*!
+ Sets the sync to \a sync. When sync is true, this will force data created
+ by a Qt3DRender::QBufferFunctor to also be updated on the frontend
+ Qt3DRender::QBuffer node. By default sync is false.
+
+ \note: This has no effect if the buffer's data was set directly using the data
+ property.
+ */
+void QBuffer::setSync(bool sync)
+{
+ Q_D(QBuffer);
+ if (d->m_sync != sync) {
+ d->m_sync = sync;
+ emit syncChanged();
+ }
+}
+
+/*!
+ Returns whether data loaded by a Qt3DRender::QBufferFunctor should be
+ synched with the Qt3DRender::QBuffer node or not.
+ */
+bool QBuffer::isSync() const
+{
+ Q_D(const QBuffer);
+ return d->m_sync;
+}
+
void QBuffer::setType(QBuffer::BufferType type)
{
Q_D(QBuffer);