ID3D12Device8::GetCopyableFootprints1 方法 (d3d12.h)

获取可复制的资源布局。 帮助应用在上传堆中子分配空间时填写 D3D12_PLACED_SUBRESOURCE_FOOTPRINTD3D12_SUBRESOURCE_FOOTPRINT

Syntax

void GetCopyableFootprints1(
  const D3D12_RESOURCE_DESC1         *pResourceDesc,
  UINT                               FirstSubresource,
  UINT                               NumSubresources,
  UINT64                             BaseOffset,
  D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
  UINT                               *pNumRows,
  UINT64                             *pRowSizeInBytes,
  UINT64                             *pTotalBytes
);

Parameters

pResourceDesc

类型: const D3D12_RESOURCE_DESC1*

资源的说明,作为指向 D3D12_RESOURCE_DESC1 结构的指针。

FirstSubresource

类型:[in] UINT

资源中第一个子资源的索引。 有效值的范围为 0 到 D3D12_REQ_SUBRESOURCES。

NumSubresources

类型:[in] UINT

资源中的子资源数。 有效值的范围为 0 到 (D3D12_REQ_SUBRESOURCES - FirstSubresource)。

BaseOffset

类型: UINT64

添加到 pLayouts 数组中每个D3D12_PLACED_SUBRESOURCE_FOOTPRINT的偏移量(以字节为单位)。

pLayouts

类型:[out,可选] D3D12_PLACED_SUBRESOURCE_FOOTPRINT*

指向D3D12_PLACED_SUBRESOURCE_FOOTPRINT结构的数组(长度为 NumSubresources)的指针,用于填充每个子资源的说明和位置。

pNumRows

类型:[out,可选] UINT*

指向整数变量的数组(长度 为 NumSubresources)的指针,用于填充每个子资源的行数。

pRowSizeInBytes

类型:[out,可选] UINT64*

指向整数变量长度为 NumSubresources 的数组(长度为 NumSubresources)的指针,每个条目都用每一行的未填充大小(以字节为单位)填充每个子资源。

例如,如果 Texture2D 资源宽度为 4,并且每个像素的字节数为 4, 则 pRowSizeInBytes 返回 128。

pRowSizeInBytes 不应与 行间距混淆,因为检查 pLayouts 并从中获取行间距会为你提供 256,因为它与D3D12_TEXTURE_DATA_PITCH_ALIGNMENT对齐。

pTotalBytes

类型:[out,可选] UINT64*

指向整数变量的指针,以字节为单位填充总大小。 如果 pResourceDesc 无效,则 pTotalBytes 的值设置为 UINT64_MAX

返回值

None

Remarks

有关备注和示例,请参阅 ID3D12Device::GetCopyableFootprints

Requirements

Requirement Value
最低支持的客户端 Windows 10 内部版本 20348
支持的最低服务器 Windows 10 内部版本 20348
Header d3d12.h
Library d3d12.lib
DLL d3d12.dll

另请参阅