40 lines
992 B
Markdown
40 lines
992 B
Markdown
# D3D12Common::CreateTransitionBarrier
|
|
|
|
```cpp
|
|
inline D3D12_RESOURCE_BARRIER CreateTransitionBarrier(
|
|
ID3D12Resource* resource,
|
|
D3D12_RESOURCE_STATES stateBefore,
|
|
D3D12_RESOURCE_STATES stateAfter,
|
|
UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES
|
|
)
|
|
```
|
|
|
|
创建资源状态转换屏障,用于同步资源状态转换。
|
|
|
|
**参数:**
|
|
- `resource` - 目标资源指针
|
|
- `stateBefore` - 转换前的资源状态
|
|
- `stateAfter` - 转换后的资源状态
|
|
- `subresource` - 子资源索引,默认为所有子资源
|
|
|
|
**返回:** 配置好的 `D3D12_RESOURCE_BARRIER` 结构
|
|
|
|
**线程安全:** ✅(纯函数)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
ID3D12Resource* texture = ...;
|
|
D3D12_RESOURCE_BARRIER barrier = CreateTransitionBarrier(
|
|
texture,
|
|
D3D12_RESOURCE_STATE_RENDER_TARGET,
|
|
D3D12_RESOURCE_STATE_COMMON
|
|
);
|
|
cmdList->ResourceBarrier(1, &barrier);
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [D3D12Common 总览](common.md)
|
|
- [D3D12CommandList](../command-list/command-list.md)
|