Share via


ID3D10Device::CopyResource 方法 (d3d10.h)

使用 GPU 將來源資源的整個內容複寫到目的地資源。

語法

void CopyResource(
  [in] ID3D10Resource *pDstResource,
  [in] ID3D10Resource *pSrcResource
);

參數

[in] pDstResource

類型: ID3D10Resource*

目的地資源的指標 (請參閱 ID3D10Resource) 。

[in] pSrcResource

類型: ID3D10Resource*

來源資源的指標 (請參閱 ID3D10Resource) 。

傳回值

備註

此方法不尋常,因為它會導致 GPU 執行複製作業, (類似 CPU) 的 memcpy。 因此,它有一些專為改善效能而設計的限制。 例如,來源和目的地資源:

  • 必須是不同的資源。
  • 必須是相同的 類型
  • 必須有相同的維度 (,包括寬度、高度、深度和大小,視需要適當) 。
  • 必須具有相容的 格式,這表示格式必須相同或至少來自相同的類型群組。 例如,DXGI_FORMAT_R32G32B32_FLOAT紋理可以複製到DXGI_FORMAT_R32G32B32_UINT紋理,因為這兩種格式都位於DXGI_FORMAT_R32G32B32_TYPELESS群組中。 從 Direct3D 10.1 開始, CopyResource 可以在幾個格式類型之間複製。 如需詳細資訊,請參閱 使用 Direct3D 10.1 的格式轉換
  • 目前可能未 對應
CopyResource 僅支援複製;它不支援任何延展、色彩索引鍵、混合或格式轉換。 從 Direct3D 10.1 開始, CopyResource 可以在幾個格式類型之間重新解譯資源資料。 如需詳細資訊,請參閱 使用 Direct3D 10.1 的格式轉換

不可變深度樣板 資源無法當做目的地使用。 使用 多重取樣功能 建立的資源不能當做來源或目的地使用。

方法是非同步呼叫,可新增至命令緩衝區佇列。 這會嘗試移除複製資料時可能發生的管線停頓。 如需詳細資訊,請參閱 效能考慮

只需要複製資源中部分資料的應用程式應該改用 ID3D10Device::CopySubresourceRegion

Direct3D 10 與 Direct3D 10.1 之間的差異:

Direct3D 10.1 可讓深度樣板資源當做來源或目的地使用。 Direct3D 10.1 只有在來源和目的地都有相同的多重取樣計數和品質時,才能使用多重取樣資源作為來源和目的地。 如果來源和目的地與多重取樣計數和品質不同,或其中一個是多重取樣,而另一個不是多重取樣,則 ID3D10Device::CopyResource 的呼叫會失敗。

可以在預先結構化+型別的資源與區塊壓縮紋理之間複製。 請參閱 使用 Direct3D 10.1 進行格式轉換

規格需求

   
目標平台 Windows
標頭 d3d10.h
程式庫 D3D10.lib

另請參閱

ID3D10Device

ID3D10Resource 介面