Metode IDirect3DDevice9Ex::P resentEx (d3d9.h)
Tukar buffer berikutnya swapchain dengan buffer depan.
Sintaks
HRESULT PresentEx(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
Parameter
[in] pSourceRect
Jenis: const RECT*
Penunjuk ke struktur RECT yang menunjukkan wilayah pada permukaan sumber untuk disalin dalam koordinat klien jendela. Hanya berlaku ketika swapchain dibuat dengan bendera D3DSWAPEFFECT_COPY . Jika NULL, seluruh permukaan sumber disajikan. Jika persegi panjang melebihi permukaan sumber, persegi panjang tersebut akan terpotong ke permukaan sumber.
[in] pDestRect
Jenis: const RECT*
Struktur Pointer to RECT yang menunjukkan wilayah target pada permukaan tujuan dalam koordinat klien jendela. Hanya berlaku ketika swapchain dibuat dengan bendera D3DSWAPEFFECT_COPY . Jika NULL, seluruh area klien diisi. Jika persegi melebihi area klien tujuan, persegi panjang akan dipotong ke area klien tujuan.
[in] hDestWindowOverride
Jenis: HWND
Penunjuk ke jendela tujuan yang area kliennya diambil sebagai target untuk presentasi ini. Jika nilai ini NULL, runtime menggunakan anggota hDeviceWindowdari D3DPRESENT_PARAMETERS untuk presentasi.
[in] pDirtyRegion
Jenis: const RGNDATA*
Penunjuk ke struktur RGNDATA yang menunjukkan set piksel terkecil yang perlu ditransfer. Nilai ini harus NULL kecuali swapchain dibuat dengan bendera D3DSWAPEFFECT_COPY . Untuk informasi selengkapnya tentang swapchain, lihat Membalik Permukaan (Direct3D 9).
Jika nilai ini non-NULL, wilayah yang terkandung dinyatakan dalam koordinat buffer belakang. Metode ini memperhitungkan persegi panjang ini saat mengoptimalkan presentasi dengan hanya menyalin piksel dalam wilayah, atau beberapa set persegi panjang yang diperluas yang sesuai. Ini adalah bantuan untuk pengoptimalan saja, dan aplikasi tidak boleh mengandalkan wilayah yang disalin dengan tepat. Implementasi dapat memilih untuk menyalin seluruh persegi panjang sumber.
[in] dwFlags
Jenis: DWORD
Memungkinkan aplikasi untuk meminta agar metode segera kembali ketika driver melaporkan bahwa ia tidak dapat menjadwalkan presentasi. Nilai yang valid adalah 0, atau kombinasi bendera D3DPRESENT apa pun.
- Jika dwFlags = 0, metode ini bereaksi seperti yang dilakukan sebelum Direct3D 9. Ada akan berputar sampai perangkat keras bebas, tanpa mengembalikan kesalahan.
- Jika dwFlags = D3DPRESENT_DONOTFLIP driver tampilan dipanggil dengan buffer depan sebagai permukaan sumber dan target. Driver merespons dengan menjadwalkan sinkronisasi bingkai, tetapi tidak mengubah permukaan yang ditampilkan. Bendera ini hanya tersedia dalam mode layar penuh atau saat menggunakan D3DSWAPEFFECT_FLIPEX dalam mode berjendela.
- Jika dwFlags = D3DPRESENT_DONOTWAIT, dan perangkat keras sibuk memproses atau menunggu interval sinkronisasi vertikal, metode akan mengembalikan D3DERR_WASSTILLDRAWING.
- Jika dwFlags = D3DPRESENT_FORCEIMMEDIATE, D3DPRESENT_INTERVAL_IMMEDIATE diberlakukan pada panggilan Saat ini. Bendera ini hanya dapat ditentukan saat menggunakan D3DSWAPEFFECT_FLIPEX. Perilaku ini sama untuk mode berjendela dan layar penuh.
- Jika dwFlags = D3DPRESENT_LINEAR_CONTENT, koreksi gamma dilakukan dari ruang linier ke sRGB untuk rantai pertukaran berjendela. Bendera ini hanya akan berlaku ketika driver mengekspos D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (lihat Gamma (Direct3D 9)).
Mengembalikan nilai
Jenis: HRESULT
Kemungkinan nilai yang dikembalikan meliputi: S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED, atau D3DERR_OUTOFVIDEOMEMORY (lihat D3DERR). Lihat Perubahan Perilaku Perangkat yang Hilang untuk informasi selengkapnya tentang perangkat yang hilang, digantung, dan dihapus.
Perbedaan antara Direct3D 9 dan Direct3D 9Ex: D3DSWAPEFFECT_FLIPEX hanya tersedia di Direct3D9Ex yang berjalan pada Windows 7 (atau lebih sistem operasi saat ini). |
Keterangan
Mirip dengan Metode IDirect3DDevice9::P resent , PresentEx menambahkan parameter dwflags.
Ketika swapchain dibuat dengan bendera D3DSWAPEFFECT_FLIPEX , nilai pSourceRect, pDestRect , dan pDirtyRegion harus diatur ke NULL.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d9.h |
Pustaka | D3D9.lib |