Files
XCEngine/docs/api/rhi/d3d12/texture/initialize-from-existing.md

51 lines
1.3 KiB
Markdown
Raw Normal View History

2026-03-20 02:35:45 +08:00
# D3D12Texture::InitializeFromExisting
## 函数签名
```cpp
bool InitializeFromExisting(ID3D12Resource* resource);
```
## 中文描述
从已存在的 D3D12 纹理资源初始化纹理包装类,不分配新资源。此方法用于包装外部创建的纹理资源,例如从文件系统加载的纹理或与其他 API 共享的资源。
## 参数
| 参数 | 类型 | 描述 |
|------|------|------|
| `resource` | `ID3D12Resource*` | 已存在的 D3D12 纹理资源指针,不能为 nullptr |
## 返回值
`bool` - 初始化是否成功。如果 `resource` 为 nullptr返回 false。
## 线程安全
非线程安全,请确保在单线程环境中调用。
## 复杂度
O(1)
## 示例
```cpp
ComPtr<ID3D12Resource> externalResource;
// 外部创建或获取的 D3D12 资源
device->CreateReservedResource(&desc, initialState, nullptr, IID_PPV_ARGS(&externalResource));
D3D12Texture texture;
if (texture.InitializeFromExisting(externalResource.Get())) {
// 成功包装外部资源
// 注意:外部资源的管理责任保持不变
}
```
## 相关文档
- [D3D12Texture](texture.md) - 类总览
- [Initialize](initialize.md) - 创建新纹理
- [InitializeFromData](initialize-from-data.md) - 从数据初始化
- [InitializeDepthStencil](initialize-depth-stencil.md) - 初始化深度模板纹理