Bagikan melalui


enumerasi DXGI_SWAP_CHAIN_FLAG (dxgi.h)

Opsi untuk perilaku rantai pertukaran.

Sintaks

typedef enum DXGI_SWAP_CHAIN_FLAG {
  DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
  DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8,
  DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16,
  DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32,
  DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64,
  DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
  DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
  DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
  DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096
} ;

Konstanta

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Nilai: 1
Atur bendera ini untuk menonaktifkan rotasi gambar otomatis; yaitu, jangan melakukan rotasi saat mentransfer konten buffer depan ke monitor.
Gunakan bendera ini untuk menghindari penalti bandwidth ketika aplikasi mengharapkan untuk menangani rotasi. Opsi ini hanya valid selama mode layar penuh.
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Nilai: 2
Atur bendera ini untuk mengaktifkan aplikasi untuk beralih mode dengan memanggil IDXGISwapChain::ResizeTarget.
Saat beralih dari mode berjendela ke layar penuh, mode tampilan (atau resolusi monitor) akan diubah agar sesuai dengan dimensi jendela aplikasi.
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Nilai: 4
Atur bendera ini untuk memungkinkan aplikasi merender menggunakan GDI pada rantai pertukaran atau permukaan.
Ini akan memungkinkan aplikasi untuk memanggil IDXGISurface1::GetDC pada buffer belakang ke-0 atau permukaan.

Bendera ini tidak berlaku untuk Direct3D 12.
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Nilai: 8
Atur bendera ini untuk menunjukkan bahwa rantai pertukaran mungkin berisi konten yang dilindungi; oleh karena itu, sistem operasi mendukung pembuatan rantai pertukaran hanya ketika perlindungan driver dan perangkat keras digunakan. Jika driver dan perangkat keras tidak mendukung perlindungan konten, panggilan untuk membuat sumber daya untuk rantai pertukaran gagal.

Direct3D 11: Nilai enumerasi ini didukung dimulai dengan Windows 8.
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Nilai: 16
Atur bendera ini untuk menunjukkan bahwa sumber daya bersama yang dibuat dalam rantai pertukaran harus dilindungi dengan menggunakan mekanisme driver untuk membatasi akses ke permukaan bersama.

Direct3D 11: Nilai enumerasi ini didukung dimulai dengan Windows 8.
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Nilai: 32
Atur bendera ini untuk membatasi konten yang disajikan ke tampilan lokal. Oleh karena itu, konten yang disajikan tidak dapat diakses melalui akses jarak jauh atau melalui API duplikasi desktop.

Bendera ini mendukung fitur perlindungan konten jendela Windows. Aplikasi dapat menggunakan bendera ini untuk melindungi konten jendela di layar mereka sendiri agar tidak ditangkap atau disalin melalui serangkaian fitur dan API sistem operasi publik tertentu.

Jika Anda menggunakan rantai pertukaran bendera dengan windowed (HWND atau IWindow) di mana proses lain membuat HWND, pemilik HWND harus menggunakan fungsi SetWindowDisplayAffinity dengan tepat untuk memungkinkan panggilan ke IDXGISwapChain::P resent atau IDXGISwapChain1::P resent1 agar berhasil.


Direct3D 11: Nilai enumerasi ini didukung dimulai dengan Windows 8.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Nilai: 64
Atur bendera ini untuk membuat objek yang dapat ditunggu yang dapat Anda gunakan untuk memastikan penyajian tidak dimulai saat bingkai masih disajikan. Ketika bendera ini digunakan, latensi swapchain harus diatur dengan IDXGISwapChain2::SetMaximumFrameLatency API alih-alih IDXGIDevice1::SetMaximumFrameLatency.

