Bagikan melalui


PFND3DDDI_CLEAR fungsi panggilan balik (d3dumddi.h)

Fungsi Clear melakukan penghapusan yang dibantu perangkat keras pada target penyajian, buffer kedalaman, atau buffer stensil.

Sintaks

PFND3DDDI_CLEAR Pfnd3dddiClear;

HRESULT Pfnd3dddiClear(
  [in] HANDLE hDevice,
       const D3DDDIARG_CLEAR *unnamedParam2,
       UINT unnamedParam3,
       const RECT *unnamedParam4
)
{...}

Parameter

[in] hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDIARG_CLEAR yang menjelaskan parameter operasi kliring yang dibantu perangkat keras.

unnamedParam3

NumRect [in]

Jumlah persegi panjang dalam array di pRect yang akan dibersihkan. Jika jumlah persegi panjang diatur ke nol, Hapus harus menghapus seluruh target render, buffer kedalaman, dan buffer stensil. Dalam situasi ini, konten array di pRect tidak terdefinisi dan driver tidak boleh mencoba membacanya.

unnamedParam4

pRect [in]

Array struktur RECT yang menunjukkan area persegi panjang buffer yang harus dibersihkan driver.

Menampilkan nilai

Clear mengembalikan S_OK atau hasil kesalahan yang sesuai jika operasi penghapusan yang dibantu perangkat keras tidak berhasil dilakukan.

Keterangan

Bagaimana driver melakukan operasi yang jelas tergantung pada jumlah area persegi panjang yang ditentukan dalam parameter NumRect dan nilai yang diatur dalam anggota BenderaD3DDDIARG_CLEAR. Nilai D3DCLEAR_TARGET, D3DCLEAR_STENCIL, dan D3DCLEAR_ZBUFFER (ditentukan dalam D3d8types.h) menunjukkan jenis buffer yang akan dihapus. Nilai D3DCLEAR_COMPUTERECTS (ditentukan dalam D3dhal.h) menunjukkan cara menghapus buffer. Pengaturan berikut menunjukkan bagaimana driver harus menghapus jenis buffer yang ditentukan:

  • Jika NumRect diatur ke 0 (NumRect== 0) dan D3DCLEAR_COMPUTERECTS tidak diatur dalam Bendera, driver menghapus 0 piksel (yaitu, tanpa operasi).
  • Jika NumRect diatur ke 0 dan D3DCLEAR_COMPUTERECTS diatur dalam Bendera, driver akan menghapus seluruh viewport (bukan seluruh permukaan).
  • Jika NumRect diatur ke nilai yang lebih besar dari 0 (NumRect!= 0) dan D3DCLEAR_COMPUTERECTS diatur dalam Bendera, driver akan mengklip area persegi yang ditentukan pRect terhadap viewport saat ini.
Pengujian gunting juga memengaruhi bagaimana driver melakukan operasi yang jelas. Aplikasi menetapkan status render D3DRS_SCISSORTESTENABLE dalam panggilan ke metode IDirect3DDevice9::SetRenderState untuk mengaktifkan pengujian gunting. Untuk informasi selengkapnya tentang pengujian gunting, lihat Uji Gunting. Jika status render D3DRS_SCISSORTESTENABLE diatur dan bendera D3DCLEAR_COMPUTERECTS diatur, driver harus mengklip area persegi panjang yang ditentukan pRect ke area persegi panjang gunting.

Jika NumRect diatur ke nilai yang lebih besar dari 0 (NumRect> 0) dan D3DCLEAR_COMPUTERECTS diatur dalam Bendera, driver akan mengklip area persegi panjang yang ditentukan ke viewport saat ini, dan ke persegi panjang gunting jika aplikasi sebelumnya diatur D3DRS_SCISSORTESTENABLE. Jika NumRect> 0 dan D3DCLEAR_COMPUTERECTS tidak diatur, driver menentukan bahwa runtime Direct3D sudah mengklip area persegi panjang yang ditentukan ke viewport saat ini, dan ke persegi panjang gunting jika aplikasi sebelumnya mengatur D3DRS_SCISSORTESTENABLE.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

D3DDDIARG_CLEAR

D3DDDI_DEVICEFUNCS

RECT