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.
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 |