IDXGIFactory2::CreateSwapChainForComposition 메서드(dxgi1_2.h)

Direct3D 콘텐츠를 DirectComposition API, Windows.UI.Xaml 프레임워크 또는 Windows UI라이브러리(WinUI) XAML로 보내 창에서 작성하는 데 사용할 수 있는 스왑 체인을 만듭니다.

구문

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

매개 변수

[in] pDevice

Direct3D 11 및 이전 버전의 Direct3D의 경우 스왑 체인용 Direct3D 디바이스에 대한 포인터입니다. Direct3D 12의 경우 직접 명령 큐에 대한 포인터입니다( ID3D12CommandQueue 참조). 이 매개 변수는 NULL일 수 없습니다. D3D_DRIVER_TYPE_REFERENCE 같은 소프트웨어 드라이버는 컴퍼지션 스왑 체인에 대해 지원되지 않습니다.

[in] pDesc

스왑 체인 설명에 대한 DXGI_SWAP_CHAIN_DESC1 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 없습니다.

CreateSwapChainForComposition대칭 이동 프레젠테이션 모델만 지원하므로 DXGI_SWAP_CHAIN_DESC1 SwapEffect 멤버에서 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL값을 지정해야 합니다.

또한 DXGI_SWAP_CHAIN_DESC1크기 조정 멤버에서 DXGI_SCALING_STRETCH 값을 지정해야 합니다.

[in, optional] pRestrictToOutput

콘텐츠를 제한할 출력의 IDXGIOutput 인터페이스에 대한 포인터입니다. 또한 IDXGISwapChain1::P resent1 호출에 DXGI_PRESENT_RESTRICT_TO_OUTPUT 플래그를 전달하여 콘텐츠가 다른 출력에 검은색으로 표시되도록 해야 합니다. 콘텐츠를 다른 출력으로 제한하려면 새 스왑 체인을 만들어야 합니다. 그러나 DXGI_PRESENT_RESTRICT_TO_OUTPUT 플래그에 따라 콘텐츠를 조건부로 제한할 수 있습니다.

콘텐츠를 출력 대상으로 제한하지 않으려면 이 매개 변수를 NULL 로 설정합니다.

[out] ppSwapChain

CreateSwapChainForComposition에서 만드는 스왑 체인에 대한 IDXGISwapChain1 인터페이스에 대한 포인터를 수신하는 변수에 대한 포인터입니다.

반환 값

CreateSwapChainForComposition 은 다음을 반환합니다.

  • 스왑 체인을 성공적으로 만들었는지 S_OK.
  • E_OUTOFMEMORY 메모리를 사용할 수 없는 경우 작업을 완료합니다.
  • 호출 애플리케이션이 잘못된 데이터를 제공한 경우(예: pDesc 또는 ppSwapChainNULL인 경우) DXGI_ERROR_INVALID_CALL.
  • pDevice에 전달하는 디바이스 유형으로 정의된 DXGI_ERROR 항목에 설명된 다른 오류 코드일 수 있습니다.

Windows 7용 플랫폼 업데이트: Windows 7용 플랫폼 업데이트가 설치된 Windows 7 또는 Windows Server 2008 R2에서는 CreateSwapChainForComposition 이 E_NOTIMPL 실패합니다. Windows 7용 플랫폼 업데이트에 대한 자세한 내용은 Windows 7용 플랫폼 업데이트를 참조하세요.

설명

컴퍼지션 스왑 체인은 다음 중 하나를 사용하여 사용할 수 있습니다.

DirectComposition의 경우 IDCompositionVisual::SetContent 메서드를 호출하여 스왑 체인을 시각적 개체의 콘텐츠로 설정한 다음 스왑 체인을 시각적 트리에 바인딩할 수 있습니다. XAML의 경우 SwapChainBackgroundPanel 클래스는 클래식 COM 인터페이스 ISwapChainBackgroundPanelNative을 노출합니다. ISwapChainBackgroundPanelNative::SetSwapChain 메서드를 사용하여 XAML UI 그래프에 바인딩할 수 있습니다. XAML의 SwapChainBackgroundPanel 클래스에서 컴퍼지션 스왑 체인을 사용하는 방법에 대한 자세한 내용은 DirectX 및 XAML interop을 참조하세요.

IDXGISwapChain::SetFullscreenState, IDXGISwapChain::ResizeTarget, IDXGISwapChain::GetContainingOutput, IDXGISwapChain1::GetHwndIDXGISwapChain::GetCoreWindow 메서드는 이 유형의 스왑 체인에서 유효하지 않습니다. 이러한 유형의 스왑 체인에서 이러한 메서드를 호출하면 실패합니다.

스왑 체인의 백 버퍼에 대한 형식을 선택하는 방법에 대한 자세한 내용은 색 공간에 대한 데이터 변환을 참조하세요.

예제

CreateSwapChainForComposition을 사용하는 방법을 보여 주는 코드 예제는 SwapChainPanel 및 게임을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dxgi1_2.h
라이브러리 Dxgi.lib

추가 정보