Class to emplace a memory barrier 更多...
| 頭: | #include <QMemoryBarrier> |
| qmake: | QT += 3drender |
| Since: | Qt 5.9 |
| 實例化: | MemoryBarrier |
| 繼承: | Qt3DRender::QFrameGraphNode |
| enum | 操作 { None, ElementArray, Uniform, TextureFetch, ..., All } |
| flags | Operations |
| QMemoryBarrier (Qt3DCore::QNode * parent = nullptr) | |
| ~QMemoryBarrier () | |
| 操作 | waitOperations () const |
| void | setWaitOperations (QMemoryBarrier::Operations operations ) |
| void | waitOperationsChanged (QMemoryBarrier::Operations barrierTypes ) |
| QMemoryBarrier (QMemoryBarrierPrivate & dd , Qt3DCore::QNode * parent = nullptr) |
Class to emplace a memory barrier
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 渲染,此頁給齣更多信息關於 內存模型
此枚舉類型描述要清零的緩衝類型。
| 常量 | 值 |
|---|---|
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 組閤。
Default constructs an instance of QMemoryBarrier.
[protected]
QMemoryBarrier::
QMemoryBarrier
(
QMemoryBarrierPrivate
&
dd
,
Qt3DCore::QNode
*
parent
= nullptr)
Copy constructor.
Destroys the instance of QMemoryBarrier.
[slot]
void
QMemoryBarrier::
setWaitOperations
(
QMemoryBarrier::Operations
operations
)
另請參閱 waitOperations ().
另請參閱 setWaitOperations ().
[signal]
void
QMemoryBarrier::
waitOperationsChanged
(
QMemoryBarrier::Operations
barrierTypes
)