语法
参数
pHeapProperties [in]类型:const D3D12_HEAP_PROPERTIES * 指向 D3D12_HEAP_PROPERTIES 结构的指针,该结构提供资源堆的属性。 HeapFlags [in]
类型:D3D12_HEAP_FLAGS 堆选项,作为 D3D12_HEAP_FLAGS 枚举常量的按位或组合。 pDesc [in]
类型:const D3D12_RESOURCE_DESC * 指向 D3D12_RESOURCE_DESC 结构的指针,该结构描述资源。 InitialResourceState [in]
类型:D3D12_RESOURCE_STATES 资源的初始状态,作为 D3D12_RESOURCE_STATES 枚举常量的按位或组合。 当您使用 D3D12_HEAP_TYPE_UPLOAD 堆创建资源时,必须将 InitialResourceState 设置为 D3D12_RESOURCE_STATE_GENERIC_READ。 当您使用 D3D12_HEAP_TYPE_READBACK 堆创建资源时,必须将 InitialResourceState 设置为 D3D12_RESOURCE_STATE_COPY_DEST。 pOptimizedClearValue [in, optional]
类型:const D3D12_CLEAR_VALUE * 指定 D3D12_CLEAR_VALUE 结构,该结构描述清除颜色的默认值。 pOptimizedClearValue 指定一个使清除操作最优的值。当创建的资源是带有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 或 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 标志的纹理时,应选择最常用于调用清除操作的值。您可以使用其他值调用清除操作,但这些操作不如在值与传递给资源创建时的值匹配的情况下高效。 当您使用 D3D12_RESOURCE_DIMENSION_BUFFER 时,必须将 pOptimizedClearValue 设置为
nullptr。
pProtectedSession [in, optional]类型:ID3D12ProtectedResourceSession * 一个可选指针,指向表示内容保护会话的对象。如果提供,则该会话表明该资源应受到保护。可以通过调用 ID3D12Device4::CreateProtectedResourceSession 获取 ID3D12ProtectedResourceSession。 riidResource [in]
类型:const IID & 对要在 ppvResource 中返回的资源接口的全局唯一标识符 (GUID) 的引用。 虽然 riidResource 最常见的是 ID3D12Resource 的 GUID,但它可以是任何接口的 GUID。如果资源对象不支持此 GUID 的接口,则创建将失败并返回 E_NOINTERFACE。 ppvResource [out, optional]
类型:void ** 一个可选指针,指向接收所创建资源对象的请求接口指针的内存块。 ppvResource 可以为
nullptr,以启用功能测试。当 ppvResource 为 nullptr 时,不会创建对象,并且在 pDesc 有效时返回 S_FALSE。
返回值
类型:HRESULT 如果函数成功,则返回 S_OK。否则,返回 HRESULT 错误代码。
有关其他可能的返回值,请参阅 Direct3D 12 返回代码。
备注
此方法创建一个资源和一个堆,使堆足以包含整个资源,并且资源被映射到堆。所创建的堆称为隐式堆,因为应用程序无法获取该堆对象。在释放资源的最后一个引用之前,您的应用程序必须确保 GPU 不再读取或写入此资源。 在方法将控制权返回给应用程序之前,隐式堆已驻留以供 GPU 访问。另请参阅驻留。 资源 GPU VA 映射无法更改。请参阅 ID3D12CommandQueue::UpdateTileMappings 和体积平铺资源。 多个线程可以同时调用此方法。要求
头文件: d3d12_xs.h库: d3d12_xs.lib
支持的平台:XBOX Series 主机
