33 lines
974 B
Markdown
33 lines
974 B
Markdown
# RHICommandList::TransitionBarrier
|
|
|
|
```cpp
|
|
virtual void TransitionBarrier(void* resource, ResourceStates stateBefore, ResourceStates stateAfter) = 0;
|
|
```
|
|
|
|
设置资源状态转换屏障,确保 GPU 资源在状态转换前完成所有操作。资源在 GPU 不同的使用方式之间切换时需要通过此方法进行状态转换。
|
|
|
|
**参数:**
|
|
- `resource` - 目标资源指针
|
|
- `stateBefore` - 转换前的资源状态(枚举值)
|
|
- `stateAfter` - 转换后的资源状态(枚举值)
|
|
|
|
**返回:** `void`
|
|
|
|
**异常:** 无
|
|
|
|
**线程安全:** ❌
|
|
|
|
**复杂度:** O(1)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
// 将纹理从渲染目标状态转换到着色器读取状态
|
|
cmdList->TransitionBarrier(texture, ResourceStates::RenderTarget, ResourceStates::ShaderResource);
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [RHICommandList 总览](command-list.md) - 返回类总览
|
|
- [CopyResource](copy-resource.md) - 复制资源
|
|
- [SetRenderTargets](set-render-targets.md) - 设置渲染目标 |