가로 세로 비율 및 사용자 지정 크기 조정 모드 사용

Windows 7(여기서 DXGKDDI_INTERFACE_VERSION= DXGKDDI_INTERFACE_VERSION_WIN7)부터 사용할 수 있는 >가로 세로 비율 유지 확장 및 사용자 지정 크기 조정 모드를 지원하기 위해 디스플레이 미니포트 드라이버에서 사용하는 VidPN 현재 경로 데이터에 다음 기능이 추가됩니다.

크기 조정 모드 지정

이러한 크기 조정 모드를 사용하는 모니터의 데스크톱 동작 및 모양은 데스크톱 이미지 크기 조정에 설명되어 있습니다. DMM(표시 모드 관리자)이 DxgkDdiEnumVidPnCofuncModality 함수를 호출하는 경우 드라이버는 VidPN 현재 경로에서 지원하는 크기 조정 유형에 따라 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 멤버를 다음과 같이 설정해야 합니다.

ID 크기 조정
경로가 변환 없이 콘텐츠를 표시할 수 있는 경우 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORTID 멤버를 0이 아닌 값으로 설정합니다. DxgkDdiEnumVidPnCofuncModality가 호출되면 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 구조체의 Scaling 멤버를D3DKMDT_VPPS_IDENTITY 설정합니다.

가운데 맞춤 크기 조정
경로에서 대상에 크기가 조정되지 않고 가운데에 있는 콘텐츠를 표시할 수 있는 경우 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 설정합니다. 가운데 맞춤. DxgkDdiEnumVidPnCofuncModality가 호출되면 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 설정합니다. D3DKMDT_VPPS_CENTERED 크기 조정

확장된 크기 조정
경로가 원본의 가로 세로 비율을 유지하지 않으면서 대상에 맞게 크기가 조정된 콘텐츠를 표시할 수 있는 경우 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 설정합니다. 늘어났습니다. DxgkDdiEnumVidPnCofuncModality가 호출되면 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 설정합니다. D3DKMDT_VPPS_STRETCHED 크기 조정

가로 세로 비율 유지 확대 크기 조정
경로가 원본의 가로 세로 비율을 유지하면서 대상에 맞게 원본 콘텐츠의 크기를 조정할 수 있는 경우 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 설정합니다 . AspectRatioCenteredMax. DxgkDdiEnumVidPnCofuncModality가 호출되면 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 설정합니다. D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX 크기 조정

사용자 지정 크기 조정
경로가 다른 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 구조체 멤버에 설명되지 않은 하나 이상의 크기 조정 모드를 표시할 수 있는 경우 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 설정합니다. 사용자 지정. DxgkDdiEnumVidPnCofuncModality가 호출되면 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 설정합니다. D3DKMDT_VPPS_CUSTOM 크기 조정 IHV(독립 하드웨어 공급업체)는 프라이빗 이스케이프 값을 사용하여 지정된 대상에서 사용자 지정 크기 조정을 해석하는 방법을 드라이버에 알릴 수 있습니다.

현재 고정된 대상 및 소스 모드의 가로 세로 비율이 같지만 크기가 다른 경우 디스플레이 미니포트 드라이버는 StretchedCentered 멤버만 설정해야 합니다. 이 경우 DMM은 AspectRatioCenteredMax 멤버의 0이 아닌 값을 지웁합니다.

API에서 DDI로 크기 조정

D3DKMDT_VIDPN_PRESENT_PATH_SCALING 열거 형의 디스플레이 미니포트 드라이버 DDI 크기 조정 값에 대한 사용자 모드 API 크기 조정 값의 대응은 다음 표에 나와 있습니다.

SetDisplayConfig API 크기 조정 값 DDI 크기 조정 값

DC_IDENTITY

D3DKMDT_VPPS_IDENTITY

DC_CENTERED

D3DKMDT_VPPS_CENTERED

DC_STRETCHED

D3DKMDT_VPPS_STRETCHED

DC_ASPRATIOMAX

D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX

DC_CUSTOM

D3DKMDT_VPPS_CUSTOM

DC_PREFERRED

D3DKMDT_VPPS_PREFERRED

