用于安放内存屏障的类。 更多...
| 头: | #include <QMemoryBarrier> | 
| qmake: | QT += 3drender | 
| Since: | Qt 5.9 | 
| 实例化: | MemoryBarrier | 
| 继承: | Qt3DRender::QFrameGraphNode | 
该类在 Qt 5.9 引入。
| enum | Operation { 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 组合。