Qt3DRender::QSetFence Class
class Qt3DRender::QSetFenceFrameGraphNode 用于在图形命令流中插入一个栅栏。更多...
| 标题: | #include <qsetfence.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| 继承自: | Qt3DRender::QFrameGraphNode |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议不要在新代码中使用它。
属性
- handle : QVariant
- handleType : HandleType
公共函数
| QVariant | handle() const |
| Qt3DRender::QSetFence::HandleType | handleType() const |
信号
| void | handleChanged(QVariant handle) |
| void | handleTypeChanged(Qt3DRender::QSetFence::HandleType handleType) |
详细说明
栅栏(Fence)可用于同步 GPU 和 CPU 的工作负载。GPU 命令通常是非阻塞的。发出命令后,这些命令会被插入到命令缓冲区中,稍后由 GPU 读取。在某些情况下,您可能希望在确信某条命令已被硬件执行后,才继续处理或发出特定命令。 栅栏(Fence)正是实现这一目标的手段。这在使用第三方引擎与 Qt3D 配合时尤为重要,Qt3D 仅应在确认其他引擎的命令已完成对资源的修改后,才访问共享资源。
QSetFence 是一个 FrameGraph 节点,用于将栅栏插入命令流中。随后,它可与 `QWaitFence ` 配合使用,或通过提取底层句柄来使用。
一旦渲染器创建了底层栅栏资源,handle 属性就会被更新。 只要该句号处于未触发状态,句号就保持有效。一旦进入已触发状态,它将被销毁并生成一个新的句号。这意味着,根据句号被触发所需的时间长短,同一个句号可能在多个帧中被重复使用。
属性文档
[read-only] handle : QVariant
保存一个由QVariant 包装的底层栅栏句柄。
访问函数:
| QVariant | handle() const |
通知器信号:
| void | handleChanged(QVariant handle) |
[read-only] handleType : HandleType
指定所使用的句柄类型。目前仅支持 OpenGL Fence ID。
访问函数:
| Qt3DRender::QSetFence::HandleType | handleType() const |
通知器信号:
| void | handleTypeChanged(Qt3DRender::QSetFence::HandleType handleType) |
© 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.