D3DPRESENT

Menjelaskan hubungan antara laju refresh adaptor dan laju di mana operasi Present atau Present selesai. Nilai-nilai ini juga berfungsi sebagai nilai bendera untuk bidang PresentationIntervals D3DCAPS9.

Terus-menerus Deskripsi
D3DPRESENT_DONOTFLIP
Gunakan buffer depan sebagai permukaan sumber dan target selama penyajian. Sinkronisasi bingkai dijadwalkan tetapi permukaan yang ditampilkan tidak berubah. Bendera ini hanya tersedia ketika aplikasi dalam mode layar penuh dan D3DSWAPEFFECT_FLIPEX telah ditentukan.
Bendera ini hanya tersedia di Direct3D 9Ex.
D3DPRESENT_DONOTWAIT
Presentasi tidak dapat dijadwalkan oleh perangkat hal. Jika bendera ini diatur dalam panggilan ke Ada, dan perangkat keras sibuk memproses atau menunggu interval sinkronisasi vertikal, maka Ada akan mengembalikan D3DERR_WASSTILLDRAWING untuk menunjukkan bahwa operasi blit tidak lengkap.
D3DPRESENT_FLIPRESTART
Dicadangkan.
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE diberlakukan pada panggilan Saat ini. Bendera ini hanya dapat ditentukan saat menggunakan D3DSWAPEFFECT_FLIPEX. Perilaku presentasi berjendela dan layar penuh sama. Ini sangat berguna untuk aplikasi media yang ingin membuang bingkai yang telah terdeteksi terlambat dan menyajikan bingkai berikutnya pada waktu komposisi. Kesalahan parameter yang tidak valid akan dikembalikan jika bendera ini ditentukan secara tidak benar. Ketika beberapa bingkai berturut-turut dengan D3DPRESENT_FORCEIMMEDIATEs diantrekan, hanya bingkai terakhir yang ditampilkan, untuk presentasi berjendela dan layar penuh.
Bendera ini tersedia di Direct3D 9Ex pada sistem operasi Windows 7 atau yang lebih baru.
Saat menggunakan D3DSWAPEFFECT_FLIPEX, setiap bingkai yang disajikan menggunakan D3DPRESENT_INTERVAL_IMMEDIATE atau D3DPRESENT_INTERVAL_FORCEIMMEDIATE akan menggantikan interval bingkai sebelumnya yang ada. Misalnya, jika Anda mengantre bingkai berikut menggunakan efek pertukaran berikut: bingkai A (D3DPRESENT_INTERVAL_ONE), bingkai B(D3DPRESENT_INTERVAL_ONE), bingkai C(D3DPRESENT_INTERVAL_ONE), bingkai D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE), bingkai D akan menimpa interval bingkai C saat ini. Bingkai yang ditampilkan per interval saat ini adalah bingkai A, bingkai B, (bingkai C ditimpa oleh) bingkai D.
Lihat Keterangan.
D3DPRESENT_INTERVAL_DEFAULT
Ini hampir setara dengan D3DPRESENT_INTERVAL_ONE. Lihat komentar.
D3DPRESENT_INTERVAL_ONE
Driver akan menunggu periode pelacakan ulang vertikal (runtime akan "mengikuti sinar" untuk mencegah sobek). Operasi yang ada tidak akan terpengaruh lebih sering daripada refresh layar; runtime akan selesai paling banyak satu operasi Present per periode refresh adaptor. Ini setara dengan menggunakan D3DSWAPEFFECT_COPYVSYNC di DirectX 8.1. Opsi ini selalu tersedia untuk rantai pertukaran berjendela dan layar penuh. Lihat komentar.
D3DPRESENT_INTERVAL_TWO
Driver akan menunggu periode pelacakan ulang vertikal. Operasi yang ada tidak akan terpengaruh lebih sering daripada setiap refresh layar kedua. Periksa batas PresentationIntervals (lihat D3DCAPS9) untuk melihat apakah D3DPRESENT_INTERVAL_TWO didukung oleh driver.
D3DPRESENT_INTERVAL_THREE
Driver akan menunggu periode pelacakan ulang vertikal. Operasi yang ada tidak akan terpengaruh lebih sering daripada setiap refresh layar ketiga. Periksa batas PresentationIntervals (lihat D3DCAPS9) untuk melihat apakah D3DPRESENT_INTERVAL_THREE didukung oleh driver.
D3DPRESENT_INTERVAL_FOUR
Driver akan menunggu periode pelacakan ulang vertikal. Operasi yang ada tidak akan terpengaruh lebih sering daripada setiap refresh layar keempat. Periksa anggota PresentationIntervals (lihat D3DCAPS9) untuk melihat apakah D3DPRESENT_INTERVAL_FOUR didukung oleh driver.
D3DPRESENT_INTERVAL_IMMEDIATE
Runtime segera memperbarui area klien jendela dan mungkin melakukannya lebih dari sekali selama periode refresh adaptor. Ini setara dengan menggunakan D3DSWAPEFFECT_COPY di DirectX 8. Operasi saat ini mungkin segera terpengaruh. Opsi ini selalu tersedia untuk rantai pertukaran berjendela dan layar penuh. Lihat komentar.
D3DPRESENT_LINEAR_CONTENT
Konten buffer belakang yang akan disajikan ada di ruang warna linier.
  • Presentasi akan secara implisit mengonversi dari ruang linier ke sRGB (gamma = 2.2). Ini adalah satu-satunya konversi yang didukung.
  • Karena bendera ini mewakili properti konten buffer belakang, bendera dapat ditentukan selama panggilan Sajikan . Dengan kata lain, aplikasi dapat menyajikan konten linier dalam satu bingkai, lalu beralih ke konten yang dikoreksi di bingkai berikutnya.
  • Bendera ini diabaikan ketika rantai pertukaran adalah layar penuh. (Perhatikan bahwa bendera ini hanya tersedia pada versi rantai pertukaran eksplisit dari Present. Metode Sajikan tidak mengambil parameter bendera.)
  • Bendera ini selalu diterima, tetapi hanya akan berlaku ketika driver mengekspos >D3DCAPS3_LINEAR_TO_SRGB_PresentATION.
  • Satu-satunya format buffer belakang yang didukung adalah X8R8G8B8.
