跳轉到主要內容
取得可複製的資源配置。 在上傳堆積中子配置空間時,協助應用程式填入 D3D12_PLACED_SUBRESOURCE_FOOTPRINT 和 D3D12_SUBRESOURCE_FOOTPRINT。

語法

參數

pResourceDesc [in]
類型:const D3D12_RESOURCE_DESC *
資源的描述,以 D3D12_RESOURCE_DESC 結構的指標表示。 FirstSubresource [in]
類型:UINT
資源中第一個子資源的索引。 有效值的範圍是 0 到 D3D12_REQ_SUBRESOURCES。 NumSubresources [in]
類型:UINT
資源中的子資源數目。有效值的範圍是 0 到 (D3D12_REQ_SUBRESOURCES - FirstSubresource)。 BaseOffset
類型:UINT64
資源的位移 (以位元組為單位)。 pLayouts [out, optional]
類型:D3D12_PLACED_SUBRESOURCE_FOOTPRINT *
指向 D3D12_PLACED_SUBRESOURCE_FOOTPRINT 結構陣列 (長度為 NumSubresources) 的指標,會以每個子資源的描述和放置位置填入。 pNumRows [out, optional]
類型:UINT *
指向整數變數陣列 (長度為 NumSubresources) 的指標,會以每個子資源的資料列數目填入。 pRowSizeInBytes [out, optional]
類型:UINT64 *
指向整數變數陣列 (長度為 NumSubresources) 的指標,每個項目都會以每個子資源一個資料列的未填補大小 (以位元組為單位) 填入。 例如,如果 Texture2D 資源的寬度為 32,且每像素位元組數為 4, 則 pRowSizeInBytes 會傳回 128。 pRowSizeInBytes 不應與資料列間距混淆,因為檢查 pLayouts 並從中取得資料列間距會得到 256,因為它會對齊 D3D12_TEXTURE_DATA_PITCH_ALIGNMENT。 pTotalBytes [out, optional]
類型:UINT64 *
指向整數變數的指標,會以總大小 (以位元組為單位) 填入。

傳回值

類型:void 無。

備註

在上傳堆積中子配置空間時,此常式可協助應用程式填寫 D3D12_PLACED_SUBRESOURCE_FOOTPRINT 和 D3D12_SUBRESOURCE_FOOTPRINT 結構。 產生的結構與 GPU 介面卡無關,表示這些值不會因 GPU 介面卡不同而改變。 GetCopyableFootprints 會使用 (來自 D3D12_RESOURCE_DESC 結構的) 資源格式、紋理配置和對齊需求的指定詳細資料來填寫子資源結構。 應用程式可以存取所有這些詳細資料,因此此方法或其變化可以撰寫為應用程式的一部分。

範例

D3D12Multithreading 範例使用 ID3D12Device::GetCopyableFootprints 的方式如下:
請參閱 D3D12 參考中的範例程式碼。

需求

標頭: d3d12_xs.h 或 d3d12_x.h
程式庫: d3d12_xs.lib 或 d3d12_x.lib
支援的平台: XBOX Series 主機和 XBOX One 系列主機

另請參閱

CD3DX12_RESOURCE_DESC CD3DX12_SUBRESOURCE_FOOTPRINT ID3D12Device
最後修改於 2026年10月6日