diff options
Diffstat (limited to 'src/render/io/qbuffer.cpp')
-rw-r--r-- | src/render/io/qbuffer.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/render/io/qbuffer.cpp b/src/render/io/qbuffer.cpp index ddaa701e6..7f28151ec 100644 --- a/src/render/io/qbuffer.cpp +++ b/src/render/io/qbuffer.cpp @@ -37,6 +37,7 @@ #include "qbuffer.h" #include "qbuffer_p.h" #include <Qt3DRenderer/private/renderlogging_p.h> +#include <Qt3DCore/qscenepropertychange.h> QT_BEGIN_NAMESPACE @@ -79,6 +80,7 @@ void QBuffer::copy(const QNode *ref) const QBuffer *buffer = static_cast<const QBuffer *>(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; } QBuffer::UsageType QBuffer::usage() const @@ -102,6 +104,26 @@ QBuffer::BufferType QBuffer::type() const return d->m_type; } +void QBuffer::setBufferFunctor(const QBufferFunctorPtr &functor) +{ + Q_D(QBuffer); + if (functor && d->m_functor && *functor == *d->m_functor) + return; + d->m_functor = functor; + if (d->m_changeArbiter != Q_NULLPTR) { + QScenePropertyChangePtr change(new QScenePropertyChange(NodeUpdated, QSceneChange::Node, id())); + change->setPropertyName("bufferFunctor"); + change->setValue(QVariant::fromValue(d->m_functor)); + d->notifyObservers(change); + } +} + +QBufferFunctorPtr QBuffer::bufferFunctor() const +{ + Q_D(const QBuffer); + return d->m_functor; +} + void QBuffer::setType(QBuffer::BufferType type) { Q_D(QBuffer); |