QWaitFence 类
class Qt3DRender::QWaitFenceFrameGraphNode 用来在图形命令流中等待栅栏变信号。 更多...
头文件 | #include <QWaitFence> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
继承 | Qt3DRender::QFrameGraphNode |
属性
- handle : QVariant
- handleType : HandleType
- timeout : quint64
- waitOnCPU : bool
公共函数
QVariant | handle() const |
Qt3DRender::QWaitFence::HandleType | handleType() const |
void | setHandle(QVariant handle) |
void | setHandleType(Qt3DRender::QWaitFence::HandleType type) |
void | setTimeout(quint64 timeout) |
void | setWaitOnCPU(bool waitOnCPU) |
quint64 | timeout() const |
bool | waitOnCPU() const |
信号
void | handleChanged(QVariant handle) |
void | handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType) |
void | timeoutChanged(quint64 timeoutChanged) |
void | waitOnCPUChanged(bool waitOnCPU) |
详细描述
栅栏允许同步 GPU 和 CPU 工作负载。GPU 命令通常是非阻塞的。当发出时,命令会被插入到命令缓冲区中,稍后由 GPU 读取。在某些情况下,你只想在确定命令已被硬件执行后继续处理或发出特定命令。栅栏就是这样做的。当使用 Qt3D 的第三方引擎时,这尤为重要,Qt3D 应该只在我们知道其他引擎命令已完成修改资源时才访问共享资源。
QWaitFence 是一个 FrameGraph 节点,它将在后续命令插入到命令流之前强制等待它被标记为已通知。然后它可以与 QSetFence 一起使用,并包含用于配置它应该等待多长时间以及是否应在 CPU 端阻塞的属性。
注意:Qt 3D 在发出绘图调用之前上传 GPU 资源(纹理、着色器、缓冲区)。
属性文档
handle : QVariant
保留一个 QVariant 包装的底层栅栏句柄。
访问函数
QVariant | handle() const |
void | setHandle(QVariant handle) |
通知信号
void | handleChanged(QVariant handle) |
handleType : HandleType
指定所使用的句柄类型。目前仅支持 OpenGL 队列标识符。
访问函数
Qt3DRender::QWaitFence::HandleType | handleType() const |
void | setHandleType(Qt3DRender::QWaitFence::HandleType type) |
通知信号
void | handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType) |
timeout : quint64
指定等待栅栏被通知的最大时间(纳秒)。
访问函数
quint64 | timeout() const |
void | setTimeout(quint64 timeout) |
通知信号
void | timeoutChanged(quint64 timeoutChanged) |
waitOnCPU : bool
指定在等待栅栏被通知时 CPU 是否应该阻塞。默认情况下,这是 false。
访问函数
bool | waitOnCPU() const |
void | setWaitOnCPU(bool waitOnCPU) |
通知信号
void | waitOnCPUChanged(bool waitOnCPU) |
© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 的条款许可的。Qt 及其相关标志是芬兰的 Qt 公司及其在全世界其他国家的商标。所有其他商标均为各自所有者的财产。