IDXGIOutputDuplication::GetFrameDirtyRects 메서드(dxgi1_2.h)
현재 데스크톱 프레임의 더티 사각형에 대한 정보를 가져옵니다.
구문
HRESULT GetFrameDirtyRects(
[in] UINT DirtyRectsBufferSize,
[out] RECT *pDirtyRectsBuffer,
[out] UINT *pDirtyRectsBufferSizeRequired
);
매개 변수
[in] DirtyRectsBufferSize
호출자가 pDirtyRectsBuffer 매개 변수에 전달한 버퍼의 크기(바이트)입니다.
[out] pDirtyRectsBuffer
데스크톱 프레임의 더티 사각형 영역을 식별하는 RECT 구조체 배열에 대한 포인터입니다.
[out] pDirtyRectsBufferSizeRequired
GetFrameDirtyRects에서 버퍼의 더티 지역에 대한 정보를 pDirtyRectsBuffer에 저장해야 하는 바이트 수를 수신하는 변수에 대한 포인터입니다.
필요한 버퍼 크기를 반환하는 방법에 대한 자세한 내용은 비고를 참조하세요.
반환 값
GetFrameDirtyRects는 다음을 반환합니다.
- 더티 사각형에 대한 정보를 성공적으로 검색했는지 S_OK.
- 데스크톱 중복 인터페이스가 잘못된 경우 DXGI_ERROR_ACCESS_LOST. 데스크톱 중복 인터페이스는 일반적으로 바탕 화면에 다른 유형의 이미지가 표시될 때 유효하지 않습니다. 이 상황의 예는 다음과 같습니다.
- 데스크톱 스위치
- 모드 변경
- DWM 켜기, DWM 끄기 또는 기타 전체 화면 애플리케이션에서 전환
- 호출 애플리케이션이 제공한 버퍼가 충분히 크지 않은지 DXGI_ERROR_MORE_DATA.
- 애플리케이션이 데스크톱 이미지를 소유하지 않고 GetFrameDirtyRects 라고 하는 경우 DXGI_ERROR_INVALID_CALL.
- getFrameDirtyRects에 대한 매개 변수 중 하나가 잘못된 경우 E_INVALIDARG. 예를 들어 pDirtyRectsBuffer가 NULL인 경우 입니다.
- DXGI_ERROR 항목에 설명된 다른 오류 코드일 수 있습니다.
설명
GetFrameDirtyRects는 변수의 크기 값을 pDirtyRectsBufferSizeRequired에 저장합니다. 이 값은 GetFrameDirtyRects가 더티 지역에 대한 정보를 저장하는 데 필요한 바이트 수를 지정합니다. 다음 상황에서 이 값을 사용하여 pDirtyRectsBuffer에 전달하는 향후 버퍼에 할당할 메모리 양을 결정할 수 있습니다.
- 버퍼가 충분히 크지 않기 때문에 GetFrameDirtyRects는 DXGI_ERROR_MORE_DATA 실패합니다.
- GetFrameDirtyRects 는 필요한 것보다 큰 버퍼를 제공합니다. pDirtyRectsBufferSizeRequired에서 반환되는 크기 값은 호출자가 DirtyRectsBufferSize 매개 변수에 할당하고 지정한 버퍼 공간과 비교하여 실제로 사용된 버퍼 공간의 양을 호출자에게 알릴 수 있습니다.
버퍼에는 현재 프레임에 대한 더티 RECT목록이 포함됩니다.
참고 시각적으로 정확한 데스크톱 복사본을 생성하려면 애플리케이션이 먼저 RECT를 더티 처리하기 전에 모든 이동 RECT를 처리해야 합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | dxgi1_2.h |
라이브러리 | Dxgi.lib |