METODE ID3D10Device::CopySubresourceRegion (d3d10.h)
Salin wilayah dari sumber daya sumber ke sumber daya tujuan.
Sintaks
void CopySubresourceRegion(
[in] ID3D10Resource *pDstResource,
[in] UINT DstSubresource,
[in] UINT DstX,
[in] UINT DstY,
[in] UINT DstZ,
[in] ID3D10Resource *pSrcResource,
[in] UINT SrcSubresource,
[in] const D3D10_BOX *pSrcBox
);
Parameter
[in] pDstResource
Jenis: ID3D10Resource*
Penunjuk ke sumber daya tujuan (lihat ID3D10Resource).
[in] DstSubresource
Jenis: UINT
Indeks sub-sumber daya tujuan.
[in] DstX
Jenis: UINT
Koordinat x sudut kiri atas wilayah tujuan.
[in] DstY
Jenis: UINT
Koordinat y sudut kiri atas wilayah tujuan.
[in] DstZ
Jenis: UINT
Koordinat z sudut kiri atas wilayah tujuan. Untuk sub sumber daya 1D atau 2D, ini harus nol.
[in] pSrcResource
Jenis: ID3D10Resource*
Penunjuk ke sumber daya sumber (lihat ID3D10Resource).
[in] SrcSubresource
Jenis: UINT
Indeks subsumber daya sumber.
[in] pSrcBox
Jenis: const D3D10_BOX*
Kotak 3D (lihat D3D10_BOX) yang menentukan subresource sumber yang dapat disalin. Jika NULL, seluruh subsumber daya sumber disalin. Kotak harus pas dalam sumber daya sumber.
Kotak kosong menghasilkan no-op. Kotak kosong jika nilai atas lebih besar dari atau sama dengan nilai bawah, atau nilai kiri lebih besar dari atau sama dengan nilai kanan, atau nilai depan lebih besar dari atau sama dengan nilai belakang. Saat kotak kosong, CopySubresourceRegion tidak melakukan operasi salin.
Nilai kembali
Tidak ada
Keterangan
Kotak sumber harus dalam ukuran sumber daya sumber. Lokasi tujuan adalah nilai absolut (bukan nilai relatif). Lokasi tujuan dapat diimbangi dari lokasi sumber; namun, ukuran wilayah yang akan disalin (termasuk lokasi tujuan) harus pas di sumber daya tujuan.
Jika sumber daya adalah buffer, semua koordinat berada dalam byte; jika sumber daya adalah tekstur, semua koordinat berada dalam texel.
D3D10CalcSubresource adalah fungsi pembantu untuk menghitung indeks sub sumber daya.
CopySubresourceRegion melakukan salinan pada GPU (mirip dengan memcpy oleh CPU). Sebagai konsekuensinya, sumber daya sumber dan tujuan harus memenuhi kriteria berikut:
- Harus berupa subsumber daya yang berbeda (meskipun dapat berasal dari sumber daya yang sama).
- Harus tipe yang sama.
- Harus memiliki format yang kompatibel (format harus identik atau berasal 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, CopySubresourceRegion dapat menyalin di antara beberapa jenis format. Untuk informasi selengkapnya, lihat Konversi Format menggunakan Direct3D 10.1.
- Mungkin saat ini tidak dipetakan.
Jika aplikasi Anda perlu menyalin seluruh sumber daya, sebaiknya gunakan ID3D10Device::CopyResource sebagai gantinya.
CopySubresourceRegion adalah panggilan asinkron yang dapat ditambahkan runtime ke antrean buffer perintah. Behaviorattempts asinkron ini untuk menghapus stall alur yang mungkin terjadi saat menyalin data. Lihat pertimbangan performa untuk detail selengkapnya.
Perbedaan antara Direct3D 10 dan Direct3D 10.1: Direct3D 10 memiliki batasan berikut:
|
Contoh
Cuplikan kode berikut menyalin kotak (terletak di (120.100),(200.220)) dari tekstur sumber ke wilayah (130.120),(210.240) dalam tekstur tujuan.
D3D10_BOX sourceRegion;
sourceRegion.left = 120;
sourceRegion.right = 200;
sourceRegion.top = 100;
sourceRegion.bottom = 220;
sourceRegion.front = 0;
sourceRegion.back = 1;
pd3dDevice->CopySubresourceRegion( pDestTexture, 0, 130, 120, 0, pSourceTexture, 0, &sourceRegion );
Perhatikan bahwa, untuk tekstur 2D, depan dan belakang selalu diatur ke 0 dan 1 masing-masing.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d10.h |
Pustaka | D3D10.lib |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk