ID3D12Device::CreateHeap 方法 (d3d12.h)
创建可与已放置资源和保留资源一起使用的堆。
语法
HRESULT CreateHeap(
[in] const D3D12_HEAP_DESC *pDesc,
[in] REFIID riid,
[out, optional] void **ppvHeap
);
参数
[in] pDesc
类型: const D3D12_HEAP_DESC*
指向描述堆的常 量D3D12_HEAP_DESC 结构的指针。
[in] riid
类型: REFIID
对要在 ppvHeap 中返回的堆接口) 的 GUID (全局唯一标识符的引用。
虽然 riidResource 通常是 ID3D12Heap 的 GUID,但它可能是任何接口的 GUID。 如果资源对象不支持此 GUID 的接口,则创建将失败并 E_NOINTERFACE。
[out, optional] ppvHeap
类型: void**
指向内存块的可选指针,该内存块接收所请求的指向已创建堆对象的接口指针。
ppvHeap 可以是 nullptr
,以启用功能测试。 当 ppvHeap 为 nullptr
时,不会创建任何对象,并在 pDesc 有效时返回S_FALSE。
返回值
类型: HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
返回值 | 说明 |
---|---|
E_OUTOFMEMORY | 内存不足,无法创建堆。 |
有关其他可能的返回值,请参阅 Direct3D 12 返回代码 。
备注
CreateHeap 创建可与放置资源和保留资源一起使用的堆。
在释放堆上的最终引用之前,应用程序必须确保 GPU 不再读取或写入此堆。
放置的资源对象保存对创建它的堆的引用;但保留资源不保存对堆进行的每个映射的引用。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |