가로 세로 비율 및 사용자 지정 크기 조정 모드 사용
Windows 7(여기서 DXGKDDI_INTERFACE_VERSION= DXGKDDI_INTERFACE_VERSION_WIN7>)부터 사용할 수 있는 가로 세로 비율 유지 확장 확장 및 사용자 지정 크기 조정 모드를 지원하기 위해 디스플레이 미니포트 드라이버에서 사용하는 VidPN 현재 경로 데이터에 다음 기능이 추가됩니다.
D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT 구조:
AspectRatioCenteredMax 및 사용자 지정 멤버
D3DKMDT_VIDPN_PRESENT_PATH_SCALING 열거형:
D3DKMDT_VPPS_ASPECTRATIOCENTEREDMAX 및 D3DKMDT_VPPS_CUSTOM 값
크기 조정 모드 지정
이러한 크기 조정 모드를 사용하는 모니터의 데스크톱 동작 및 모양은 데스크톱 이미지 크기 조정에 설명되어 있습니다. 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(독립 하드웨어 공급업체)는 프라이빗 이스케이프 값을 사용하여 지정된 대상에서 사용자 지정 크기 조정을 해석하는 방법을 드라이버에 알릴 수 있습니다.
현재 고정된 대상 및 소스 모드의 가로 세로 비율이 같지만 크기가 다른 경우 디스플레이 미니포트 드라이버는 Stretched 및 Centered 멤버만 설정해야 합니다. 이 경우 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 동작이 있습니다.
드라이버는 초기화 중에 운영 체제 버전을 검사 해야 하며 AspectRatioCenteredMax 및 D3DKMDT_VIDPN_PRESENT_PATH_SCALING_SUPPORT사용자 지정 멤버를 노출하거나 사용하지 않아야 합니다. 드라이버가 이 요구 사항을 위반하는 경우 DMM은 AspectRatioCenteredMax 및 Custom 을 무시하고 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_ASPECTRATIOCENTEREDMAX 및 D3DKMDT_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 상태 코드를 반환해야 합니다. 운영 체제는 이 크기 조정 유형을 시스템 기본 크기 조정에 매핑합니다.