48 lines
776 B
Markdown
48 lines
776 B
Markdown
# OpenGLFence::Reset
|
|
|
|
```cpp
|
|
void Reset();
|
|
```
|
|
|
|
重置栅栏为 unsignaled 状态。
|
|
|
|
## 详细描述
|
|
|
|
此方法执行以下操作:
|
|
|
|
1. 如果存在 `m_sync`,调用 `glDeleteSync()` 删除 OpenGL 同步对象
|
|
2. 将 `m_sync` 置为 `nullptr`
|
|
3. 将 `m_signaled` 设置为 `false`
|
|
|
|
重置后,栅栏的 `IsSignaled()` 将返回 `false`,可重新用于新的同步操作。
|
|
|
|
## 参数
|
|
|
|
无
|
|
|
|
## 返回值
|
|
|
|
无
|
|
|
|
## 示例
|
|
|
|
```cpp
|
|
OpenGLFence fence;
|
|
fence.Initialize(false);
|
|
fence.Signal();
|
|
|
|
// 使用后重置
|
|
fence.Reset();
|
|
|
|
// 此时 IsSignaled() 返回 false
|
|
if (!fence.IsSignaled()) {
|
|
// 可以重新使用
|
|
}
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [OpenGLFence 总览](fence.md) - 返回类总览
|
|
- [Signal](signal.md) - 信号栅栏
|
|
- [IsSignaled](is-signaled.md) - 检查状态
|