Share via


DXGI_OUTDUPL_FRAME_INFO 구조체(dxgi1_2.h)

DXGI_OUTDUPL_FRAME_INFO 구조는 현재 데스크톱 이미지를 설명합니다.

구문

typedef struct DXGI_OUTDUPL_FRAME_INFO {
  LARGE_INTEGER                 LastPresentTime;
  LARGE_INTEGER                 LastMouseUpdateTime;
  UINT                          AccumulatedFrames;
  BOOL                          RectsCoalesced;
  BOOL                          ProtectedContentMaskedOut;
  DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
  UINT                          TotalMetadataBufferSize;
  UINT                          PointerShapeBufferSize;
} DXGI_OUTDUPL_FRAME_INFO;

멤버

LastPresentTime

데스크톱 이미지의 마지막 업데이트 타임스탬프를 표시합니다. 운영 체제는 QueryPerformanceCounter 함수를 호출하여 값을 가져옵니다. 값이 0이면 데스크톱 이미지의 다음 프레임을 획득하기 위해 애플리케이션이 마지막으로 IDXGIOutputDuplication::AcquireNextFrame 메서드를 호출한 이후 데스크톱 이미지가 업데이트되지 않음을 나타냅니다.

LastMouseUpdateTime

마우스에 대한 마지막 업데이트의 타임스탬프를 지정합니다. 운영 체제는 QueryPerformanceCounter 함수를 호출하여 값을 가져옵니다. 0 값은 응용 프로그램이 데스크톱 이미지의 다음 프레임을 획득하기 위해 IDXGIOutputDuplication::AcquireNextFrame 메서드를 마지막으로 호출한 이후 마우스의 위치 또는 모양이 업데이트되지 않음을 나타냅니다. 마우스 위치는 항상 마우스 업데이트를 위해 제공됩니다. 새 포인터 셰이프는 PointerShapeBufferSize 멤버의 0이 아닌 값으로 표시됩니다.

AccumulatedFrames

호출 애플리케이션이 마지막 데스크톱 이미지를 처리한 이후 운영 체제가 데스크톱 이미지 화면에 누적된 프레임 수입니다. 이 번호에 대한 자세한 내용은 비고를 참조하세요.

RectsCoalesced

운영 체제가 더티 지역을 병합하여 업데이트를 누적했는지 여부를 지정합니다. 따라서 더티 영역에 수정되지 않은 픽셀이 포함될 수 있습니다. 더티 영역이 누적되면 TRUE, 그렇지 않으면 FALSE입니다.

ProtectedContentMaskedOut

데스크톱 이미지에 이미 차단된 보호된 콘텐츠가 데스크톱 이미지에 포함될 수 있는지 여부를 지정합니다. 보호된 콘텐츠가 이미 검은색으로 표시된 경우 TRUE입니다. 그렇지 않으면 FALSE입니다. 애플리케이션은 이 정보를 사용하여 일부 데스크톱 콘텐츠가 보호되어 표시되지 않을 수 있음을 원격 사용자에게 알릴 수 있습니다.

PointerPosition

LastMouseUpdateTime 멤버가 0이 아닌 값인 경우 가장 최근의 마우스 위치를 설명하는 DXGI_OUTDUPL_POINTER_POSITION 구조체입니다. 그렇지 않으면 이 값이 무시됩니다. 이 값은 포인터 셰이프의 왼쪽 위 모서리가 그려지는 위치의 좌표를 제공합니다. 이 값은 핫 스폿의 바탕 화면 위치가 아닙니다.

TotalMetadataBufferSize

이 프레임에 대한 모든 데스크톱 업데이트 메타데이터를 저장할 버퍼의 크기(바이트)입니다. 이 크기에 대한 자세한 내용은 비고를 참조하세요.

PointerShapeBufferSize

마우스 셰이프에 대한 새 픽셀 데이터를 저장할 버퍼의 크기(바이트)입니다. 이 크기에 대한 자세한 내용은 비고를 참조하세요.

설명

0이 아닌 LastMouseUpdateTime 은 마우스 포인터 위치 또는 마우스 포인터 위치 및 도형에 대한 업데이트를 나타냅니다. 즉, 마우스 포인터 위치는 항상 0이 아닌 LastMouseUpdateTime에 유효합니다. 그러나 애플리케이션은 PointerShapeBufferSize 멤버의 값을 검사 셰이프도 업데이트되었는지 여부를 확인해야 합니다.

포인터만 업데이트된 경우(즉, 데스크톱 이미지가 업데이트되지 않음), AccumulatedFrames, TotalMetadataBufferSizeLastPresentTime 멤버가 0으로 설정됩니다.

1의 AccumulatedFrames 값은 애플리케이션이 새 데스크톱 이미지가 표시되기 전에 마지막 프레임 처리를 완료했음을 나타냅니다. AccumulatedFrames 값이 둘보다 크면 애플리케이션이 마지막 데스크톱 업데이트를 처리하는 동안 더 많은 데스크톱 이미지 업데이트가 발생했습니다. 이 경우 운영 체제가 업데이트 지역을 누적했습니다. 데스크톱 업데이트에 대한 자세한 내용은 데스크톱 업데이트 데이터를 참조하세요.

TotalMetadataBufferSize가 0이 아닌 경우 모든 데스크톱 업데이트 메타데이터를 저장하는 데 필요한 버퍼의 총 크기를 나타냅니다. 애플리케이션은 각 메타데이터 형식의 크기를 확인할 수 없습니다. 애플리케이션은 IDXGIOutputDuplication::GetFrameDirtyRects, IDXGIOutputDuplication::GetFrameMoveRects 또는 IDXGIOutputDuplication::GetFramePointerShape 메서드를 호출하여 각 메타데이터 유형에 대한 정보를 가져와야 합니다.

참고 시각적 효과를 수정하려면 애플리케이션이 더티 사각형을 처리하기 전에 이동 지역 데이터를 처리해야 합니다.
 

요구 사항

   
지원되는 최소 클라이언트 Windows 8 및 Windows 7용 플랫폼 업데이트 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 및 Windows Server 2008 R2용 플랫폼 업데이트 [데스크톱 앱만 해당]
머리글 dxgi1_2.h

추가 정보

DXGI 구조체

IDXGIOutputDuplication::AcquireNextFrame