IDXGIOutput5::D uplicateOutput1 메서드(dxgi1_5.h)

IDXGIOutputDuplication 개체에서 반환할 수 있는 전체 화면 화면에 지원되는 형식 목록을 지정할 수 있습니다.

구문

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

매개 변수

[in] pDevice

형식: IUnknown*

데스크톱 이미지를 처리하는 데 사용할 수 있는 Direct3D 디바이스 인터페이스에 대한 포인터입니다. 이 디바이스는 출력이 연결된 어댑터에서 만들어야 합니다.

Flags

형식: UINT

나중에 사용하도록 예약되어 있습니다. 0이어야 합니다.

[in] SupportedFormatsCount

형식: UINT

지원되는 형식의 수를 지정합니다.

[in] pSupportedFormats

형식: const DXGI_FORMAT*

DXGI_FORMAT 항목의 SupportedFormatsCount 길이 배열을 지정합니다.

[out] ppOutputDuplication

형식: IDXGIOutputDuplication**

IDXGIOutputDuplication 인터페이스를 수신하는 변수에 대한 포인터입니다.

반환 값

형식: HRESULT

  • duplicateOutput1이 데스크톱 중복 인터페이스를 성공적으로 만들었는지 S_OK.
  • 다음 이유 중 하나로 E_INVALIDARG.
    • 지정된 디바이스(pDevice)가 잘못되었거나, 올바른 어댑터에서 만들어지지 않았거나, IDXGIFactory1(또는 IDXGIFactory1 에서 상속되는 DXGI 팩터리 인터페이스의 이후 버전)에서 만들어지지 않았습니다.
    • 호출하는 애플리케이션이 이미 이 데스크톱 출력을 복제하고 있습니다.
  • 애플리케이션에 현재 데스크톱 이미지에 대한 액세스 권한이 없는 경우 E_ACCESSDENIED. 예를 들어 LOCAL_SYSTEM 실행되는 애플리케이션만 보안 데스크톱에 액세스할 수 있습니다.
  • 생성된 IDXGIOutputDuplication 인터페이스가 현재 데스크톱 모드 또는 시나리오를 지원하지 않는 경우 DXGI_ERROR_UNSUPPORTED. 예를 들어 8bpp 및 비 DWM 데스크톱 모드는 지원되지 않습니다.

    DXGI_ERROR_UNSUPPORTED 함께 DuplicateOutput1 이 실패하면 애플리케이션은 데스크톱 스위치 및 모드 변경에 대한 시스템 알림을 기다린 다음, 이러한 알림이 발생한 후 DuplicateOutput1 을 다시 호출할 수 있습니다. 자세한 내용은 데스크톱 스위치(EVENT_SYSTEM_DESKTOPSWITCH) 및 모드 변경 알림(WM_DISPLAYCHANGE)을 참조하세요.

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE DXGI가 최대 동시 중복 애플리케이션 수 제한(기본값 4)에 도달한 경우입니다. 따라서 호출하는 애플리케이션은 다른 애플리케이션이 닫히기 전까지 데스크톱 중복 인터페이스를 만들 수 없습니다.
  • 세션의 연결이 현재 끊어져 DuplicateOutput1 이 실패했는지 DXGI_ERROR_SESSION_DISCONNECTED.
  • 다른 오류 코드는 DXGI_ERROR 항목에 설명되어 있습니다.

설명

이 메서드를 사용하면 실행 중인 전체 화면 애플리케이션에서 사용하는 원래 백 버퍼 형식을 직접 받을 수 있습니다. 비교를 위해 원래 DuplicateOutput 함수를 사용하면 항상 전체 화면 표면을 32비트 BGRA 형식으로 변환합니다. 현재 전체 화면 애플리케이션이 다른 버퍼 형식을 사용하는 경우 32비트 BGRA로 변환하면 성능이 저하됩니다. Format 변환을 건너뛸 수 있다는 성능 이점 외에도 DuplicateOutput1 을 사용하면 높은 색 형식(예: R10G10B10A2)이 표시되는 경우 전체 색 영역을 받을 수 있습니다.

pSupportedFormats 배열에는 디스플레이 검사 형식만 포함되어야 합니다. 각 기능 수준에서 필요한 스캔 아웃 형식은 Direct3D 기능 수준 11.0 하드웨어 에 대한 형식 지원을 참조하세요. 현재 전체 화면 버퍼 형식이 pSupportedFormats 배열에 포함되지 않은 경우 DXGI는 제공된 형식 중 하나를 선택하고 IDXGIOutputDuplication::AcquireNextFrame에서 반환하기 전에 전체 화면 버퍼를 해당 형식으로 변환합니다. 지원되는 형식 목록에는 데스크톱에 가장 일반적인 형식이므로 항상 DXGI_FORMAT_B8G8R8A8_UNORM 포함되어야 합니다.

요구 사항

   
대상 플랫폼 Windows
헤더 dxgi1_5.h
라이브러리 Dxgi.lib
DLL Dxgi.dll

추가 정보

DuplicateOutput

IDXGIOutput5