1.0 KiB
1.0 KiB
OpenGLFence::Signal
void Signal() override;
void Signal(uint64_t value) override;
将栅栏设置为 signaled 状态,通知等待的线程操作完成。
详细描述
Signal() 执行以下操作:
- 调用
glFlush()确保所有挂起的 OpenGL 命令已发送到 GPU - 增加
m_fenceValue(无参版本)或设置为指定值 - 设置
m_signaled = true - 如果
m_sync已存在,先删除旧对象 - 调用
glFenceSync()创建新的GLsync对象
参数
| 重载 | 参数 | 类型 | 描述 |
|---|---|---|---|
Signal() |
无 | - | 将栅栏值增加 1 |
Signal(uint64_t value) |
value |
uint64_t |
设置栅栏为指定值 |
返回值
无
示例
OpenGLFence fence;
fence.Initialize(false);
// 无参版本:栅栏值 +1
fence.Signal();
// 带值版本:设置指定栅栏值
fence.Signal(5);
相关文档
- OpenGLFence 总览 - 返回类总览
- Wait - 等待栅栏
- Initialize - 初始化