Bagikan melalui


Metode ISwapChainPanelNative2::SetSwapChainHandle (windows.ui.xaml.media.dxinterop.h)

Mengatur rantai pertukaran DirectX untuk SwapChainPanel menggunakan handel ke rantai pertukaran.

Sintaks

HRESULT SetSwapChainHandle(
  [in] HANDLE swapChainHandle
);

Parameter

[in] swapChainHandle

Handel bersama ke rantai pertukaran.

Nilai kembali

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

SetSwapChain(HANDLE swapChainHandle) memungkinkan rantai pertukaran dirender dengan mereferensikan handel bersama ke rantai pertukaran.
Ini memungkinkan skenario di mana rantai pertukaran dibuat dalam satu proses dan perlu diteruskan ke proses lain.

XAML mendukung pengaturan rantai pertukaran DXGI sebagai konten elemen SwapChainPanel. Aplikasi menyelesaikan ini dengan mengkueri antarmuka ISwapChainPanelNative dari instans SwapChainPanel dan memanggil SetSwapChain (IDXGISwapChain *swapChain).

Proses ini berfungsi untuk pointer ke dalam rantai pertukaran proses. Namun, ini tidak berfungsi untuk aplikasi VoIP, yang menggunakan model dua proses untuk memungkinkan panggilan berkelanjutan pada proses latar belakang ketika proses latar depan ditangguhkan atau dimatikan. Implementasi dua proses ini membutuhkan kemampuan untuk meneruskan handel bersama ke rantai pertukaran, bukan penunjuk, yang dibuat pada proses latar belakang ke proses latar depan untuk dirender dalam XAML SwapChainPanel di aplikasi latar depan.


<!-- XAML markup --> 
<Page> 
 <SwapChainPanel x:Name=”captureStreamDisplayPanel” /> 
</Page> 


// Definitions 
ComPtr<IDXGISwapChain1> m_swapChain; 
HANDLE m_swapChainHandle; 
ComPtr<ID3D11Device> m_d3dDevice; 
ComPtr<IDXGIAdapter> dxgiAdapter; 
ComPtr<IDXGIFactory2> dxgiFactory; 
ComPtr<IDXGIFactoryMedia> dxgiFactoryMedia; 
ComPtr<IDXGIDevice> dxgiDevice; 
DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0}; 


// Get DXGI factory (assume standard boilerplate has created D3D11Device) 
m_d3dDevice.As(&dxgiDevice); 
dxgiDevice->GetAdapter(&dxgiAdapter); 
dxgiAdapter->GetParent(__uuidof(IDXGIFactory2), &dxgiFactory); 

// Create swap chain and get handle 
DCompositionCreateSurfaceHandle(GENERIC_ALL, nullptr, &m_swapChainHandle); 
dxgiFactory.As(&dxgiFactoryMedia); 
dxgiFactoryMedia->CreateSwapChainForCompositionSurfaceHandle( 
  m_d3dDevice.Get(), 
  m_swapChainHandle, 
  &swapChainDesc, 
  nullptr, 
  &m_swapChain 
); 

// Set swap chain to display in a SwapChainPanel 
ComPtr<ISwapChainPanelNative2> panelNative; 
reinterpret_cast<IUnknown*>(captureStreamDisplayPanel)->QueryInterface(IID_PPV_ARGS(&panelNative))); 
panelNative->SetSwapChainHandle(m_swapChainHandle); 
	

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header windows.ui.xaml.media.dxinterop.h
DLL Windows.UI.Xaml.dll

Lihat juga

ISwapChainPanelNative2