本页内容

Qt3DRender::QMemoryBarrier Class

class Qt3DRender::QMemoryBarrier

用于设置内存屏障的类。更多...

头文件: #include <qmemorybarrier.h>
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 渲染,本页面提供了有关内存模型的更多信息

成员类型文档

enum QMemoryBarrier::Operation
flags QMemoryBarrier::Operations

此枚举类型描述了待清空的缓冲区类型。

常量值
Qt3DRender::QMemoryBarrier::None0
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::All0xFFFFFFFF

Operations 类型是QFlags<Operation> 的 typedef 定义。它存储 Operation 值的按“或”运算组合。

© 2026 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.