Files
XCEngine/docs/api/rhi/opengl/fence/signal.md
2026-03-20 02:35:45 +08:00

1.0 KiB

OpenGLFence::Signal

void Signal() override;
void Signal(uint64_t value) override;

将栅栏设置为 signaled 状态,通知等待的线程操作完成。

详细描述

Signal() 执行以下操作:

  1. 调用 glFlush() 确保所有挂起的 OpenGL 命令已发送到 GPU
  2. 增加 m_fenceValue(无参版本)或设置为指定值
  3. 设置 m_signaled = true
  4. 如果 m_sync 已存在,先删除旧对象
  5. 调用 glFenceSync() 创建新的 GLsync 对象

参数

重载 参数 类型 描述
Signal() - 将栅栏值增加 1
Signal(uint64_t value) value uint64_t 设置栅栏为指定值

返回值

示例

OpenGLFence fence;
fence.Initialize(false);

// 无参版本:栅栏值 +1
fence.Signal();

// 带值版本:设置指定栅栏值
fence.Signal(5);

相关文档