PFND3D10DDI_RESOURCECOPYREGION fungsi panggilan balik (d3d10umddi.h)

Fungsi ResourceCopyRegion menyalin wilayah subresource sumber ke lokasi di subsumber daya tujuan.

Sintaks

PFND3D10DDI_RESOURCECOPYREGION Pfnd3d10ddiResourcecopyregion;

void Pfnd3d10ddiResourcecopyregion(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3,
  UINT unnamedParam4,
  UINT unnamedParam5,
  UINT unnamedParam6,
  D3D10DDI_HRESOURCE unnamedParam7,
  UINT unnamedParam8,
  const D3D10_DDI_BOX *unnamedParam9
)
{...}

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 subsumber daya tujuan untuk disalin.

unnamedParam4

DstX [in]

Koordinat x dari subsumber daya tujuan.

unnamedParam5

DstY [in]

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

unnamedParam6

DstZ [in]

Koordinat z dari subsumber daya tujuan. Untuk subsumber daya 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 subsumber daya sumber atau tujuan. Jika pSrcBox adalah NULL, driver harus menyalin seluruh sub-sumber ke tujuan.

Jika anggota struktur D3D10_DDI_BOX sed sehingga left>=right, top>=bottom, atau front>=back, maka pSrcBox dianggap kosong, dan ResourceCopyRegion tidak boleh melakukan operasi salin apa pun.

Menampilkan nilai

Tidak ada

Keterangan

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

Runtime Microsoft Direct3D memanggil fungsi ResourceCopyRegion driver tampilan mode pengguna untuk menginformasikan driver untuk menyalin dari wilayah subsumber daya sumber yang ditentukan ke lokasi pada subsumber daya tujuan yang ditentukan. Subsumber daya sumber dan tujuan tidak boleh menjadi subsumber 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 subsumber daya 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 salin.

Driver seharusnya tidak mengalami kesalahan apa pun, 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 diharuskan untuk mengembalikan D3DDDIERR_DEVICEREMOVED; namun, jika penghapusan perangkat mengganggu pengoperasian ResourceCopyRegion (yang biasanya tidak boleh terjadi), driver dapat mengembalikan D3DDDIERR_DEVICEREMOVED.

Catatan Bagian berikut ini hanya berlaku untuk Microsoft Direct3D versi 10.1 dan yang lebih baru (yaitu, Windows Vista dengan Paket Layanan 1 (SP1) dan yang lebih baru, dan Windows Server 2008 dan yang lebih baru).
 
Driver dapat menerapkan fungsi ResourceCopyRegion yang dapat berisi pernyataan pengalihan untuk memproses penyalinan dan konversi. Artinya, driver dapat mengimplementasikan satu ResourceCopyRegion dan dapat mengatur anggota pfnResourceConvertRegion dari struktur D3D10_1DDI_DEVICEFUNCS untuk menunjuk ke ResourceCopyRegion bersama dengan anggota pfnResourceCopyRegion dari D3D10_1DDI_DEVICEFUNCS. Namun, untuk meningkatkan performa, driver dapat menerapkan fungsi ResourceCopyRegion dan ResourceConvertRegion terpisah.

ResourceCopyRegion versi Direct3D 10.1 memiliki perbedaan fungsionalitas utama dari versi Direct3D 10.0 sehubungan dengan anggota ResourceDimensiondari D3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan yang dibuat dalam panggilan ke fungsi CreateResource (D3D10) driver. Untuk ResourceCopyRegion versi Direct3D 10.0, anggota ResourceDimension dari D3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan harus cocok. ResourceCopyRegion versi Direct3D 10.1 memungkinkan sedikit relaksasi bagi anggota ResourceDimension D3D10DDIARG_CREATERESOURCE untuk sumber daya sumber dan tujuan. ResourceCopyRegion versi Direct3D 10.1 memungkinkan penyalinan sumber daya sumber 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. ResourceCopyRegion versi Direct3D 10.1 hanya mewakili apakah 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, ResourceCopyRegion 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 .
  • Jika sumber daya sumber atau tujuan memiliki bit D3D10_DDI_BIND_DEPTH_STENCIL yang diatur di anggota BindFlags dari D3D10DDIARG_CREATERESOURCE atau merupakan sumber daya multi-sampel, ResourceCopyRegion memverifikasi bahwa parameter pSrcBox adalah NULL, sedangkan 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 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.
ResourceCopyRegion tidak memastikan bahwa kotak sumber yang diimbangi oleh offset tujuan sepenuhnya sesuai dengan sumber daya. ResourceCopyRegion juga tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan.

Mengkonversi

Untuk konversi, ResourceCopyRegion 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 .
  • Jika sumber daya sumber atau tujuan memiliki bit D3D10_DDI_BIND_DEPTH_STENCIL yang diatur di anggota BindFlags dari D3D10DDIARG_CREATERESOURCE atau merupakan sumber daya multi-sampel, ResourceCopyRegion memverifikasi bahwa parameter pSrcBox adalah NULL, sedangkan 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 anggota D3D10DDIARG_CREATERESOURCE berada dalam grup tanpa jenis yang sama.
  • Setiap format sumber daya sumber dan tujuan yang ditentukan dalam format anggota D3D10DDIARG_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 tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan. ResourceCopyRegion juga tidak memastikan bahwa kotak sumber yang diimbangi oleh offset tujuan sepenuhnya sesuai dengan sumber daya.

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

D3D10DDI_DEVICEFUNCS

D3D10_DDI_BOX

pfnSetErrorCb