QWaitFence 类

class Qt3DRender::QWaitFence

FrameGraphNode 用来在图形命令流中等待栅栏变信号。 更多...

头文件 #include <QWaitFence>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
继承 Qt3DRender::QFrameGraphNode

属性

公共函数

QVarianthandle() const
Qt3DRender::QWaitFence::HandleTypehandleType() const
voidsetHandle(QVariant handle)
voidsetHandleType(Qt3DRender::QWaitFence::HandleType type)
voidsetTimeout(quint64 timeout)
voidsetWaitOnCPU(bool waitOnCPU)
quint64timeout() const
boolwaitOnCPU() const

信号

voidhandleChanged(QVariant handle)
voidhandleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)
voidtimeoutChanged(quint64 timeoutChanged)
voidwaitOnCPUChanged(bool waitOnCPU)

详细描述

栅栏允许同步 GPU 和 CPU 工作负载。GPU 命令通常是非阻塞的。当发出时,命令会被插入到命令缓冲区中,稍后由 GPU 读取。在某些情况下,你只想在确定命令已被硬件执行后继续处理或发出特定命令。栅栏就是这样做的。当使用 Qt3D 的第三方引擎时,这尤为重要,Qt3D 应该只在我们知道其他引擎命令已完成修改资源时才访问共享资源。

QWaitFence 是一个 FrameGraph 节点,它将在后续命令插入到命令流之前强制等待它被标记为已通知。然后它可以与 QSetFence 一起使用,并包含用于配置它应该等待多长时间以及是否应在 CPU 端阻塞的属性。

注意:Qt 3D 在发出绘图调用之前上传 GPU 资源(纹理、着色器、缓冲区)。

属性文档

handle : QVariant

保留一个 QVariant 包装的底层栅栏句柄。

访问函数

QVarianthandle() const
voidsetHandle(QVariant handle)

通知信号

voidhandleChanged(QVariant handle)

handleType : HandleType

指定所使用的句柄类型。目前仅支持 OpenGL 队列标识符。

访问函数

Qt3DRender::QWaitFence::HandleTypehandleType() const
voidsetHandleType(Qt3DRender::QWaitFence::HandleType type)

通知信号

voidhandleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)

timeout : quint64

指定等待栅栏被通知的最大时间(纳秒)。

访问函数

quint64timeout() const
voidsetTimeout(quint64 timeout)

通知信号

voidtimeoutChanged(quint64 timeoutChanged)

waitOnCPU : bool

指定在等待栅栏被通知时 CPU 是否应该阻塞。默认情况下,这是 false。

访问函数

boolwaitOnCPU() const
voidsetWaitOnCPU(bool waitOnCPU)

通知信号

voidwaitOnCPUChanged(bool waitOnCPU)

© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 的条款许可的。Qt 及其相关标志是芬兰的 Qt 公司及其在全世界其他国家的商标。所有其他商标均为各自所有者的财产。