用於安放內存屏障的類。 更多...
| 頭: | #include <QMemoryBarrier> |
| qmake: | QT += 3drender |
| Since: | Qt 5.9 |
| 實例化: | MemoryBarrier |
| 繼承: | Qt3DRender::QFrameGraphNode |
該類在 Qt 5.9 引入。
| enum | 操作 { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All } |
| flags | Operations |
A Qt3DRender::QMemoryBarrier FrameGraph 節點用於在特定渲染時,安放特定內存屏障。這要求在 GPU 正確同步繪製和計算命令。
屏障定義由先前命令,發齣的內存操作次序。這意味著,若 command1 正操縱將緊跟 command2 之後用作頂點屬性緩衝的緩衝,那麼內存屏障應放置在 command1 之後並為頂點屬性緩衝設置閤適屏障類型。
當在 FrameGraph 分支下找到 QMemoryBarrier 節點時,屏障將在任何繪製 (或計算命令) 前實施,即使定義這些是在分支下更深處。
對於 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 組閤。