Bendera ini tidak didukung dalam mode layar penuh, kecuali API render adalah Direct3D 12.

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Nilai: 128
Atur bendera ini untuk membuat rantai pertukaran di lapisan latar depan untuk penyajian multi-bidang. Bendera ini hanya dapat digunakan dengan rantai pertukaran CoreWindow , yang dibuat dengan CreateSwapChainForCoreWindow. Aplikasi tidak boleh membuat rantai pertukaran latar depan jika IDXGIOutput2::SupportsOverlays menunjukkan bahwa dukungan perangkat keras untuk overlay tidak tersedia.

Perhatikan bahwa IDXGISwapChain::ResizeBuffers tidak dapat digunakan untuk menambahkan atau menghapus bendera ini.

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Nilai: 256
Atur bendera ini untuk membuat rantai pertukaran untuk video layar penuh.

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Nilai: 512
Atur bendera ini untuk membuat rantai pertukaran untuk video YUV.

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Nilai: 1024
Menunjukkan bahwa rantai pertukaran harus dibuat sedih sehingga semua sumber daya yang mendasar dapat dilindungi oleh perangkat keras. Pembuatan sumber daya akan gagal jika perlindungan konten perangkat keras tidak didukung.

Bendera ini memiliki batasan berikut:


  • Bendera ini hanya dapat digunakan dengan efek pertukaran DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL.


Catatan Membuat rantai pertukaran menggunakan bendera ini tidak secara otomatis menjamin bahwa perlindungan perangkat keras akan diaktifkan untuk alokasi yang mendasar. Beberapa implementasi mengharuskan komponen DRM diinisialisasi terlebih dahulu sebelum jaminan perlindungan.

 

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 10.
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Nilai: 2048
Dukungan merobek adalah persyaratan untuk mengaktifkan tampilan yang mendukung kecepatan refresh variabel agar berfungsi dengan baik ketika aplikasi menyajikan rantai pertukaran yang terkait dengan jendela tanpa batas layar penuh. Aplikasi Win32 sudah dapat mencapai robek dalam mode eksklusif layar penuh dengan memanggil SetFullscreenState(TRUE), tetapi pendekatan yang disarankan untuk pengembang Win32 adalah menggunakan bendera merobek ini sebagai gantinya. Bendera ini memerlukan penggunaan efek pertukaran DXGI_SWAP_EFFECT_FLIP_* .

Untuk memeriksa dukungan perangkat keras fitur ini, lihat IDXGIFactory5::CheckFeatureSupport. Untuk informasi penggunaan, lihat IDXGISwapChain::P resent dan bendera DXGI_PRESENT .

CATATAN

IDXGISwapChain::ResizeBuffers tidak dapat digunakan untuk menambahkan atau menghapus bendera ini.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Nilai: 4096

Keterangan

Enumerasi ini digunakan oleh struktur DXGI_SWAP_CHAIN_DESC dan metode IDXGISwapChain::ResizeTarget .

Enumerasi ini juga digunakan oleh struktur DXGI_SWAP_CHAIN_DESC1 .

Anda tidak perlu mengatur DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY untuk rantai pertukaran yang Anda buat dalam mode layar penuh dengan metode IDXGIFactory::CreateSwapChain karena rantai pertukaran tersebut sudah berperilaku seolah-olah DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY diatur. Artinya, konten yang disajikan tidak dapat diakses oleh akses jarak jauh atau melalui API duplikasi desktop.

Rantai pertukaran yang Anda buat dengan METODE IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow, dan IDXGIFactory2::CreateSwapChainForComposition tidak dilindungi jika DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY tidak diatur dan dilindungi jika DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY ditetapkan. Saat rantai pertukaran dilindungi, pengikisan layar dicegah dan, dalam mode layar penuh, konten yang disajikan tidak dapat diakses melalui API duplikasi desktop.

Saat Anda memanggil IDXGISwapChain::ResizeBuffers untuk mengubah buffer kembali rantai pertukaran, Anda dapat mengatur ulang atau mengubah semua bendera DXGI_SWAP_CHAIN_FLAG .

Persyaratan

Persyaratan Nilai
Header dxgi.h

Lihat juga

Enumerasi DXGI