Bagikan melalui


PFND3D11_1DDI_RESOURCECOPYREGION fungsi panggilan balik (d3d10umddi.h)

Menyalin wilayah subresource sumber ke lokasi di subresource tujuan.

Sintaks

PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;

void Pfnd3d111DdiResourcecopyregion(
       D3D10DDI_HDEVICE unnamedParam1,
       D3D10DDI_HRESOURCE unnamedParam2,
       UINT unnamedParam3,
       UINT unnamedParam4,
       UINT unnamedParam5,
       UINT unnamedParam6,
       D3D10DDI_HRESOURCE unnamedParam7,
       UINT unnamedParam8,
       const D3D10_DDI_BOX *unnamedParam9,
  [in] UINT CopyFlags
)
{...}

Parameter

unnamedParam1

hDevice [in]

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

hDstResource [in]

Handel ke sumber daya tujuan untuk disalin.

unnamedParam3

DstSubresource [in]

Indeks yang menunjukkan sub sumber daya tujuan untuk disalin.

unnamedParam4

DstX [in]

Koordinat x subresource tujuan.

unnamedParam5

DstY [in]

Koordinat y subsumber daya tujuan. Untuk subsumber daya satu dimensi (1-D), DstY diatur ke nol.

unnamedParam6

DstZ [in]

Koordinat z subsumber daya tujuan. Untuk subresource satu dimensi (1-D) dan dua dimensi (2-D), DstZ diatur ke nol.

unnamedParam7

hSrcResource [in]

Handel ke sumber daya sumber untuk disalin.

unnamedParam8

SrcSubresource [in]

Indeks yang menunjukkan subsumber daya sumber untuk disalin.

unnamedParam9

pSrcBox [in, opsional]

Penunjuk ke struktur D3D10_DDI_BOX yang menentukan kotak yang pas pada subresource sumber atau tujuan. Jika pSrcBoxNULL, driver harus menyalin seluruh subresouce sumber ke tujuan.

Jika anggota struktur D3D10_DDI_BOX sedih sehingga kiri>=kanan, atas>=bawah, atau depan>=belakang, maka pSrcBox dianggap kosong, dan ResourceCopyRegion(D3D11_1) tidak boleh melakukan operasi penyalinan apa pun.

[in] CopyFlags

Nilai yang menentukan karakteristik operasi salin sebagai bitwise ATAU dari nilai dalam jenis enumerasi D3D11_1_DDI_COPY_FLAGS .

Menampilkan nilai

Tidak ada

Keterangan

Driver dapat menggunakan fungsi panggilan balik pfnSetErrorCb untuk mengatur kode kesalahan.

Runtime Microsoft Direct3D memanggil fungsi ResourceCopyRegion (D3D11_1) driver tampilan mode pengguna untuk menginformasikan driver untuk menyalin dari wilayah subresource sumber yang ditentukan ke lokasi pada sub sumber daya tujuan yang ditentukan. Subsumber daya sumber dan tujuan dapat menjadi sub sumber daya yang sama dari sumber daya yang sama. Sumber daya sumber dan tujuan harus memiliki jenis sumber daya yang sama dan harus memiliki jenis format (nilai DXGI_FORMAT-jenis) yang dapat dikonversi satu sama lain.

Untuk buffer, semua koordinat harus dalam byte; sedangkan untuk tekstur, semua koordinat harus dalam piksel. Kotak yang dituju parameter pSrcBox tidak boleh meluas di tepi wilayah sub sumber atau subresource tujuan. 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 (yang biasanya tidak boleh terjadi), driver dapat kembali D3DDDIERR_DEVICEREMOVED.

