ID3D12Device4::CreateHeap1 方法 (d3d12.h)
创建可用于放置资源和保留资源的堆(可选)(可选)。 另请参阅 ID3D12Device::CreateHeap。
语法
HRESULT CreateHeap1(
[in] const D3D12_HEAP_DESC *pDesc,
[in, optional] ID3D12ProtectedResourceSession *pProtectedSession,
[in] REFIID riid,
[out, optional] void **ppvHeap
);
参数
[in] pDesc
类型:const D3D12_HEAP_DESC*
指向描述堆的常量 D3D12_HEAP_DESC 结构的指针。
[in, optional] pProtectedSession
类型:ID3D12ProtectedResourceSession*
指向表示内容保护会话的对象的可选指针。 如果提供,则此会话指示应保护堆。 可以通过调用 ID3D12Device4::CreateProtectedResourceSession来获取 ID3D12ProtectedResourceSession。
无法使用 D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER 标志创建具有受保护会话的堆。
[in] riid
类型:REFIID
对堆接口的全局唯一标识符(
虽然 riidResource 通常是 ID3D12Heap的 GUID,但它可能是任何接口的 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE。
[out, optional] ppvHeap
类型:void**
指向内存块的可选指针,该块接收指向所创建的堆对象的请求接口指针。
ppvHeap 可以 nullptr
启用功能测试。
nullptr
ppvHeap 时,不会创建任何对象,pDesc 有效时返回 S_FALSE。
返回值
类型:HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
返回值 | 描述 |
---|---|
E_OUTOFMEMORY | 内存不足,无法创建堆。 |
有关其他可能的返回值,请参阅 Direct3D 12 返回代码。
言论
CreateHeap1 创建可用于放置资源和保留资源的堆。
在释放堆的最终引用之前,应用程序必须确保 GPU 不再读取或写入此堆。
放置的资源对象保存对创建它的堆的引用;但保留的资源不保留对对堆进行的每个映射的引用。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 内部版本 20348 |
支持的最低服务器 | Windows 10 内部版本 20348 |
目标平台 | 窗户 |
标头 | d3d12.h |
库 | d3d12.lib |
DLL | d3d12.dll |