Bagikan melalui


METODE ID3D11DeviceContext::CopyResource (d3d11.h)

Salin seluruh konten sumber daya sumber ke sumber daya tujuan menggunakan GPU.

Sintaks

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

Parameter

[in] pDstResource

Jenis: ID3D11Resource*

Penunjuk ke antarmuka ID3D11Resource yang mewakili sumber daya tujuan.

[in] pSrcResource

Jenis: ID3D11Resource*

Penunjuk ke antarmuka ID3D11Resource yang mewakili sumber daya sumber.

Nilai kembali

Tidak ada

Keterangan

Metode ini tidak biasa karena menyebabkan GPU melakukan operasi salin (mirip dengan memcpy oleh CPU). Akibatnya, ia memiliki beberapa batasan yang dirancang untuk meningkatkan performa. Misalnya, sumber daya sumber dan tujuan:

  • Harus sumber daya yang berbeda.
  • Harus tipe yang sama.
  • Harus memiliki dimensi yang identik (termasuk lebar, tinggi, kedalaman, dan ukuran yang sesuai).
  • Harus memiliki format DXGI yang kompatibel, yang berarti format harus identik atau setidaknya dari grup jenis yang sama. Misalnya, tekstur DXGI_FORMAT_R32G32B32_FLOAT dapat disalin ke tekstur DXGI_FORMAT_R32G32B32_UINT karena kedua format ini berada dalam grup DXGI_FORMAT_R32G32B32_TYPELESS. CopyResource dapat menyalin di antara beberapa jenis format. Untuk informasi selengkapnya, lihat Konversi Format menggunakan Direct3D 10.1.
  • Saat ini tidak dapat dipetakan.
CopyResource hanya mendukung salinan; ini tidak mendukung peregangan, kunci warna, atau campuran apa pun. CopyResource dapat menginterpretasikan ulang data sumber daya di antara beberapa jenis format. Untuk informasi selengkapnya, lihat Konversi Format menggunakan Direct3D 10.1.

Anda tidak dapat menggunakan sumber daya yang tidak dapat diubah sebagai tujuan. Anda dapat menggunakan sumber daya stensil kedalaman sebagai sumber atau tujuan asalkan tingkat fitur D3D_FEATURE_LEVEL_10_1 atau lebih besar. Untuk tingkat fitur 9_x, sumber daya yang dibuat dengan bendera D3D11_BIND_DEPTH_STENCIL hanya dapat digunakan sebagai sumber untuk CopyResource. Sumber daya yang dibuat dengan kemampuan multisampling (lihat DXGI_SAMPLE_DESC) dapat digunakan sebagai sumber dan tujuan hanya jika sumber dan tujuan memiliki jumlah dan kualitas multisampel yang identik. Jika sumber dan tujuan berbeda dalam jumlah dan kualitas multisampled atau jika satu di-multisampel dan yang lain tidak multisampled, panggilan ke ID3D11DeviceContext::CopyResource gagal. Gunakan ID3D11DeviceContext::ResolveSubresource untuk menyelesaikan sumber daya multisampled ke sumber daya yang tidak multisampled.

Metode ini adalah panggilan asinkron, yang dapat ditambahkan ke antrean buffer perintah. Upaya ini untuk menghapus kios alur yang mungkin terjadi saat menyalin data. Untuk informasi selengkapnya, lihat pertimbangan performa.

Sebaiknya gunakan ID3D11DeviceContext::CopySubresourceRegion sebagai gantinya jika Anda hanya perlu menyalin sebagian data dalam sumber daya.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib

Lihat juga

ID3D11DeviceContext

ID3D11Resource