Bagikan melalui


METODE ID3D10Device::CopyResource (d3d10.h)

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

Sintaks

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

Parameter

[in] pDstResource

Jenis: ID3D10Resource*

Penunjuk ke sumber daya tujuan (lihat ID3D10Resource).

[in] pSrcResource

Jenis: ID3D10Resource*

Penunjuk ke sumber daya sumber (lihat ID3D10Resource).

Menampilkan nilai

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 jenis yang sama.
  • Harus memiliki dimensi yang identik (termasuk lebar, tinggi, kedalaman, dan ukuran yang sesuai).
  • Harus memiliki format 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. Dimulai dengan Direct3D 10.1, CopyResource dapat menyalin di antara beberapa jenis format. Untuk informasi selengkapnya, lihat Konversi Format menggunakan Direct3D 10.1.
  • Mungkin saat ini tidak dipetakan.
CopyResource hanya mendukung penyalinan; ini tidak mendukung konversi stretch, kunci warna, campuran, atau format apa pun. Dimulai dengan Direct3D 10.1, CopyResource dapat meninterpretasikan ulang data sumber daya di antara beberapa jenis format. Untuk informasi selengkapnya, lihat Konversi Format menggunakan Direct3D 10.1.

Sumber daya yang tidak dapat diubah, dan stensil kedalaman tidak dapat digunakan sebagai tujuan. Sumber daya yang dibuat dengan kemampuan multisampling tidak dapat digunakan sebagai sumber atau tujuan.

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

Aplikasi yang hanya perlu menyalin sebagian data dalam sumber daya harus menggunakan ID3D10Device::CopySubresourceRegion sebagai gantinya.

Perbedaan antara Direct3D 10 dan Direct3D 10.1:

Direct3D 10.1 memungkinkan sumber daya stensil kedalaman digunakan sebagai sumber atau tujuan. Direct3D 10.1 memungkinkan sumber daya multisampel 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 multisampel atau salah satunya multisampled dan yang lain tidak multisampled, panggilan ke ID3D10Device::CopyResource gagal.

Dimungkinkan untuk menyalin antara sumber daya yang distruktur+diketik dan tekstur terkompresi blok. Lihat Konversi Format menggunakan Direct3D 10.1.

Persyaratan

   
Target Platform Windows
Header d3d10.h
Pustaka D3D10.lib

Lihat juga

ID3D10Device

Id3D10 Antarmuka Sumber Daya