PFND3D10DDI_RESOURCECOPY fungsi panggilan balik (d3d10umddi.h)
Fungsi ResourceCopy menyalin seluruh sumber daya sumber ke sumber daya tujuan.
Sintaks
PFND3D10DDI_RESOURCECOPY Pfnd3d10ddiResourcecopy;
void Pfnd3d10ddiResourcecopy(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3
)
{...}
Parameter
unnamedParam1
hDevice [in]
Handel ke perangkat tampilan (konteks grafis).
unnamedParam2
hDstResource [in]
Handel ke sumber daya tujuan untuk disalin.
unnamedParam3
hSrcResource [in]
Handel ke sumber daya sumber untuk disalin.
Menampilkan nilai
Tidak ada
Keterangan
Driver dapat menggunakan fungsi panggilan balik pfnSetErrorCb untuk mengatur kode kesalahan.
Runtime Microsoft Direct3D memanggil fungsi ResourceCopy driver tampilan mode pengguna untuk memberi tahu driver untuk menyalin dari sumber daya sumber yang ditentukan ke sumber daya tujuan yang ditentukan. Sumber daya sumber dan tujuan tidak boleh sumber daya yang sama. Sumber daya sumber dan tujuan harus memiliki jenis sumber daya yang sama dan memiliki dimensi yang sama. Jenis format (nilai yang diketik DXGI_FORMAT) dari kedua sumber daya harus dilemparkan satu sama lain. Sumber dan sumber daya tujuan saat ini tidak boleh dipetakan. Selain itu, bendera pembuatan sumber daya membatasi apakah sumber daya dapat berpartisipasi dalam operasi penyalinan.
Driver tidak boleh mengalami kesalahan, kecuali untuk D3DDDIERR_DEVICEREMOVED. Oleh karena itu, jika driver melewati kesalahan apa pun, kecuali untuk D3DDDIERR_DEVICEREMOVED, dalam panggilan ke fungsi pfnSetErrorCb , runtime Direct3D akan menentukan bahwa kesalahan sangat penting. Bahkan jika perangkat dihapus, driver tidak diperlukan untuk mengembalikan D3DDDIERR_DEVICEREMOVED; namun, jika penghapusan perangkat mengganggu pengoperasian ResourceCopy (yang biasanya tidak boleh terjadi), driver dapat mengembalikan D3DDDIERR_DEVICEREMOVED.
ResourceCopy versi Direct3D 10.1 memiliki perbedaan fungsionalitas utama dari versi Direct3D 10.0 sehubungan dengan anggota ResourceDimensionD3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan yang dibuat dalam panggilan ke fungsi CreateResource (D3D10) driver. Untuk ResourceCopy versi Direct3D 10.0, anggota ResourceDimension dari D3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan harus cocok. ResourceCopy versi Direct3D 10.1 memungkinkan sedikit relaksasi bagi anggota ResourceDimension D3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan. ResourceCopy versi Direct3D 10.1 memungkinkan penyalinan sumber daya Tex2D pada sumber daya tujuan TexCube atau sumber daya sumber TexCube pada sumber daya tujuan Tex2D. Selain itu, perbedaan antara TexCube di tingkat sumber daya hilang di Direct3D versi 10.1. ResourceCopy versi Direct3D 10.1 hanya mewakili apakah resourceCopy dapat menyalin TexCube. Dalam Direct3D versi 10.0, menyalin sumber daya, validasi beberapa target render, dan sebagainya (yaitu, berbagai operasi yang mengharuskan jenis sumber daya identik) semuanya menyertakan perbedaan TexCube untuk diperhitungkan ke dalam jenis sumber daya. Di Direct3D versi 10.1, runtime hanya dapat menentukan Tex2D.
Bagian berikut ini mencantumkan kondisi untuk menyalin dan mengonversi:
Menyalin
Untuk penyalinan, ResourceCopy memastikan bahwa sumber daya sumber dan tujuan dibuat melalui fungsi CreateResource (D3D10) driver dengan kondisi berikut:
- Sumber daya tujuan tidak dibuat dengan nilai D3D10_DDI_USAGE_IMMUTABLE yang ditetapkan dalam anggota Penggunaan struktur D3D10DDIARG_CREATERESOURCE .
- Sumber daya sumber dan tujuan dibuat dengan jenis sumber daya dan dimensi yang sama (buffer, tekstur satu dimensi (1-D), dan sebagainya) dengan mengatur nilai yang sama di anggota ResourceDimension D3D10DDIARG_CREATERESOURCE.
- Sumber daya sumber dan tujuan bukan bagian dari sumber daya yang sama persis.
- Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggota D3D10DDIARG_CREATERESOURCE berada dalam grup tanpa jenis yang sama.
- Sumber daya sumber dan tujuan harus memiliki jumlah sampel dan tingkat kualitas yang sama; kecuali untuk sumber daya sampel tunggal, yang hanya boleh memiliki jumlah sampel yang sama.
Mengkonversi
Untuk konversi, ResourceCopy memastikan bahwa sumber daya sumber dan tujuan dibuat melalui fungsi CreateResource (D3D10) driver dengan kondisi berikut:
- Sumber daya tujuan tidak dibuat dengan nilai D3D10_DDI_USAGE_IMMUTABLE yang ditetapkan dalam anggota Penggunaan struktur D3D10DDIARG_CREATERESOURCE .
- Sumber daya sumber dan tujuan dibuat dengan jenis sumber daya yang sama (buffer, tekstur satu dimensi (1-D), dan sebagainya) dengan mengatur nilai yang sama di anggota ResourceDimension D3D10DDIARG_CREATERESOURCE.
- Dimensi sumber daya sumber dan tujuan cocok untuk konversi.
- Sumber daya sumber dan tujuan bukan bagian dari sumber daya yang sama persis.
- Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggota D3D10DDIARG_CREATERESOURCE mendukung operasi konversi yang sesuai. Untuk sumber daya terkompresi blok yang dimigrasikan, dimensi semuanya divalidasi menjadi kekuatan dua.
- Sumber daya sumber dan tujuan harus memiliki jumlah sampel dan tingkat kualitas yang sama; kecuali untuk sumber daya sampel tunggal, yang hanya boleh memiliki jumlah sampel yang sama.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Desktop |
Header | d3d10umddi.h (termasuk D3d10umddi.h) |
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