Driver dapat menerapkan fungsi ResourceCopyRegion(D3D11_1) yang dapat berisi pernyataan sakelar untuk memproses penyalinan dan konversi. Artinya, driver dapat menerapkan satu ResourceCopyRegion(D3D11_1) dan dapat mengatur anggota pfnResourceConvertRegion dari struktur D3D11_1DDI_DEVICEFUNCS untuk menunjuk ke ResourceCopyRegion(D3D11_1) bersama dengan anggota pfnResourceCopyRegionD3D11_1DDI_DEVICEFUNCS. Namun, untuk meningkatkan performa, driver dapat menerapkan fungsi ResourceCopyRegion(D3D11_1) dan ResourceConvertRegion(D3D11_1) terpisah.

Bagian berikut ini mencantumkan kondisi untuk menyalin dan mengonversi:

Menyalin

Untuk penyalinan, ResourceCopyRegion(D3D11_1) memastikan bahwa sumber daya sumber dan tujuan dibuat melalui fungsi CreateResource (D3D11) driver dengan kondisi berikut:

  • Sumber daya tujuan tidak dibuat dengan nilai D3D10_DDI_USAGE_IMMUTABLE yang ditetapkan dalam anggota Penggunaan struktur D3D11DDIARG_CREATERESOURCE .
  • Jika sumber daya sumber atau tujuan memiliki bit D3D10_DDI_BIND_DEPTH_STENCIL yang diatur dalam anggota BindFlags dari D3D10DDIARG_CREATERESOURCE atau merupakan sumber daya multi-sampel, ResourceCopyRegion(D3D11_1) memverifikasi bahwa parameter pSrcBox adalah NULL, sementara parameter DstX, DstY, dan DstZ adalah 0.
  • Indeks sub-sumber daya berada dalam rentang.
  • Pembatasan perataan berlaku untuk koordinat.
  • Sumber daya sumber dan tujuan bukan bagian dari subsumber daya yang sama persis.
  • Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggotaD3D11DDIARG_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.
ResourceCopyRegion(D3D11_1) tidak memastikan bahwa kotak sumber yang diimbangi oleh offset tujuan sepenuhnya sesuai dengan sumber daya. ResourceCopyRegion(D3D11_1) juga tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan.

Mengkonversi

Untuk konversi, ResourceCopyRegion(D3D11_1) memastikan bahwa sumber daya sumber dan tujuan dibuat melalui fungsi CreateResource (D3D11) driver dengan kondisi berikut:

  • Sumber daya tujuan tidak dibuat dengan nilai D3D10_DDI_USAGE_IMMUTABLE yang ditetapkan dalam anggota Penggunaan struktur D3D11DDIARG_CREATERESOURCE .
  • Jika sumber daya sumber atau tujuan memiliki bit D3D10_DDI_BIND_DEPTH_STENCIL yang diatur dalam anggota BindFlagsD3D11DDIARG_CREATERESOURCE atau merupakan sumber daya multi-sampel, ResourceCopyRegion(D3D11_1) memverifikasi bahwa parameter pSrcBox adalah NULL, sementara parameter DstX, DstY, dan DstZ adalah 0.
  • Indeks sub-sumber daya berada dalam rentang.
  • Pembatasan perataan berlaku untuk koordinat.
  • Sumber daya sumber dan tujuan bukan bagian dari subsumber daya yang sama persis.
  • Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggotaD3D11DDIARG_CREATERESOURCE berada dalam grup tanpa jenis yang sama.
  • Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggotaD3D11DDIARG_CREATERESOURCE mendukung operasi konversi yang sesuai.
  • 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.
ResourceCopyRegion(D3D11_1) tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan. ResourceCopyRegion(D3D11_1) juga tidak memastikan bahwa kotak sumber yang diimbangi oleh offset tujuan sepenuhnya sesuai dengan sumber daya.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Windows Server 2012
Target Platform Desktop
Header d3d10umddi.h (termasuk D3d10umddi.h)

Lihat juga

CreateResource(D3D11)

D3D10_DDI_BOX

D3D11DDIARG_CREATERESOURCE

D3D11_1DDI_DEVICEFUNCS

D3D11_1_DDI_COPY_FLAGS

pfnSetErrorCb