Metode IDirect3DDevice9Ex::ResetEx (d3d9.h)
Mengatur ulang jenis, ukuran, dan format rantai pertukaran dengan semua permukaan lainnya persisten.
Sintaks
HRESULT ResetEx(
[in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
[in, out] D3DDISPLAYMODEEX *pFullscreenDisplayMode
);
Parameter
[in, out] pPresentationParameters
Jenis: D3DPRESENT_PARAMETERS*
Arahkan 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 D3DFORMAT hanya untuk mode berjendela; mode layar penuh harus menentukan format.
[in, out] pFullscreenDisplayMode
Jenis: D3DDISPLAYMODEEX*
Arahkan ke struktur D3DDISPLAYMODEEX yang menjelaskan properti mode tampilan yang diinginkan. Nilai ini harus disediakan untuk aplikasi layar penuh, tetapi dapat berupa NULL untuk aplikasi berjendela.
Nilai kembali
Jenis: HRESULT
Metode ini dapat mengembalikan: D3D_OK, D3DERR_DEVICELOST, atau D3DERR_DEVICEHUNG (lihat D3DERR).
Jika metode ini mengembalikan D3DERR_DEVICELOST atau D3DERR_DEVICEHUNG maka aplikasi hanya dapat memanggil IDirect3DDevice9Ex::ResetEx, IDirect3DDevice9Ex::CheckDeviceState atau melepaskan penunjuk antarmuka; panggilan API lainnya akan menyebabkan pengecualian.
Keterangan
Jika panggilan ke IDirect3DDevice9Ex::ResetEx gagal, perangkat akan ditempatkan dalam status hilang (seperti yang ditunjukkan oleh nilai pengembalian D3DERR_DEVICELOST dari panggilan ke IDirect3DDevice9Ex::CheckDeviceState). Lihat IDirect3DDevice9Ex::CheckDeviceState dan Perubahan Perilaku Perangkat yang Hilang untuk informasi lebih lanjut mengenai penggunaan IDirect3DDevice9Ex::ResetEx dalam konteks perangkat yang hilang.
Tidak seperti versi DirectX sebelumnya, memanggil IDirect3DDevice9Ex::ResetEx tidak menyebabkan permukaan, tekstur, atau informasi status hilang.
Shader pixel dan shader vertex bertahan dari panggilan IDirect3DDevice9Ex::ResetEx untuk Direct3D 9. Mereka tidak perlu dibuat ulang secara eksplisit oleh aplikasi.
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 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.
Panggilan ke IDirect3DDevice9Ex::ResetEx akan gagal jika dipanggil pada utas yang berbeda dari yang digunakan untuk membuat perangkat yang direset.
D3DFMT_UNKNOWN dapat ditentukan untuk format buffer belakang mode berjendela saat memanggil IDirect3D9Ex::CreateDeviceEx, IDirect3DDevice9Ex::ResetEx, dan IDirect3DDevice9::CreateAdditionalSwapChain. Ini berarti aplikasi tidak harus mengkueri format desktop saat ini sebelum memanggil IDirect3D9Ex::CreateDeviceEx 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, IDirect3DDevice9Ex::ResetEx 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
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d9.h |
Pustaka | D3D9.lib |