QBuffer Class

(Qt3DRender::QBuffer)

Provides a data store for raw data to later be used as vertices or uniforms. More...

Header: #include <Qt3DRender/QBuffer>
qmake: QT += 3drender
Instantiated By: Buffer
Inherits: Qt3DCore::QNode

Public Types

enum AccessType { Write, Read, ReadWrite }
enum UsageType { StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, …, DynamicCopy }

Properties

Public Functions

QBuffer(Qt3DCore::QNode *parent = nullptr)
Qt3DRender::QBuffer::AccessType accessType() const
QByteArray data() const
Qt3DRender::QBufferDataGeneratorPtr dataGenerator() const
bool isSyncData() const
void setData(const QByteArray &bytes)
void setDataGenerator(const Qt3DRender::QBufferDataGeneratorPtr &functor)
void updateData(int offset, const QByteArray &bytes)
Qt3DRender::QBuffer::UsageType usage() const

Public Slots

void setAccessType(Qt3DRender::QBuffer::AccessType access)
void setSyncData(bool syncData)
void setUsage(Qt3DRender::QBuffer::UsageType usage)

Signals

void accessTypeChanged(Qt3DRender::QBuffer::AccessType access)
void dataAvailable()
void dataChanged(const QByteArray &bytes)
void syncDataChanged(bool syncData)
void usageChanged(Qt3DRender::QBuffer::UsageType usage)

Detailed Description

Data can either be provided directly using QBuffer::setData() or by specifying a generator with QBuffer::setDataGenerator() and providing a Qt3DRender::QBufferDataGeneratorPtr.

When using a generator the data will be loaded asynchronously in a job. The loaded data can be read back if the QBuffer::syncData flag is set to true.

Member Type Documentation

enum QBuffer::AccessType

ConstantValueDescription
Qt3DRender::QBuffer::Write0x1Write access
Qt3DRender::QBuffer::Read0x2Read access
Qt3DRender::QBuffer::ReadWriteWrite|ReadWrite|Read

enum QBuffer::UsageType

The type of the usage.

ConstantValueDescription
Qt3DRender::QBuffer::StreamDraw0x88E0GL_STREAM_DRAW
Qt3DRender::QBuffer::StreamRead0x88E1GL_STREAM_READ
Qt3DRender::QBuffer::StreamCopy0x88E2GL_STREAM_COPY
Qt3DRender::QBuffer::StaticDraw0x88E4GL_STATIC_DRAW
Qt3DRender::QBuffer::StaticRead0x88E5GL_STATIC_READ
Qt3DRender::QBuffer::StaticCopy0x88E6GL_STATIC_COPY
Qt3DRender::QBuffer::DynamicDraw0x88E8GL_DYNAMIC_DRAW
Qt3DRender::QBuffer::DynamicRead0x88E9GL_DYNAMIC_READ
Qt3DRender::QBuffer::DynamicCopy0x88EAGL_DYNAMIC_COPY

Property Documentation

accessType : AccessType

Returns the AccessType of the buffer.

Access functions:

Qt3DRender::QBuffer::AccessType accessType() const
void setAccessType(Qt3DRender::QBuffer::AccessType access)

Notifier signal:

void accessTypeChanged(Qt3DRender::QBuffer::AccessType access)

See also QBuffer::AccessType.

syncData : bool

Holds the syncData flag. When syncData is true, this will force data created by a Qt3DRender::QBufferDataGenerator to also be updated on the frontend Qt3DRender::QBuffer node. By default syncData is false.

Note: : This has no effect if the buffer's data was set directly using the data property.

Access functions:

bool isSyncData() const
void setSyncData(bool syncData)

Notifier signal:

void syncDataChanged(bool syncData)

usage : UsageType

Holds the buffer usage.

Access functions:

Qt3DRender::QBuffer::UsageType usage() const
void setUsage(Qt3DRender::QBuffer::UsageType usage)

Notifier signal:

void usageChanged(Qt3DRender::QBuffer::UsageType usage)

Member Function Documentation

QBuffer::QBuffer(Qt3DCore::QNode *parent = nullptr)

Constructs a new QBuffer with parent.

[signal] void QBuffer::dataAvailable()

This signal is emitted when data becomes available.

[signal] void QBuffer::dataChanged(const QByteArray &bytes)

This signal is emitted with bytes when data changes.

QByteArray QBuffer::data() const

Returns the data.

See also setData().

Qt3DRender::QBufferDataGeneratorPtr QBuffer::dataGenerator() const

Returns the buffer functor.

See also setDataGenerator().

void QBuffer::setData(const QByteArray &bytes)

Sets bytes as data.

See also data().

void QBuffer::setDataGenerator(const Qt3DRender::QBufferDataGeneratorPtr &functor)

Sets the buffer functor.

See also dataGenerator().

void QBuffer::updateData(int offset, const QByteArray &bytes)

Updates the data by replacing it with bytes at offset.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

Related Non-Members

typedef QBufferDataGeneratorPtr

© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.