Skip to main content
创建一个放置在特定堆中的资源。放置资源是可用的最轻量级资源对象,其创建和销毁速度最快。 您的应用程序可以通过在堆区域上重叠多个 Direct3D 放置资源和保留资源来重复利用视频内存。简单的内存重用模型(在备注中描述)用于阐明在任何给定时间哪一个重叠资源是有效的。为了最大化图形工具支持,简单模型中不支持数据继承;也不支持更细粒度的图块和子资源无效化。仅进行完整的重叠资源无效化。 需要 DirectX 12 Agility SDK 1.7 或更高版本。

语法

参数

pHeap
类型:ID3D12Heap *
指向 ID3D12Heap 接口的指针,该接口表示资源所在的堆。 HeapOffset
类型:UINT64
到资源的偏移量(以字节为单位)。HeapOffset 必须是资源对齐的倍数,HeapOffset 加上资源大小必须小于或等于堆大小。必须使用 GetResourceAllocationInfo 来了解纹理资源的大小。 pDesc
类型:const D3D12_RESOURCE_DESC1 *
指向 D3D12_RESOURCE_DESC 结构的指针,该结构描述资源。 InitialLayout
类型:D3D12_BARRIER_LAYOUT
纹理资源的初始布局;对于缓冲区为 D3D12_BARRIER_LAYOUT::D3D12_BARRIER_LAYOUT_UNDEFINED pOptimizedClearValue
类型: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
类型:UINT32
pCastableFormats 中的元素数量。 pCastableFormats
类型:DXGI_FORMAT *
此资源可强制转换到的 DXGI_FORMAT 结构的连续数组。 riid
类型:const IID &
资源接口的全局唯一标识符 (GUID)。这是一个输入参数。 可以使用 __uuidof 宏获取资源接口的 REFIIDGUID。例如,__uuidof(ID3D12Resource) 获取资源接口的 GUID。虽然 riid 最常见的是 ID3D12Resource 的 GUID,但它可以是任何接口的任何 GUID。如果资源对象不支持此 GUID 的接口,则创建将失败并返回 E_NOINTERFACE ppvResource
类型:void **
指向内存块的指针,该内存块接收指向资源的指针。ppvResource 可以为 NULL,以启用功能测试。当 ppvResource 为 NULL 时,不会创建对象,并且在 pResourceDesc 和其他参数有效时返回 S_FALSE。

返回值

类型:HRESULT 如果没有足够的内存来创建资源,此方法返回 E_OUTOFMEMORY。有关其他可能的返回值,请参阅 Direct3D 12 返回代码

备注

请参阅 ID3D12Device::CreatePlacedResource备注

要求

头文件: d3d12_xs.h
库: d3d12_xs.lib
支持的平台:XBOX Series 主机

另请参阅

CreateCommittedResource CreateReservedResource ID3D12Device10 共享堆
最后修改于 2026年8月24日