IDXGIFactory2::CreateSwapChainForComposition method (dxgi1_2.h)

Membuat rantai pertukaran yang dapat Anda gunakan untuk mengirim konten Direct3D ke API DirectComposition , ke kerangka kerja Windows.UI.Xaml , atau ke Windows UI Library (WinUI) XAML, untuk menyusun di jendela.

Sintaks

HRESULT CreateSwapChainForComposition(
  [in]           IUnknown                    *pDevice,
  [in]           const DXGI_SWAP_CHAIN_DESC1 *pDesc,
  [in, optional] IDXGIOutput                 *pRestrictToOutput,
  [out]          IDXGISwapChain1             **ppSwapChain
);

Parameter

[in] pDevice

Untuk Direct3D 11, dan versi Direct3D yang lebih lama, ini adalah penunjuk ke perangkat Direct3D untuk rantai pertukaran. Untuk Direct3D 12 ini adalah penunjuk ke antrean perintah langsung (lihat ID3D12CommandQueue). Parameter ini tidak boleh NULL. Driver perangkat lunak, seperti D3D_DRIVER_TYPE_REFERENCE, tidak didukung untuk rantai pertukaran komposisi.

[in] pDesc

Penunjuk ke struktur DXGI_SWAP_CHAIN_DESC1 untuk deskripsi rantai pertukaran. Parameter ini tidak boleh NULL.

Anda harus menentukan nilai DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL di anggota SwapEffectDXGI_SWAP_CHAIN_DESC1 karena CreateSwapChainForComposition hanya mendukung model presentasi balik.

Anda juga harus menentukan nilai DXGI_SCALING_STRETCH di anggota penskalaanDXGI_SWAP_CHAIN_DESC1.

[in, optional] pRestrictToOutput

Penunjuk ke antarmuka IDXGIOutput untuk output yang membatasi konten. Anda juga harus meneruskan bendera DXGI_PRESENT_RESTRICT_TO_OUTPUT dalam panggilan IDXGISwapChain1::P resent1 untuk memaksa konten tampak pingsan pada output lain. Jika Anda ingin membatasi konten ke output yang berbeda, Anda harus membuat rantai pertukaran baru. Namun, Anda dapat membatasi konten secara kondisional berdasarkan bendera DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Atur parameter ini ke NULL jika Anda tidak ingin membatasi konten ke target output.

[out] ppSwapChain

Pointer ke variabel yang menerima pointer ke antarmuka IDXGISwapChain1 untuk rantai pertukaran yang dibuat CreateSwapChainForComposition .

Mengembalikan nilai

CreateSwapChainForComposition mengembalikan:

  • S_OK jika berhasil membuat rantai pertukaran.
  • E_OUTOFMEMORY jika memori tidak tersedia untuk menyelesaikan operasi.
  • DXGI_ERROR_INVALID_CALL jika aplikasi panggilan menyediakan data yang tidak valid, misalnya, jika pDesc atau ppSwapChain adalah NULL.
  • Mungkin kode kesalahan lain yang dijelaskan dalam topik DXGI_ERROR yang ditentukan oleh jenis perangkat yang Anda berikan ke pDevice.

Pembaruan Platform untuk Windows 7: Pada Windows 7 atau Windows Server 2008 R2 dengan Pembaruan Platform untuk Windows 7 diinstal, CreateSwapChainForComposition gagal dengan E_NOTIMPL. Untuk informasi selengkapnya tentang Pembaruan Platform untuk Windows 7, lihat Pembaruan Platform untuk Windows 7.

Keterangan

Anda dapat menggunakan rantai pertukaran komposisi dengan:

Untuk DirectComposition, Anda dapat memanggil metode IDCompositionVisual::SetContent untuk mengatur rantai pertukaran sebagai konten objek visual, yang kemudian memungkinkan Anda untuk mengikat rantai pertukaran ke pohon visual. Untuk XAML, kelas SwapChainBackgroundPanel mengekspos antarmuka COM klasik ISwapChainBackgroundPanelNative. Anda dapat menggunakan metode ISwapChainBackgroundPanelNative::SetSwapChain untuk mengikat grafik UI XAML. Untuk informasi tentang cara menggunakan rantai pertukaran komposisi dengan kelas SwapChainBackgroundPanel XAML, lihat Interop DirectX dan XAML.

Metode IDXGISwapChain::SetFullscreenState, IDXGISwapChain::ResizeTarget, IDXGISwapChain::GetContainingOutput, IDXGISwapChain1::GetHwnd, dan IDXGISwapChain::GetCoreWindow tidak valid pada jenis rantai pertukaran ini. Jika Anda memanggil salah satu metode ini pada jenis rantai pertukaran ini, metode tersebut gagal.

Untuk informasi tentang cara memilih format untuk buffer belakang rantai pertukaran, lihat Mengonversi data untuk ruang warna.

Contoh

Untuk contoh kode yang menunjukkan cara menggunakan CreateSwapChainForComposition, lihat SwapChainPanel dan game.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 dan Pembaruan Platform untuk Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header dxgi1_2.h
Pustaka Dxgi.lib

Lihat juga