Path-Independent 회전 지원

Windows 8.1 Update 시작해서 운영 체제는 가능한 최대 해상도로 가로 우선 디스플레이에 세로 우선 디스플레이 복제를 지원합니다. 디스플레이 미니포트 드라이버는 디스플레이 미니포트 드라이버의 회전 지원에 설명된 대로 기본 클론 경로보조 클론 경로에 대한 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 구조에서 적절한 오프셋 값을 설정해야 합니다.

이러한 DPI(디바이스 드라이버 인터페이스)는 Windows 8.1 Update 새로운 기능입니다.

  • D3DKMDT_VPPR_GET_CONTENT_ROTATION
  • D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART
  • D3DKMDT_VPPR_GET_OFFSET_ROTATION

이러한 DDI는 Windows 8.1 Update 업데이트됩니다.

세로 우선 디바이스 복제

세로 우선 디바이스의 드라이버가 가로 우선 모니터에 복제하도록 요청되면 기본 클론 경로의 해상도와 일치하는 소스 모드(x,y) 해상도를 보고해야 합니다. 그런 다음 보조 클론 경로는 90도 및 270도 오프셋 값(D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT을 지원할 수 있습니다. Offset90 또는 . Offset270TRUE)입니다. 따라서 VidPN이 90도 또는 270도 오프셋을 나타내는 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 열거형 값으로 커밋되면 이 특정 경로에서 (x,y) 해상도가 대칭 이동됩니다.

기본적으로 운영 체제는 내부 표시 패널로 보조 클론 경로를 선택합니다. 내부 패널이 세로 우선인 경우 운영 체제는 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 예상합니다. 가로 모드의 내부 디스플레이 패널에 표시하기 위해 이 경로에 설정할 Offset270 입니다. 보조 클론 경로에서 가로 우선 외부 모니터의 경우 운영 체제는 드라이버가 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT 지원해야 합니다. Offset90은 드문 시나리오일 수 있지만

복제 시나리오 예제

기본 해상도가 800(너비) x 1280픽셀(높이)인 세로 우선 디바이스가 클론 모드에서 높이가 1080픽셀인 가로 우선 TV에 연결되는 일반적인 시나리오는 다음과 같습니다. 드라이버는 이 정보를 운영 체제에 보고합니다.

원본 모드
1280 x 800

TV 대상 모드
1920 x 1080(가로 세로 비율 유지 크기 조정)

디바이스 대상 모드
800 x 1280(ID 크기 조정)

기본 복제 경로(TV)
드라이버는 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT만 지원합니다. Offset0 및 일반 회전 지원

보조 복제 경로(디바이스)
드라이버는 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT만 지원합니다. Offset270 및 일반 회전 지원

DxgkDdiCommitVidPn 함수에 대한 호출은 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 열거형에서 다음 경로 설정과 함께 를 반환합니다.

기본 복제 경로(TV)
D3DKMDT_VPPR_IDENTITY

보조 복제 경로(디바이스)
D3DKMDT_VPPR_IDENTITY_OFFSET270

운영 체제에서는 드라이버가 제공된 콘텐츠를 270도 회전할 것으로 예상합니다.

디스플레이 제어판의 방향 드롭다운 상자에서 사용자가 가로(대칭 이동) 옵션을 선택하면 DxgkDdiCommitVidPn 함수에 대한 호출이 D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 열거형의 다음 경로 설정과 함께 반환됩니다.

기본 복제 경로(TV)
D3DKMDT_VPPR_ROTATE180

보조 복제 경로(디바이스)
D3DKMDT_VPPR_ROTATE180_OFFSET270

DWM(데스크톱 창 관리자)이 이미 콘텐츠를 180도 회전한 경우 드라이버는 보조 클론 경로에서 270도 회전해야 합니다. 그렇지 않으면 드라이버는 TV의 경우 콘텐츠를 180도, 장치의 경우 90도 회전해야 합니다. 콘텐츠를 회전하려면 드라이버가 DXGK_PRESENTFLAGS 구조체의 Rotate 멤버를 설정해야 합니다.