D3DKMDT_VPPR_GET_CONTENT_ROTATION 함수(d3dkmdt.h)
사용자가 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 열거 형의 지정된 값에서 기본 표시 방향에서 볼 수 있는 결합된 회전을 추출하는 도우미 함수입니다. 이 값은 사실상 오프셋 각도와 DWM(데스크톱 창 관리자)이 기본 클론 경로 콘텐츠를 이미 회전한 각도의 합계입니다. 경로 독립적 회전(DXGKDDI_INTERFACE_VERSION = DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION >)을 지원하는 드라이버만 이 함수를 호출해야 합니다.
구문
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);
매개 변수
Rotation
입력에서 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 열거형의 값입니다.
출력에서 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 상수 값의 OFFSET 부분에 해당하는 1에서 4 사이의 값입니다. 출력 값 1(ID)은 총 회전 0도, 2는 90도 등을 나타냅니다. 출력 값 0은 VidPN 경로가 초기화되지 않음을 나타냅니다.
Rotation의 출력 값은 D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART 및 D3DKMDT_VPPR_GET_OFFSET_ROTATION 함수에서 1을 뺀 출력 값의 합계입니다.
반환 값
반환된 값은 다음과 같이 회전 및 오프셋 각도에 해당합니다.
입력 열거형 값 | 입력 열거형 상수 | 회전 + 오프셋(도) | 출력 회전 값 |
---|---|---|---|
0 | D3DKMDT_VPPR_UNINITIALIZED | - | 0 |
1 | D3DKMDT_VPPR_IDENTITY | 0 | 1 |
2 | D3DKMDT_VPPR_ROTATE90 | 90 | 2 |
3 | D3DKMDT_VPPR_ROTATE180 | 180 | 3 |
4 | D3DKMDT_VPPR_ROTATE270 | 270 | 4 |
5 | D3DKMDT_VPPR_IDENTITY_OFFSET90 | 90 | 2 |
6 | D3DKMDT_VPPR_ROTATE90_OFFSET90 | 180 | 3 |
7 | D3DKMDT_VPPR_ROTATE180_OFFSET90 | 270 | 4 |
8 | D3DKMDT_VPPR_ROTATE270_OFFSET90 | 0 | 1 |
9 | D3DKMDT_VPPR_IDENTITY_OFFSET180 | 180 | 3 |
10 | D3DKMDT_VPPR_ROTATE90_OFFSET180 | 270 | 4 |
11 | D3DKMDT_VPPR_ROTATE180_OFFSET180 | 0 | 1 |
12 | D3DKMDT_VPPR_ROTATE270_OFFSET180 | 90 | 2 |
13 | D3DKMDT_VPPR_IDENTITY_OFFSET270 | 270 | 4 |
14 | D3DKMDT_VPPR_ROTATE90_OFFSET270 | 0 | 1 |
15 | D3DKMDT_VPPR_ROTATE180_OFFSET270 | 90 | 2 |
16 | D3DKMDT_VPPR_ROTATE270_OFFSET270 | 180 | 3 |
설명
이 함수는 다음과 같이 D3dkmdt.h에서 인라인으로 선언됩니다.
__inline
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
D3DKMDT_VPPR_GET_CONTENT_ROTATION(
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
{
if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
(Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
{
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION ContentPart =
D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(Rotation);
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION OffsetPart =
D3DKMDT_VPPR_GET_OFFSET_ROTATION(Rotation);
Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(
(((ContentPart - 1) + (OffsetPart - 1)) % 4) + 1);
}
return Rotation;
}
표시되는 콘텐츠를 드라이버에서 회전해야 하는 경우 이 함수의 출력은 드라이버가 DxgkDdiPresent 작업에 제공된 픽셀에 적용해야 하는 총 회전(DXGK_PRESENTFLAGS 구조체의 회전 멤버)을 나타냅니다. 자세한 내용은 Path-Independent 회전 지원을 참조하세요.
다음은 이 함수가 콘텐츠를 올바르게 회전하는 데 필요한 정보를 드라이버에 제공하는 방법의 예입니다. 세로 우선 디바이스가 복제 모드에서 가로 우선 모니터에 연결되고 사용자가 디스플레이 제어판의 방향을세로로 변경하면 세로 우선 디바이스의 기본 방향을 나타냅니다. 따라서 드라이버는 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 값을 설정해야 합니다. 경로에 D3DKMDT_VPPR_ROTATE90_OFFSET270 . 그런 다음 이 함수는 회전 값 1(ID)을 반환하여 복제 경로에 표시되는 콘텐츠를 회전하지 않음을 나타냅니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION |
지원되는 최소 서버 | Windows Server 2012 R2 |
대상 플랫폼 | 데스크톱 |
머리글 | d3dkmdt.h |
추가 정보
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART