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.
© 2019 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.