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.

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 ResourceCopy yang dapat berisi pernyataan sakelar untuk memproses penyalinan dan konversi. Artinya, driver dapat mengimplementasikan satu ResourceCopy dan dapat mengatur anggota pfnResourceConvert dari struktur D3D10_1DDI_DEVICEFUNCS untuk menunjuk ke ResourceCopy bersama dengan anggota pfnResourceCopy dari D3D10_1DDI_DEVICEFUNCS. Namun, untuk meningkatkan performa, driver dapat menerapkan fungsi ResourceCopy dan ResourceConvert terpisah.

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.
ResourceCopy tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan.

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.
ResourceCopy tidak memastikan bahwa tidak ada subsumber daya yang saat ini dipetakan.

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

CreateResource(D3D10)

D3D10DDIARG_CREATERESOURCE

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

pfnSetErrorCb