Metode IDirect3DDevice9::Reset (d3d9helper.h)

Mengatur ulang jenis, ukuran, dan format rantai pertukaran.

Sintaks

HRESULT Reset(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters
);

Parameter

[in, out] pPresentationParameters

Jenis: D3DPRESENT_PARAMETERS*

Penunjuk ke struktur D3DPRESENT_PARAMETERS , yang menjelaskan parameter presentasi baru. Nilai ini tidak boleh NULL.

Saat beralih ke mode layar penuh, Direct3D akan mencoba menemukan format desktop yang cocok dengan format buffer belakang, sehingga format buffer belakang dan buffer depan akan identik (untuk menghilangkan kebutuhan akan konversi warna).

Ketika metode ini mengembalikan:

  • BackBufferCount, BackBufferWidth, dan BackBufferHeight diatur ke nol.
  • BackBufferFormat diatur ke D3DFMT_UNKNOWN hanya untuk mode berjendela; mode layar penuh harus menentukan format.

Mengembalikan nilai

Jenis: HRESULT

Nilai yang mungkin dikembalikan meliputi: D3D_OK, D3DERR_DEVICELOST, D3DERR_DEVICEREMOVED, D3DERR_DRIVERINTERNALERROR, atau D3DERR_OUTOFVIDEOMEMORY (lihat D3DERR).

Keterangan

Jika panggilan ke IDirect3DDevice9::Reset gagal, perangkat akan ditempatkan dalam status "hilang" (seperti yang ditunjukkan oleh nilai pengembalian D3DERR_DEVICELOST dari panggilan ke IDirect3DDevice9::TestCooperativeLevel) kecuali sudah dalam status "tidak diatur ulang" (seperti yang ditunjukkan oleh nilai pengembalian D3DERR_DEVICENOTRESET dari panggilan ke IDirect3DDevice9::TestCooperativeLevel). Lihat IDirect3DDevice9::TestCooperativeLevel dan Perangkat Hilang (Direct3D 9) untuk informasi lebih lanjut tentang penggunaan IDirect3DDevice9::Reset dalam konteks perangkat yang hilang.

Memanggil IDirect3DDevice9::Reset menyebabkan semua permukaan memori tekstur hilang, tekstur terkelola dihapus dari memori video, dan semua informasi status hilang. Sebelum memanggil metode IDirect3DDevice9::Reset untuk perangkat, aplikasi harus merilis target render eksplisit, permukaan stensil kedalaman, rantai pertukaran tambahan, blok status, dan sumber daya D3DPOOL_DEFAULT yang terkait dengan perangkat.

Ada dua jenis rantai pertukaran yang berbeda: layar penuh atau berjendela. Jika rantai pertukaran baru adalah layar penuh, adaptor akan ditempatkan dalam mode tampilan yang cocok dengan ukuran baru.

Aplikasi Direct3D 9 dapat mengharapkan pesan dikirim kepada mereka selama panggilan ini (misalnya, sebelum panggilan ini dikembalikan); aplikasi harus mengambil tindakan pencegahan untuk tidak memanggil Direct3D saat ini. Selain itu, ketika IDirect3DDevice9::Reset gagal, satu-satunya metode valid yang dapat dipanggil adalah IDirect3DDevice9::Reset, IDirect3DDevice9::TestCooperativeLevel, dan berbagai fungsi anggota Rilis. Memanggil metode lain dapat menghasilkan pengecualian.

Panggilan ke IDirect3DDevice9::Reset akan gagal jika dipanggil pada utas yang berbeda dari yang digunakan untuk membuat perangkat yang direset.

Shader piksel dan shader vertex bertahan dari panggilan IDirect3DDevice9::Reset untuk Direct3D 9. Mereka tidak perlu dibuat ulang secara eksplisit oleh aplikasi.

D3DFMT_UNKNOWN dapat ditentukan untuk format buffer kembali mode berjendela saat memanggil IDirect3D9::CreateDevice, IDirect3DDevice9::Reset, dan IDirect3DDevice9::CreateAdditionalSwapChain. Ini berarti aplikasi tidak perlu mengkueri format desktop saat ini sebelum memanggil IDirect3D9::CreateDevice untuk mode berjendela. Untuk mode layar penuh, format buffer belakang harus ditentukan. Mengatur BackBufferCount sama dengan nol (BackBufferCount = 0) menghasilkan satu buffer belakang.

Saat mencoba mengatur ulang lebih dari satu adaptor tampilan dalam grup, atur pPresentationParameters untuk menunjuk ke array struktur D3DPRESENT_PARAMETERS , satu untuk setiap tampilan dalam grup adaptor.

Jika perangkat multihead dibuat dengan D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DDevice9::Reset memerlukan array struktur D3DPRESENT_PARAMETERS di mana setiap struktur harus menentukan tampilan layar penuh. Untuk beralih kembali ke mode berjendela, aplikasi harus menghancurkan perangkat dan membuat ulang perangkat non-multihead dalam mode berjendela.

Persyaratan

   
Target Platform Windows
Header d3d9helper.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

D3DPRESENT_PARAMETERS

D3DSWAPEFFECT

IDirect3DDevice9

IDirect3DDevice9::P resent

Multihead (Direct3D 9)