Lihat Rantai Pertukaran Berjendela.
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
Klip konten yang dirender ke monitor/perangkat yang ditargetkan adaptor, memperlihatkan gambar mini untuk konten dalam tampilan Flip3D dan gambar mini taskbar pada monitor lain.
Bendera ini hanya tersedia di Direct3D 9Ex.
Lihat Desktop Window Manager untuk detail lebih lanjut tentang fitur Windows Vista ini. Jika Anda tidak berjalan dalam mode komposisi desktop, bendera memberikan perilaku yang sama dengan D3DPRESENTFLAG_DEVICECLIP.
Catatan: Bendera ini hanya boleh digunakan dengan efek pertukaran D3DSWAPEFFECT_FLIPEX. Penggunaan bendera ini dengan efek pertukaran lainnya tidak digunakan lagi, dan mungkin tidak berfungsi di versi Windows yang akan datang.
D3DPRESENT_UPDATEOVERLAYONLY
Updates posisi overlay atau data colorkey tanpa menyebabkan flip aktual dan tanpa mengubah durasi gambar ditampilkan.
Bendera ini hanya tersedia di Direct3D 9Ex.
D3DPRESENT_HIDEOVERLAY
Mematikan perangkat keras overlay.
Bendera ini hanya tersedia di Direct3D 9Ex.
D3DPRESENT_UPDATECOLORKEY
Menggambar ulang data colorkey.
Bendera ini hanya tersedia di Direct3D 9Ex.

Keterangan

Mode berjendela mendukung D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE, dan D3DPRESENT_INTERVAL_ONE. D3DPRESENT_INTERVAL_DEFAULT dan D3DPRESENT_INTERVAL_ONE hampir setara (lihat informasi mengenai resolusi timer di bawah). Performanya mirip dengan COPY_VSYNC karena hanya ada satu hadir per bingkai, dan mereka mencegah merobek dengan beam-following. Sebaliknya, D3DPRESENT_INTERVAL_IMMEDIATE akan mencoba memberikan tingkat presentasi tanpa batas.

Mode layar penuh mendukung penggunaan serupa sebagai mode berjendela dengan mendukung D3DPRESENT_INTERVAL_IMMEDIATE terlepas dari kecepatan refresh atau efek pertukaran. D3DPRESENT_INTERVAL_DEFAULT menggunakan resolusi timer sistem default sedangkan D3DPRESENT_INTERVAL_ONE memanggil timeBeginPeriod untuk meningkatkan resolusi timer sistem. Ini meningkatkan kualitas sinkronisasi vertikal, tetapi mengkonsumsi sedikit lebih banyak waktu pemrosesan. Kedua parameter mencoba menyinkronkan secara vertikal.

Persyaratan

Persyaratan Nilai
Header
D3d9.h

Lihat juga

Konstanta Direct3D