Files
XCEngine/docs/api/rhi/d3d12/texture/initialize-from-existing.md
2026-03-20 02:35:45 +08:00

51 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) - 初始化深度模板纹理