1.3 KiB
1.3 KiB
OpenGLFence::GetStatus
FenceStatus GetStatus() const;
获取栅栏的当前状态。
详细描述
此方法查询 OpenGL 同步对象的实际状态:
- 如果
m_sync为nullptr,返回软件层面的m_signaled状态 - 如果
m_sync存在,调用glGetSynciv(sync, GL_SYNC_STATUS, ...)查询 OpenGL 状态 - 根据
GL_SYNC_STATUS返回FenceStatus::Signaled或FenceStatus::Unsignaled
与 IsSignaled() 的区别:
GetStatus():查询 OpenGL 同步对象状态,更准确但有 GPU 开销IsSignaled():返回软件标志,快速但不反映 GPU 实际状态
参数
无
返回值
| 类型 | 描述 |
|---|---|
FenceStatus |
栅栏状态,值为以下之一: |
FenceStatus::Signaled - 栅栏已signaled,GPU 操作已完成 |
|
FenceStatus::Unsignaled - 栅栏未signaled,GPU 操作未完成 |
|
FenceStatus::Error - 此实现不会返回此值(错误处理在底层) |
示例
OpenGLFence fence;
fence.Initialize(false);
fence.Signal();
FenceStatus status = fence.GetStatus();
if (status == FenceStatus::Signaled) {
// GPU 操作已完成
}
相关文档
- OpenGLFence 总览 - 返回类总览
- IsSignaled - 快速状态检查