다음을 통해 공유


IDXGIOutputDuplication::ReleaseFrame 메서드(dxgi1_2.h)

애플리케이션이 프레임 처리를 완료했음을 나타냅니다.

구문

HRESULT ReleaseFrame();

반환 값

ReleaseFrame은 다음을 반환합니다.

  • 성공적으로 완료되었는지 S_OK.
  • 애플리케이션이 이미 프레임을 해제했는지 DXGI_ERROR_INVALID_CALL.
  • 데스크톱 중복 인터페이스가 잘못된 경우 DXGI_ERROR_ACCESS_LOST. 데스크톱 중복 인터페이스는 일반적으로 바탕 화면에 다른 유형의 이미지가 표시될 때 유효하지 않습니다. 이 상황의 예는 다음과 같습니다.
    • 데스크톱 스위치
    • 모드 변경
    • DWM 켜기, DWM 끄기 또는 기타 전체 화면 애플리케이션에서 전환
    이 경우 애플리케이션은 IDXGIOutputDuplication 인터페이스를 해제하고 새 콘텐츠에 대한 새 IDXGIOutputDuplication 을 만들어야 합니다.
  • DXGI_ERROR 항목에 설명된 다른 오류 코드일 수 있습니다.

설명

애플리케이션은 다음 프레임을 획득하기 전에 프레임을 해제해야 합니다. 프레임이 해제되면 바탕 화면 비트맵이 포함된 표면이 잘못됩니다. DirectX 그래픽 작업에서는 표면을 사용할 수 없습니다.

성능상의 이유로 IDXGIOutputDuplication::AcquireNextFrame 메서드를 호출하기 직전에 프레임을 해제하여 다음 프레임을 획득하는 것이 좋습니다. 클라이언트가 프레임을 소유하지 않으면 운영 체제는 모든 데스크톱 업데이트를 표면에 복사합니다. 이로 인해 운영 체제가 발생하는 각 프레임에 대해 동일한 영역을 업데이트하는 경우 GPU 주기가 낭비됩니다. 클라이언트가 프레임을 획득하면 클라이언트는 이 지역에 대한 최종 업데이트만 인식합니다. 따라서 이전 프레임 동안 겹치는 업데이트는 모두 낭비됩니다. 클라이언트가 프레임을 획득하면 클라이언트는 표면을 소유합니다. 따라서 운영 체제는 업데이트된 지역만 추적할 수 있으며 데스크톱 업데이트를 표면에 복사할 수 없습니다. 이 동작으로 인해 현재 프레임을 해제하는 호출과 다음 프레임을 획득하기 위한 호출 사이의 시간을 최소화하는 것이 좋습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 dxgi1_2.h
라이브러리 Dxgi.lib

추가 정보

IDXGIOutputDuplication