IDXGIFactory2::CreateSwapChainForComposition-Methode (dxgi1_2.h)

Erstellt eine Swapchain, die Sie verwenden können, um Direct3D-Inhalte an die DirectComposition-API , an das Windows.UI.Xaml-Framework oder an windows UI Library (WinUI) XAML zu senden, um in einem Fenster zu verfassen.

Syntax

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

Parameter

[in] pDevice

Für Direct3D 11 und frühere Versionen von Direct3D ist dies ein Zeiger auf das Direct3D-Gerät für die Swapchain. Für Direct3D 12 ist dies ein Zeiger auf eine direkte Befehlswarteschlange (siehe ID3D12CommandQueue). Dieser Parameter darf nicht NULL sein. Softwaretreiber wie D3D_DRIVER_TYPE_REFERENCE werden für Kompositions-Swapchains nicht unterstützt.

[in] pDesc

Ein Zeiger auf eine DXGI_SWAP_CHAIN_DESC1-Struktur für die Swapchainbeschreibung. Dieser Parameter darf nicht NULL sein.

Sie müssen den DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL-Wert im SwapEffect-Element von DXGI_SWAP_CHAIN_DESC1 angeben, da CreateSwapChainForComposition nur das Flip-Präsentationsmodell unterstützt.

Sie müssen auch den DXGI_SCALING_STRETCH Wert im Skalierungselement von DXGI_SWAP_CHAIN_DESC1 angeben.

[in, optional] pRestrictToOutput

Ein Zeiger auf die IDXGIOutput-Schnittstelle für die Ausgabe, auf die Inhalte beschränkt werden sollen. Sie müssen auch das DXGI_PRESENT_RESTRICT_TO_OUTPUT-Flag in einem IDXGISwapChain1::P resent1-Aufruf übergeben, um zu erzwingen, dass der Inhalt in jeder anderen Ausgabe schwarz angezeigt wird. Wenn Sie den Inhalt auf eine andere Ausgabe beschränken möchten, müssen Sie eine neue Swapchain erstellen. Sie können Inhalte jedoch basierend auf dem flag DXGI_PRESENT_RESTRICT_TO_OUTPUT bedingt einschränken.

Legen Sie diesen Parameter auf NULL fest, wenn Sie den Inhalt nicht auf ein Ausgabeziel beschränken möchten.

[out] ppSwapChain

Ein Zeiger auf eine Variable, die einen Zeiger auf die IDXGISwapChain1-Schnittstelle für die Von CreateSwapChainForComposition erstellte Swapchain empfängt .

Rückgabewert

CreateSwapChainForComposition gibt Folgendes zurück:

  • S_OK, wenn eine Swapchain erfolgreich erstellt wurde.
  • E_OUTOFMEMORY, wenn kein Arbeitsspeicher verfügbar ist, um den Vorgang abzuschließen.
  • DXGI_ERROR_INVALID_CALL , wenn die aufrufende Anwendung ungültige Daten bereitgestellt hat, z. B. wenn pDesc oder ppSwapChainNULL ist.
  • Möglicherweise weitere Fehlercodes, die im Thema DXGI_ERROR beschrieben werden, die durch den Gerätetyp definiert sind, den Sie an pDevice übergeben.

Plattformupdate für Windows 7: Unter Windows 7 oder Windows Server 2008 R2 mit installiertem Plattformupdate für Windows 7 schlägt CreateSwapChainForComposition mit E_NOTIMPL fehl. Weitere Informationen zum Plattformupdate für Windows 7 finden Sie unter Plattformupdate für Windows 7.

Hinweise

Sie können Kompositions-Swapchains mit einer der folgenden Optionen verwenden:

Für DirectComposition können Sie die IDCompositionVisual::SetContent-Methode aufrufen, um die Swapchain als Inhalt eines visuellen Objekts festzulegen. Dadurch können Sie die Swapchain an die visuelle Struktur binden. Für XAML macht die SwapChainBackgroundPanel-Klasse die klassische COM-Schnittstelle ISwapChainBackgroundPanelNative verfügbar. Sie können die ISwapChainBackgroundPanelNative::SetSwapChain-Methode verwenden, um eine Bindung an das XAML-UI-Diagramm zu erstellen. Informationen zur Verwendung von Kompositions-Swapchain mit der SwapChainBackgroundPanel-Klasse von XAML finden Sie unter DirectX- und XAML-Interoperabilität.

Die Methoden IDXGISwapChain::SetFullscreenState, IDXGISwapChain::ResizeTarget, IDXGISwapChain::GetContainingOutput, IDXGISwapChain1::GetHwnd und IDXGISwapChain::GetCoreWindow sind für diesen Typ der Swapchain ungültig. Wenn Sie eine dieser Methoden für diesen Swapchaintyp aufrufen, schlagen sie fehl.

Informationen zum Auswählen eines Formats für den Rückpuffer der Swapchain finden Sie unter Konvertieren von Daten für den Farbraum.

Beispiele

Ein Codebeispiel zur Verwendung von CreateSwapChainForComposition finden Sie unter SwapChainPanel und Gaming.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile dxgi1_2.h
Bibliothek Dxgi.lib

Weitere Informationen