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 的格式轉換。
- 目前可能未 對應。
不可變和 深度樣板 資源無法當做目的地使用。 使用 多重取樣功能 建立的資源不能當做來源或目的地使用。
方法是非同步呼叫,可新增至命令緩衝區佇列。 這會嘗試移除複製資料時可能發生的管線停頓。 如需詳細資訊,請參閱 效能考慮 。
只需要複製資源中部分資料的應用程式應該改用 ID3D10Device::CopySubresourceRegion 。
Direct3D 10 與 Direct3D 10.1 之間的差異: Direct3D 10.1 可讓深度樣板資源當做來源或目的地使用。 Direct3D 10.1 只有在來源和目的地都有相同的多重取樣計數和品質時,才能使用多重取樣資源作為來源和目的地。 如果來源和目的地與多重取樣計數和品質不同,或其中一個是多重取樣,而另一個不是多重取樣,則 ID3D10Device::CopyResource 的呼叫會失敗。 可以在預先結構化+型別的資源與區塊壓縮紋理之間複製。 請參閱 使用 Direct3D 10.1 進行格式轉換。 |
規格需求
目標平台 | Windows |
標頭 | d3d10.h |
程式庫 | D3D10.lib |