创建一个保留的资源,但尚未映射到堆中的任何页面。
需要 DirectX 12 Agility SDK 1.7 或更高版本。
语法
HRESULT CreateReservedResource2(
       const D3D12_RESOURCE_DESC      *pDesc,
       D3D12_BARRIER_LAYOUT           InitialLayout,
       const D3D12_CLEAR_VALUE        *pOptimizedClearValue,
       ID3D12ProtectedResourceSession *pProtectedSession,
       UINT32                         NumCastableFormats,
       const DXGI_FORMAT              *pCastableFormats,
  [in] REFIID                         riid,
       void                           **ppvResource
);
参数
pDesc
类型:const D3D12_RESOURCE_DESC*
指向描述资源的 D3D12_RESOURCE_DESC 结构的指针。
InitialLayout
纹理资源的初始布局;D3D12_BARRIER_LAYOUT::D 3D12_BARRIER_LAYOUT_UNDEFINED 缓冲区。
pOptimizedClearValue
类型:常 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
类型:ID3D12ProtectedResourceSession*
指向表示内容保护会话的对象的可选指针。 如果提供,则此会话指示应保护资源。 可以通过调用 ID3D12Device4::CreateProtectedResourceSession来获取 ID3D12ProtectedResourceSession。
NumCastableFormats
pCastableFormats中的元素数。
pCastableFormats
此资源可以强制转换为的 DXGI_FORMAT 结构的连续数组。
[in] riid
类型:REFIID
对资源接口的全局唯一标识符(GUID)的引用,以 ppvResource返回。 请参阅 备注。
虽然 riidResource 通常是 ID3D12Resource的 GUID,但它可能是任何接口 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE。
ppvResource
类型:void**
指向内存块的可选指针,该块接收指向所创建资源对象的请求接口指针。
              ppvResource 可以 nullptr启用功能测试。 当 
返回值
类型:HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
| 返回值 | 描述 | 
|---|---|
| E_OUTOFMEMORY | 内存不足,无法创建资源。 | 
有关其他可能的返回值,请参阅 Direct3D 12 返回代码。
言论
有关 ID3D12Device.CreateReservedResource,请参阅 备注。
要求
| 要求 | 价值 | 
|---|---|
| 目标平台 | 窗户 | 
| 标头 | d3d12.h | 
| 库 | D3d12.lib | 
| DLL | D3d12.dll |