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 | BufferType { VertexBuffer, IndexBuffer, PixelPackBuffer, PixelUnpackBuffer, ..., DrawIndirectBuffer } | 
| enum | UsageType { StreamDraw, StreamRead, StreamCopy, StaticDraw, ..., DynamicCopy } | 
Properties
- accessType : AccessType
 - syncData : bool
 - type : BufferType
 - usage : UsageType
 
- 3 properties inherited from Qt3DCore::QNode
 - 1 property inherited from QObject
 
Public Functions
| QBuffer(BufferType ty = QBuffer::VertexBuffer, Qt3DCore::QNode *parent = nullptr) | |
| AccessType | accessType() const | 
| QByteArray | data() const | 
| QBufferDataGeneratorPtr | dataGenerator() const | 
| bool | isSyncData() const | 
| void | setData(const QByteArray &bytes) | 
| void | setDataGenerator(const QBufferDataGeneratorPtr &functor) | 
| BufferType | type() const | 
| void | updateData(int offset, const QByteArray &bytes) | 
| UsageType | usage() const | 
- 11 public functions inherited from Qt3DCore::QNode
 - 32 public functions inherited from QObject
 
Public Slots
| void | setAccessType(AccessType access) | 
| void | setSyncData(bool syncData) | 
| void | setType(BufferType type) | 
| void | setUsage(UsageType usage) | 
- 3 public slots inherited from Qt3DCore::QNode
 - 1 public slot inherited from QObject
 
Signals
| void | accessTypeChanged(AccessType access) | 
| void | dataAvailable() | 
| void | dataChanged(const QByteArray &bytes) | 
| void | syncDataChanged(bool syncData) | 
| void | typeChanged(BufferType type) | 
| void | usageChanged(UsageType usage) | 
- 4 signals inherited from Qt3DCore::QNode
 - 2 signals inherited from QObject
 
Related Non-Members
| typedef | QBufferDataGeneratorPtr | 
Additional Inherited Members
- 11 static public members inherited from QObject
 - 2 protected functions inherited from Qt3DCore::QNode
 - 9 protected functions inherited from QObject
 
Detailed Description
Provides a data store for raw data to later be used as vertices or uniforms.
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
enum QBuffer::BufferType
The type of the buffer.
| Constant | Value | Description | 
|---|---|---|
Qt3DRender::QBuffer::VertexBuffer | 
0x8892 | 
GL_ARRAY_BUFFER | 
Qt3DRender::QBuffer::IndexBuffer | 
0x8893 | 
GL_ELEMENT_ARRAY_BUFFER | 
Qt3DRender::QBuffer::PixelPackBuffer | 
0x88EB | 
GL_PIXEL_PACK_BUFFER | 
Qt3DRender::QBuffer::PixelUnpackBuffer | 
0x88EC | 
GL_PIXEL_UNPACK_BUFFER | 
Qt3DRender::QBuffer::UniformBuffer | 
0x8A11 | 
GL_UNIFORM_BUFFER | 
Qt3DRender::QBuffer::ShaderStorageBuffer | 
0x90D2 | 
GL_SHADER_STORAGE_BUFFER | 
Qt3DRender::QBuffer::DrawIndirectBuffer | 
0x8F3F | 
GL_DRAW_INDIRECT_BUFFER | 
enum QBuffer::UsageType
The type of the usage.
| Constant | Value | Description | 
|---|---|---|
Qt3DRender::QBuffer::StreamDraw | 
0x88E0 | 
GL_STREAM_DRAW | 
Qt3DRender::QBuffer::StreamRead | 
0x88E1 | 
GL_STREAM_READ | 
Qt3DRender::QBuffer::StreamCopy | 
0x88E2 | 
GL_STREAM_COPY | 
Qt3DRender::QBuffer::StaticDraw | 
0x88E4 | 
GL_STATIC_DRAW | 
Qt3DRender::QBuffer::StaticRead | 
0x88E5 | 
GL_STATIC_READ | 
Qt3DRender::QBuffer::StaticCopy | 
0x88E6 | 
GL_STATIC_COPY | 
Qt3DRender::QBuffer::DynamicDraw | 
0x88E8 | 
GL_DYNAMIC_DRAW | 
Qt3DRender::QBuffer::DynamicRead | 
0x88E9 | 
GL_DYNAMIC_READ | 
Qt3DRender::QBuffer::DynamicCopy | 
0x88EA | 
GL_DYNAMIC_COPY | 
Property Documentation
accessType : AccessType
Access functions:
| AccessType | accessType() const | 
| void | setAccessType(AccessType access) | 
Notifier signal:
| void | accessTypeChanged(AccessType access) | 
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) | 
type : BufferType
Holds the buffer type.
Access functions:
| BufferType | type() const | 
| void | setType(BufferType type) | 
Notifier signal:
| void | typeChanged(BufferType type) | 
usage : UsageType
Holds the buffer usage.
Access functions:
| UsageType | usage() const | 
| void | setUsage(UsageType usage) | 
Notifier signal:
| void | usageChanged(UsageType usage) | 
Member Function Documentation
QBuffer::QBuffer(BufferType ty = QBuffer::VertexBuffer, Qt3DCore::QNode *parent = nullptr)
Default constructs an instance of QBuffer.
QByteArray QBuffer::data() const
Returns the data.
See also setData().
[signal] void QBuffer::dataAvailable()
   
[signal] void QBuffer::dataChanged(const QByteArray &bytes)
 This signal is emitted with bytes when data changes.
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 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.
Related Non-Members
typedef Qt3DRender::QBufferDataGeneratorPtr
    © The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
    https://doc.qt.io/qt-5.9/qt3drender-qbuffer.html