Qt3DRender::QMemoryBarrier Class
class Qt3DRender::QMemoryBarrier用于放置内存栅栏的类。更多
头文件: | #include <QMemoryBarrier> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
在 QML 中: | MemoryBarrier |
继承: | Qt3DRender::QFrameGraphNode |
状态: | 已废弃 |
公共类型
enum | Operation { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All } |
flags | Operations |
详细说明
Qt3DRender::QMemoryBarrier FrameGraph 节点用于在渲染的特定时间设置特定的内存障碍。这是在 GPU 上正确同步绘图和计算命令所必需的。
该障碍定义了前一条命令所发出的内存操作的顺序。这意味着,如果命令 1 正在操作一个缓冲区,而该缓冲区将在随后的命令 2 中用作顶点属性缓冲区,那么内存屏障应放在命令 1 之后,并为顶点属性缓冲区设置适当的屏障类型。
当在 FrameGraph 分支中发现 QMemoryBarrier 节点时,该屏障将在任何绘制或计算命令之前执行,即使这些命令是在分支的更深处定义的。
关于 OpenGL 渲染,本页提供了有关内存模型的更多信息
成员类型文档
枚举 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 类型是QFlags<Operation> 的类型定义。它存储操作值的 OR 组合。
© 2025 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.