이 매핑은 데스크톱 이미지 크기 조정 의 테이블과 함께 사용하여 사용자 모드 크기 조정 형식이 디스플레이 미니포트 드라이버로 전송되는 DDI 크기 조정 형식으로 변환되는 방법을 이해할 수 있습니다.

크기 조정 및 드라이버 버전

운영 체제의 여러 버전에서 실행되는 다양한 디스플레이 미니포트 드라이버 버전의 동작은 다음 표에 나와 있습니다.

드라이버 버전 운영 체제 버전

< DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7

>= DXGKDDI_INTERFACE_VERSION_VISTA

> DXGKDDI_INTERFACE_VERSION = DXGKDDI_INTERFACE_VERSION_WIN7

Windows Vista

드라이버에 Windows Vista 동작이 있습니다.

드라이버는 초기화 중에 운영 체제 버전을 확인해야 하며, D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT AspectRatioCenteredMaxCustom 멤버를 노출하거나 사용하지 않아야 합니다. 드라이버가 이 요구 사항을 위반하는 경우 DMM은 AspectRatioCenteredMaxCustom 을 무시하고 ID, 가운데 맞춤 또는 확장된 멤버만 인식합니다. 드라이버가 VidPN 경로에 D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX 크기 조정 모드를 고정하려고 하면 DMM은 상태 코드 STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION 반환하고 이 크기 조정 모드를 전체 화면 스트레치 모드와 동일하게 처리합니다.

Windows 7

운영 체제는 AspectRatioCenteredMax사용자 지정 멤버의 값을 지우고 드라이버가 가로 세로 비율 유지 확장 확장 및 사용자 지정 크기 조정 모드를 지원하지 않는다고 가정합니다. DMM은 크기 조정 모드 D3DKMDT_VPPS_IDENTITY, D3DKMDT_VPPS_STRETCHED 또는 D3DKMDT_VPPS_CENTERED 설정합니다. 드라이버는 Windows Vista에서와 같이 동작합니다.

드라이버는 AspectRatioCenteredMax 멤버를 지원해야 하며 운영 체제는 제어판 애플리케이션에서 사용합니다. 드라이버는 필요에 따라 사용자 지정 멤버를 설정하여 사용자 지정 기능을 구현할 수 있습니다.

DMM은 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT AspectRatioCenteredMax 또는 사용자 지정 멤버를 확인하고 사용하기 전에 항상 드라이버 인터페이스 >= DXGKDDI_INTERFACE_VERSION_WIN7 확인합니다.

중요D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX 또는 D3DKMDT_VPPS_CUSTOM 값을 지원하는 디스플레이 미니포트 드라이버는 D3DKMDT_VPPS_NOTSPECIFIED 값을 설정해서는 안 됩니다.

여러 어댑터를 사용하여 크기 조정

Windows 7에 도입된 D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAXD3DKMDT_VPPS_CUSTOM 크기 조정 형식의 값은 GPU(그래픽 처리 장치)와 연결된 CCD 연결 데이터베이스에 저장됩니다. 사용자가 이러한 크기 조정 멤버를 지원하는 드라이버가 있는 한 GPU에서 다른 GPU로 모니터를 이동하는 경우 두 번째 GPU는 원래 드라이버에서 지원되지 않을 수 있습니다. 이 경우 운영 체제는 이러한 크기 조정 유형을 시스템 기본 크기 조정에 매핑합니다.

두 GPU가 D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX 및 D3DKMDT_VPPS_CUSTOM 크기 조정 유형을 지원하고 첫 번째 GPU에 대한 드라이버가 D3DKMDT_VPPS_CUSTOM 사용자 지정 크기 조정 요청을 구현하는 경우 사용자가 모니터를 두 번째 GPU로 전환하면 두 번째 GPU에 대한 드라이버가 사용자 지정 크기 조정 요청을 해석하는 방법을 모를 수 있습니다. 이 경우 두 번째 드라이버는 DxgkDdiCommitVidPn 함수에 대한 호출에 실패하고 STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED 상태 코드를 반환해야 합니다. 운영 체제는 이 크기 조정 유형을 시스템 기본 크기 조정에 매핑합니다.