ID3D12Device10::CreateCommittedResource3 方法 (d3d12.h)

创建具有初始布局而不是初始状态的已提交资源。

需要 DirectX 12 Agility SDK 1.7 或更高版本。

语法

HRESULT CreateCommittedResource3(
  const D3D12_HEAP_PROPERTIES    *pHeapProperties,
  D3D12_HEAP_FLAGS               HeapFlags,
  const D3D12_RESOURCE_DESC1     *pDesc,
  D3D12_BARRIER_LAYOUT           InitialLayout,
  const D3D12_CLEAR_VALUE        *pOptimizedClearValue,
  ID3D12ProtectedResourceSession *pProtectedSession,
  UINT32                         NumCastableFormats,
  const DXGI_FORMAT              *pCastableFormats,
  REFIID                         riidResource,
  void                           **ppvResource
);

参数

pHeapProperties

类型:_In_ const D3D12_HEAP_PROPERTIES*

指向提供资源堆属性的 D3D12_HEAP_PROPERTIES 结构的指针。

HeapFlags

类型:D3D12_HEAP_FLAGS

堆选项,作为 D3D12_HEAP_FLAGS 枚举常量的按位 OR 组合。

pDesc

类型:D3D12_RESOURCE_DESC1*

指向描述资源(包括 mip 区域)的 D3D12_RESOURCE_DESC1 结构的指针。

InitialLayout

纹理资源的初始布局;D3D12_BARRIER_LAYOUT::D 3D12_BARRIER_LAYOUT_UNDEFINED 缓冲区。

pOptimizedClearValue

类型:D3D12_CLEAR_VALUE*

指定描述明色默认值的 D3D12_CLEAR_VALUE 结构。

pOptimizedClearValue 指定一个最优化清除操作的值。 当创建的资源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 标志的纹理时,应选择最常调用清除操作的值。 可以使用其他值调用清除操作,但这些操作不会像值与传递到资源创建的值匹配时那样高效。

使用 D3D12_RESOURCE_DIMENSION_BUFFER时,必须将 pOptimizedClearValue 设置为 nullptr

pProtectedSession

类型:ID3D12ProtectedResourceSession*

指向表示内容保护会话的对象的可选指针。 如果提供,则此会话指示应保护资源。 可以通过调用 ID3D12Device4::CreateProtectedResourceSession来获取 ID3D12ProtectedResourceSession

NumCastableFormats

pCastableFormats中的元素数。

pCastableFormats

此资源可以强制转换为的 DXGI_FORMAT 结构的连续数组。

riidResource

类型:REFIID

对资源接口的全局唯一标识符(GUID)的引用,以 ppvResource返回。

虽然 riidResource 通常是 ID3D12ResourceGUID,但它可能是任何接口 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE

ppvResource

类型:void**

指向内存块的可选指针,该块接收指向所创建资源对象的请求接口指针。

ppvResource 可以 nullptr启用功能测试。 当 ppvResource 时,不会创建任何对象,并且当 pDesc 有效时,将返回 S_FALSE

返回值

类型:HRESULT

如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码

返回值 描述
E_OUTOFMEMORY 内存不足,无法创建资源。

有关其他可能的返回值,请参阅 Direct3D 12 返回代码

要求

要求 价值
目标平台 窗户
标头 d3d12.h
D3d12.lib
DLL D3d12.dll

另请参阅

ID3D12Device10