QMemoryBarrier 类

( Qt3DRender::QMemoryBarrier )

用于安放内存屏障的类。 更多...

头: #include <QMemoryBarrier>
qmake: QT += 3drender
Since: Qt 5.9
实例化: MemoryBarrier
继承: Qt3DRender::QFrameGraphNode

公共类型

enum Operation { None, ElementArray, Uniform, TextureFetch, ..., All }
flags Operations

公共函数

QMemoryBarrier (Qt3DCore::QNode * parent = nullptr)
virtual ~QMemoryBarrier ()
Qt3DRender::QMemoryBarrier::Operations waitOperations () const

公共槽

void setWaitOperations (QMemoryBarrier::Operations operations )

信号

void waitOperationsChanged (QMemoryBarrier::Operations barrierTypes )

静态公共成员

const QMetaObject staticMetaObject

保护函数

QMemoryBarrier (Qt3DRender::QMemoryBarrierPrivate & dd , Qt3DCore::QNode * parent = nullptr)

额外继承成员

详细描述

用于安放内存屏障的类。

A Qt3DRender::QMemoryBarrier FrameGraph 节点用于在特定渲染时,安放特定内存屏障。这要求在 GPU 正确同步绘制和计算命令。

屏障定义由先前命令,发出的内存操作次序。这意味着,若 command1 正操纵将紧跟 command2 之后用作顶点属性缓冲的缓冲,那么内存屏障应放置在 command1 之后并为顶点属性缓冲设置合适屏障类型。

QMemoryBarrier node is found in a FrameGraph branch, the barrier will be enforced prior to any draw or compute command even if these are defined deeper in the branch.

对于 OpenGL 渲染,此页给出更多信息关于 内存模型

成员类型文档编制

enum QMemoryBarrier:: Operation
flags QMemoryBarrier:: Operations

此枚举类型描述要清零的缓冲类型。

常量
Qt3DRender::QMemoryBarrier::None 0
Qt3DRender::QMemoryBarrier::ElementArray (1 << 1)
Qt3DRender::QMemoryBarrier::Uniform (1 << 2)
Qt3DRender::QMemoryBarrier::TextureFetch (1 << 3)
Qt3DRender::QMemoryBarrier::ShaderImageAccess (1 << 4)
Qt3DRender::QMemoryBarrier::Command (1 << 5)
Qt3DRender::QMemoryBarrier::PixelBuffer (1 << 6)
Qt3DRender::QMemoryBarrier::TextureUpdate (1 << 7)
Qt3DRender::QMemoryBarrier::BufferUpdate (1 << 8)
Qt3DRender::QMemoryBarrier::FrameBuffer (1 << 9)
Qt3DRender::QMemoryBarrier::TransformFeedback (1 << 10)
Qt3DRender::QMemoryBarrier::AtomicCounter (1 << 11)
Qt3DRender::QMemoryBarrier::ShaderStorage (1 << 12)
Qt3DRender::QMemoryBarrier::QueryBuffer (1 << 13)
Qt3DRender::QMemoryBarrier::VertexAttributeArray (1 << 0)
Qt3DRender::QMemoryBarrier::All 0xFFFFFFFF

Operations 类型是 typedef 对于 QFlags <Operation>。它存储 Operation 值的 OR 组合。

成员函数文档编制

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

Default constructs an instance of QMemoryBarrier.

[protected] QMemoryBarrier:: QMemoryBarrier ( Qt3DRender::QMemoryBarrierPrivate & dd , Qt3DCore::QNode * parent = nullptr)

Default constructs an instance of QMemoryBarrier.

[虚拟] QMemoryBarrier:: ~QMemoryBarrier ()

Destroys the instance of QMemoryBarrier. The destructor is virtual.

[slot] void QMemoryBarrier:: setWaitOperations ( QMemoryBarrier::Operations operations )

另请参阅 waitOperations ().

Qt3DRender::QMemoryBarrier::Operations QMemoryBarrier:: waitOperations () const

另请参阅 setWaitOperations ().

[signal] void QMemoryBarrier:: waitOperationsChanged ( QMemoryBarrier::Operations barrierTypes )