Bagikan melalui


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.
Untuk model balik (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), nilainya adalah:
  • 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.
Untuk contoh yang memperlihatkan bagaimana nilai interval sinkronisasi memengaruhi antrean presentasi balik, lihat Keterangan.

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.

Catatan Metode Sajikan dapat mengembalikan DXGI_ERROR_DEVICE_REMOVED atau D3DDDIERR_DEVICEREMOVED jika kartu video telah dihapus secara fisik dari komputer, atau peningkatan driver untuk kartu video telah terjadi.
 

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

Lihat juga

IDXGISwapChain