ID3D12Device10::CreatePlacedResource2 方法 (d3d12.h)

创建放置在特定堆中的资源。 放置的资源是可用的最轻量资源对象,是创建和销毁速度最快的资源对象。

应用程序可以通过在堆区域中重叠多个 Direct3D 放置和保留的资源来重复使用视频内存。 简单的内存重用模型(备注中所述)存在,以阐明哪些重叠资源在任何给定时间都有效。 若要最大化图形工具支持,不支持简单的模型数据继承;不支持细化磁贴和子资源无效。 仅发生完全重叠的资源无效。

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

语法

HRESULT CreatePlacedResource2(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_BARRIER_LAYOUT       InitialLayout,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  UINT32                     NumCastableFormats,
  const DXGI_FORMAT          *pCastableFormats,
  REFIID                     riid,
  void                       **ppvResource
);

参数

pHeap

类型:[in] ID3D12Heap*

指向 ID3D12Heap 接口的指针,该接口表示在其中放置资源的堆。

HeapOffset

类型:UINT64

资源的偏移量(以字节为单位)。 HeapOffset 必须是资源的多个对齐方式,HeapOffset 加上资源大小必须小于或等于堆大小。 GetResourceAllocationInfo 必须用于了解纹理资源的大小。

pDesc

类型:[in] const D3D12_RESOURCE_DESC*

指向描述资源的 D3D12_RESOURCE_DESC 结构的指针。

InitialLayout

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

pOptimizedClearValue

类型:[in, 可选] const D3D12_CLEAR_VALUE*

指定描述明色默认值的 D3D12_CLEAR_VALUE

pOptimizedClearValue 指定一个最优化清除操作的值。 当创建的资源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 标志的纹理时,应用程序应选择最常调用清除操作的值。

可以使用其他值调用清除操作,但这些操作将不像值与传递到资源创建的值匹配时那样高效。

D3D12_RESOURCE_DIMENSION_BUFFER一起使用时,pOptimizedClearValue 必须为 NULL。

NumCastableFormats

pCastableFormats中的元素数。

pCastableFormats

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

riid

类型:REFIID

资源接口的全局唯一标识符(GUID)。 这是一个输入参数。

可以使用 __uuidof 宏获取资源的接口 REFIIDGUID。 例如,__uuidof(ID3D12Resource) 获取资源接口的 GUID。 尽管 riid 通常是 ID3D12Resource的 GUID,但对于任何接口,它可能是任何 GUID。 如果资源对象不支持此 GUID的接口,则创建失败并 E_NOINTERFACE

ppvResource

类型:[out, optional] void**

指向接收指向资源的指针的内存块的指针。 ppvResource 可以为 NULL,以启用功能测试。 当 ppvResource 为 NULL 时,不会创建任何对象,并且当 pResourceDesc 和其他参数有效时,将返回S_FALSE。

返回值

类型:HRESULT

如果内存不足而无法创建资源,此方法将返回 E_OUTOFMEMORY。 有关其他可能的返回值,请参阅 Direct3D 12 返回代码

言论

有关 ID3D12Device::CreatePlacedResource,请参阅 备注

要求

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

另请参阅

CreateCommittedResource

CreateReservedResource

ID3D12Device10

共享堆