METODE IDXGISwapChain::P resent (dxgi.h)
Menyajikan gambar yang dirender kepada pengguna.
Sintaks
HRESULT Present(
UINT SyncInterval,
UINT Flags
);
Parameter
SyncInterval
Jenis: UINT
Bilangan bulat yang menentukan cara menyinkronkan presentasi bingkai dengan kosong vertikal.
Untuk model transfer blok bit (bitblt) (DXGI_SWAP_EFFECT_DISCARD atau DXGI_SWAP_EFFECT_SEQUENTIAL), nilainya adalah:
- 0 - Presentasi segera terjadi, tidak ada sinkronisasi.
- 1 sampai 4 - Sinkronkan presentasi setelah kosong vertikal ke-n.
- 0 - Batalkan sisa waktu pada bingkai yang disajikan sebelumnya dan buang bingkai ini jika bingkai yang lebih baru diantrekan.
- 1 sampai 4 - Sinkronkan presentasi untuk setidaknya n kosong vertikal.
Jika wilayah pembaruan menyimpan lebih dari satu output (masing-masing diwakili oleh IDXGIOutput), Present melakukan sinkronisasi ke output yang berisi sub-persegi terbesar dari area klien jendela target.
Flags
Jenis: UINT
Nilai bilangan bulat yang berisi opsi presentasi rantai pertukaran. Opsi ini ditentukan oleh konstanta DXGI_PRESENT .
Nilai kembali
Jenis: HRESULT
Nilai yang mungkin dikembalikan meliputi: S_OK, DXGI_ERROR_DEVICE_RESET, atau DXGI_ERROR_DEVICE_REMOVED (lihat DXGI_ERROR), DXGI_STATUS_OCCLUDED (lihat DXGI_STATUS), atau D3DDDIERR_DEVICEREMOVED.
Keterangan
Dimulai dengan Direct3D 11.1, pertimbangkan untuk menggunakan IDXGISwapChain1::P resent1 karena Anda kemudian dapat menggunakan persegi panjang kotor dan persegi panjang gulir dalam presentasi rantai pertukaran dan karenanya gunakan bandwidth memori yang lebih sedikit dan akibatnya lebih sedikit daya sistem. Untuk informasi selengkapnya tentang menggunakan persegi panjang kotor dan persegi panjang gulir dalam presentasi rantai pertukaran, lihat Menggunakan persegi panjang kotor dan persegi panjang gulir dalam presentasi rantai pertukaran.
Untuk performa terbaik saat membalik buffer swap-chain dalam aplikasi layar penuh, lihat Petunjuk Performa Aplikasi Layar Penuh.
Karena memanggil Ada dapat menyebabkan utas render menunggu pada utas pompa pesan, berhati-hatilah saat memanggil metode ini dalam aplikasi yang menggunakan beberapa utas. Untuk detail selengkapnya, lihat Pertimbangan Multithreading.
Perbedaan antara Direct3D 9 dan Direct3D 10: Menentukan DXGI_PRESENT_TEST dalam parameter Bendera dianalogikan dengan IDirect3DDevice9::TestCooperativeLevel di Direct3D 9. |
Untuk membalik rantai pertukaran model presentasi yang Anda buat dengan kumpulan nilai DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL atau DXGI_SWAP_EFFECT_DISCARD , presentasi yang berhasil membuka kembali buffer 0 (biasanya diatur oleh OMSetRenderTargets) dari alur grafis, kecuali saat Anda meneruskan bendera DXGI_PRESENT_DO_NOT_SEQUENCE di parameter Bendera .
Untuk informasi tentang bagaimana nilai data berubah saat Anda menyajikan konten ke layar, lihat Mengonversi data untuk ruang warna.
Balik antrean model presentasi
Misalkan bingkai berikut dengan nilai interval sinkronisasi diantrekan dari yang terlama (A) ke terbaru (E) sebelum Anda memanggil Sajikan.A: 3, B: 0, C: 0, D: 1, E: 0
Saat Anda memanggil Ada, runtime memperlihatkan bingkai A hanya untuk 1 interval kosong vertikal. Runtime menghentikan bingkai A lebih awal karena interval sinkronisasi 0 di bingkai B. Kemudian runtime memperlihatkan bingkai D untuk 1 interval kosong vertikal, lalu bingkai E hingga Anda mengirimkan presentasi baru. Runtime membuang bingkai B dan C.
Laju refresh variabel ditampilkan
Ini adalah persyaratan laju refresh variabel yang menampilkan bahwa merobek diaktifkan. Metode CheckFeatureSupport dapat digunakan untuk menentukan apakah fitur ini tersedia, dan untuk mengatur bendera yang diperlukan, lihat deskripsi DXGI_PRESENT_ALLOW_TEARING dan DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING, dan Tampilan laju refresh variabel.Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | dxgi.h |
Pustaka | DXGI.lib |