# D3D12Texture::InitializeFromExisting ## 函数签名 ```cpp bool InitializeFromExisting(ID3D12Resource* resource); ``` ## 中文描述 从已存在的 D3D12 纹理资源初始化纹理包装类,不分配新资源。此方法用于包装外部创建的纹理资源,例如从文件系统加载的纹理或与其他 API 共享的资源。 ## 参数 | 参数 | 类型 | 描述 | |------|------|------| | `resource` | `ID3D12Resource*` | 已存在的 D3D12 纹理资源指针,不能为 nullptr | ## 返回值 `bool` - 初始化是否成功。如果 `resource` 为 nullptr,返回 false。 ## 线程安全 非线程安全,请确保在单线程环境中调用。 ## 复杂度 O(1) ## 示例 ```cpp ComPtr 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) - 初始化深度模板纹理