diff options
author | Paul Lemire <paul.lemire350@gmail.com> | 2015-10-11 12:24:23 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2015-10-14 18:52:28 +0000 |
commit | f85ae770b47e0e482e88ed5e7b14d8dfb3ea7e97 (patch) | |
tree | 38a3ad8404179be7dededa9dddb9ca7448bf26c6 /src/render/geometry/qbuffer.cpp | |
parent | 21e80f8c40d6cd8795b03b846161771f7ecc7aa3 (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.cpp | 31 |
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); |