IDXGISwapChain::SetFullscreenState 메서드(dxgi.h)
표시 상태를 창 또는 전체 화면으로 설정합니다.
구문
HRESULT SetFullscreenState(
BOOL Fullscreen,
IDXGIOutput *pTarget
);
매개 변수
Fullscreen
형식: BOOL
표시 상태를 창 또는 전체 화면으로 설정할지 여부를 지정하는 부울 값입니다. 전체 화면의 경우 TRUE, 창의 경우 FALSE입니다.
pTarget
형식: [in, optional] IDXGIOutput*
전체 화면 매개 변수에 TRUE를 전달하여 표시 상태를 전체 화면으로 설정하는 경우 필요에 따라 이 매개 변수를 스왑 체인이 포함된 출력 대상의 IDXGIOutput 인터페이스에 대한 포인터로 설정할 수 있습니다. 이 매개 변수를 NULL로 설정하면 DXGI는 스왑 체인의 디바이스 및 출력 창의 배치에 따라 출력을 선택합니다. 전체 화면에FALSE를 전달하는 경우 이 매개 변수를 NULL로 설정해야 합니다.
반환 값
형식: HRESULT
이 메서드는 이러한 값 중 하나를 반환합니다.
- 작업이 성공하고 스왑 체인이 요청된 상태로 배치되었는지 S_OK.
- 작업이 실패하면 DXGI_ERROR_NOT_CURRENTLY_AVAILABLE. 이 오류가 반환되면 애플리케이션이 창 모드에서 계속 실행되고 나중에 전체 화면 모드로 전환할 수 있습니다. 창 모드 스왑 체인이 전체 화면 모드로 전환할 수 없는 데는 여러 가지 이유가 있습니다. 다음은 몇 가지 예제입니다.
- 애플리케이션이 터미널 서버를 통해 실행 중입니다.
- 출력 창이 차단됩니다.
- 출력 창에 키보드 포커스가 없습니다.
- 다른 애플리케이션이 이미 전체 화면 모드에 있습니다.
- 이 API가 호출될 때 전체 화면/창 모드 전환이 발생하는 경우 DXGI_STATUS_MODE_CHANGE_IN_PROGRESS 반환됩니다.
- 메모리가 부족하거나 다른 예기치 않은 오류가 발생하는 경우 다른 오류 코드; 이러한 코드는 지속 불가능한 하드 오류로 처리될 수 있습니다.
설명
DXGI는 최종 사용자 또는 시스템 요청에 대한 응답으로 스왑 체인의 표시 상태를 변경할 수 있습니다.
창이 있는 스왑 체인을 만들고 최종 사용자가 SetFullscreenState를 통해 스왑 체인을 전체 화면으로 변경할 수 있도록 하는 것이 좋습니다. 즉, 스왑 체인이 전체 화면이 되도록 DXGI_SWAP_CHAIN_DESCWindowed 멤버를 FALSE로 설정하지 마세요. 그러나 스왑 체인을 전체 화면으로 만드는 경우 지원되지 않는 디스플레이 모드로 만든 스왑 체인으로 인해 디스플레이가 검은색으로 표시되고 최종 사용자가 아무것도 표시되지 않을 수 있으므로 최종 사용자에게 지원되는 디스플레이 모드 목록을 제공합니다. 또한 최종 사용자가 표시 모드를 변경할 수 있도록 허용하는 경우 시간 제한 확인 화면 또는 기타 대체 메커니즘이 있는 것이 좋습니다.
Windows 스토어 앱에 대한 참고 사항
Windows 스토어 앱이 SetFullscreenState 를 호출하여 디스플레이 상태를 전체 화면으로 설정하면 SetFullscreenState 가 DXGI_ERROR_NOT_CURRENTLY_AVAILABLE 함께 실패합니다.IDXGIFactory2::CreateSwapChainForComposition으로 만든 스왑 체인에서는 SetFullscreenState를 호출할 수 없습니다.
대칭 이동 프레젠테이션 모델의 경우 디스플레이 상태를 전체 화면으로 전환한 후 ResizeBuffers를 호출하여 IDXGISwapChain1::P resent1에 대한 호출이 성공하는지 확인해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | dxgi.h |
라이브러리 | DXGI.lib |