이 항목은 Windows 7 이상 및 Windows Server 2008 R2 이상 버전의 Windows 운영 체제에만 적용됩니다.
스케일링이 작동하는 방식
호출자는 SetDisplayConfig 연결 및 CCD(디스플레이 구성) 함수를 사용하여 데스크톱 이미지를 모니터로 확장할 수 있습니다.
데스크톱 및 모니터에서 동일한 해상도를 사용하는 경우 SetDisplayConfig 는 데스크톱 이미지를 모니터로 확장할 필요가 없습니다. 이 SetDisplayConfig 작업을 ID 크기 조정이라고 합니다.
데스크톱 및 모니터 해상도가 다른 경우 SetDisplayConfig 는 다음 크기 조정 유형 중 하나를 적용합니다. 모니터 해상도는 DISPLAYCONFIG_TARGET_MODE 구조에 의해 정의됩니다.
중심 맞춤 크기 조정
가운데 맞춤 크기 조정은 크기 조정 없이 데스크톱이 모니터에 표시되는 모드입니다. SetDisplayConfig가 가운데 크기 조정을 적용하면 검은색 밴드가 바탕 화면 위와 아래에 표시될 수 있습니다. 다음 그림은 중심으로 크기 조정한 것을 보여줍니다.
확장된 크기 조정
확장된 크기 조정은 전체 디스플레이가 사용되는지 확인하기 위해 데스크톱이 모니터에서 가로 및 세로로 확장되는 모드입니다. SetDisplayConfig가 확장된 크기 조정을 적용하면 바탕 화면 위와 아래에 검은색 밴드가 표시되지 않습니다. 그러나 바탕 화면이 왜곡된 것처럼 보일 수 있습니다. 다음 그림에서는 확대된 스케일링을 보여줍니다.
측면-Ratio-Preserving 늘어났습니다.
가로 세로 비율 유지 확장 확장은 가로 세로 비율을 유지하면서 데스크톱을 가로 및 세로로 최대한 확장하는 모드입니다. SetDisplayConfig에서 화면 비율을 유지하는 확장형 스케일링이 적용될 때 바탕 화면의 검은색 밴드가 위 아래 또는 왼쪽 및 오른쪽에 표시될 수 있습니다. 그러나 검은색 밴드는 바탕 화면 의 위와 아래와왼쪽 및 오른쪽 모두에서 볼 수 없습니다. 사용자는 이러한 유형의 크기 조정을 선호하므로 SetDisplayConfig 는 이 유형의 크기 조정을 기본값으로 적용합니다. 다음 그림에서는 가로 세로 비율을 유지한 확장 크기를 보여줍니다.
크기 조정은 경로에 사용되는 원본 및 대상 모드에 따라 달라집니다. 또한 호출자는 대상 모드 정보를 지정하지 않고 SetDisplayConfig 를 호출할 수 있습니다(즉, modeInfoArray 매개 변수 설정은 선택 사항이며 NULL로 설정할 수 있음). 즉, 호출자는 일반적으로 SetDisplayConfig 에서 크기 조정을 수행해야 하는지 예측할 수 없습니다. 또한 그래픽 어댑터가 지원하는 크기 조정 형식의 전체 목록을 가져오는 API가 없습니다. EnumDisplaySettings Win32 함수는 호출자가 Windows 7 크기 조정 형식을 요청할 때 lpDevMode 매개 변수가 가리키는 DEVMODE 구조체의 dmDisplayFixedOutput 멤버에서 DMDFO_DEFAULT 반환합니다.
호출자가 SetDisplayConfig 에 전달하는 크기 조정은 크기 조정 작업을 수행하기 위한 명시적 요청이 아닌 크기 조정 의도입니다. 크기 조정이 필요한 경우(예: 원본 및 대상 해상도가 다른 경우) SetDisplayConfig 는 호출자가 제공하는 크기 조정을 사용합니다. 제공된 크기 조정이 지원되지 않는 경우 SetDisplayConfig 는 그래픽 어댑터의 기본 크기 조정을 사용합니다. 호출자가 SetDisplayConfig에 전달하는 원본 및 대상 해상도가 동일한 경우, SetDisplayConfig는 항상 동일 크기 조정을 설정합니다.
요청 크기 조정
다음 표에서는 다양한 SetDisplayConfig 크기 조정 요청을 보여 줍니다. 아래 하위 섹션에 있는 테이블에서 사용되는 약식 명명법을 식별합니다. DISPLAYCONFIG_SCALING_XXX 값의 정의는 DISPLAYCONFIG_SCALING 참조하세요.
| 요청 크기 조정 | 아래 표에서 사용되는 축약된 명명법 |
|---|---|
| DISPLAYCONFIG_SCALING_IDENTITY | DC_IDENTITY |
| 디스플레이 설정 - 중앙 스케일링 | DC_CENTERED |
| 디스플레이 설정 크기 맞춤 스트레치 | DC_STRETCHED |
| 디스플레이 설정: 비율 중심 최대 확대 | DC_ASPECTRATIOCENTEREDMAX |
| DISPLAYCONFIG_SCALING_CUSTOM | DC_CUSTOM |
| 화면구성_확대_선호됨 | DC_PREFERRED |
| 어댑터 기본 크기 조정 값입니다. 현재 태블릿 시스템에서는 기본값이 늘어나고 있습니다. WDDM( Windows 디스플레이 드라이버 모델 )을 지원하는 그래픽 어댑터가 있는 태블릿이 아닌 시스템에서는 드라이버에서 기본값을 정의합니다. Windows 7용 새로운 기능이 있는 WDDM을 지원하는 그래픽 어댑터가 탑재된 비태블릿 시스템에서는 기본값이 DC_ASPECTRATIOCENTEREDMAX입니다. | AdapterDefault |
| 현재 연결된 모니터에 대한 데이터베이스의 크기 조정 값 | DatabaseValue |
SetDisplayConfig 크기 조정 요청
다음 표에서는 데이터베이스에 저장된 값과 실제로 설정된 값을 보여 하며 여기서는 다음과 같습니다.
- 결과 소스 모드와 대상 모드의 해상도가 같을 때 "설정(동일)" 및 "저장(동일)"은 설정 및 저장 값입니다.
- 결과 소스 모드와 대상 모드의 해상도가 다를 경우 "Set(different)" 및 "Store(다른)"는 집합 및 저장 값입니다.
| SetDisplayConfig에 전달된 크기 조정 플래그 | 설정(동일) | 스토어(동일) | 설정(다른) | 설정(다른) |
|---|---|---|---|---|
| 현재 구성 DC_IDENTITY가 데이터베이스에 없습니다. | DC_IDENTITY | AdapterDefault | AdapterDefault | AdapterDefault |
| 현재 Db의 구성 DC_IDENTITY | DC_IDENTITY | 데이터베이스 값 | 데이터베이스 값 | 데이터베이스값 |
| DC_가운데정렬 | DC_IDENTITY | DC_CENTERED | 중앙 정렬 | DC_CENTERED |
| DC_STRETCHED | DC_IDENTITY | DC_STRETCHED | DC_스트레치드 | DC_STRETCHED |
| WDDM에서 Windows 7 기능이 있는 드라이버를 사용하여 DC_ASPECTRATIOCENTEREDMAX | DC_IDENTITY | DC_ASPRATIOMAX | DC_ASPRATIOMAX | DC_ASPRATIOMAX |
| WDDM 드라이버의 DC_ASPECTRATIOCENTEREDMAX | DC_IDENTITY | 어댑터기본 | AdapterDefault | 어댑터기본영역 |
| Windows 7 기능 드라이버가 경로에서 사용자 지정 크기 조정을 지원하는 WDDM의 DC_CUSTOM과 함께 작동합니다. | DC_CUSTOM | DC_CUSTOM | DC_CUSTOM | DC_CUSTOM |
| WDDM의 DC_CUSTOM에서 경로 내 사용자 지정 크기 조정을 지원하지 않는 Windows 7 기능 드라이버 | DC_IDENTITY | 어댑터 기본값 | AdapterDefault | AdapterDefault |
| WDDM 드라이버에서 DC_CUSTOM | DC_IDENTITY | AdapterDefault | 어댑터 기본값 | AdapterDefault |
| 해당 구성 "DC_PREFERRED"이(가) 데이터베이스에 없습니다. | DC_IDENTITY | AdapterDefault | AdapterDefault | AdapterDefault (기본 어댑터) |
| Db의 현재 설정 DC_PREFERRED | DC_IDENTITY | 데이터베이스 값 | 데이터베이스값 | 데이터베이스값 |
레거시 ChangeDisplaySettingsEx 크기 조정 요청
다음 표에서는 호출자가 레거시 ChangeDisplaySettingsEx API에 전달할 수 있는 크기 조정이 크기 조정 집합에 매핑되는 방법을 보여 줍니다.
- 결과 소스 모드와 대상 모드의 해상도가 같을 때 "설정(동일)" 및 "저장(동일)"은 설정 및 저장 값입니다.
- 결과 소스 모드와 대상 모드의 해상도가 다를 경우 "Set(다른)" 및 "Store(다른)"는 설정 및 저장 값입니다.
| ChangeDisplaySettingsEx에 전달된 크기 조정 플래그 | 설정(동일) | 스토어(동일) | 설정(다른) | 설정(다른) |
|---|---|---|---|---|
| 현재 구성이 CCD 데이터베이스에 없는 DMDFO_DEFAULT | DC_IDENTITY | AdapterDefault | AdapterDefault | AdapterDefault |
| CCD 데이터베이스의 현재 구성을 사용하여 DMDFO_DEFAULT | DC_IDENTITY | 데이터베이스 값 | DatabaseValue | DatabaseValue |
| DMDFO_STRETCH | DC_IDENTITY | DC_STRETCHED | DC_STRETCHED | DC_STRETCHED |
| DMDFO_CENTER | DC_IDENTITY | DC_CENTERED | DC_CENTERED (중심 정렬) | DC_CENTERED |
| DM_DISPLAYFIXEDOUTPUT가 설정되지 않았으며, 현재 구성은 CCD 데이터베이스에 없습니다. | DC_IDENTITY | AdapterDefault | 어댑터 기본값 | 어댑터기본값 |
| DM_DISPLAYFIXEDOUTPUT 설정되지 않음, CCD 데이터베이스의 현재 구성 | DC_IDENTITY | 데이터베이스 값 | 데이터베이스 값 | 데이터베이스값 |
구식 EnumDisplaySettings 크기 조정 번역
다음 표에서는 EnumDisplaySettings에서 디스플레이 구성 크기 조정을 변환하고 반환하는 방법을 보여 줍니다.
| 현재 활성화된 스케일링 | 레거시 EnumDisplaySettings(ENUM_CURRENT_SETTINGS)에서 반환된 GDI 크기 조정 값 |
|---|---|
| DC_IDENTITY | DMDFO_DEFAULT |
| DC_중앙 정렬 | DMDFO_CENTER |
| DC_스트레치드 | DMDFO_STRETCH |
| DC_ASPRATIOMAX | DMDFO_DEFAULT |
| DC_사용자 지정 | DMDFO_DEFAULT |
| DC_PREFERRED | DMDFO_DEFAULT |
DirectX 게임 및 크기 조정
Microsoft DirectX 9L 및 이전 런타임을 사용하려면 애플리케이션에서 lpDevMode 매개 변수가 가리키는 DEVMODE 구조체의 dmFields 멤버에 DM_DISPLAYFIXEDOUTPUT 설정하지 않고 항상 ChangeDisplaySettingsEx 함수를 호출해야 합니다. DirectX 10 이상 런타임을 사용하면 애플리케이션에서 해당 애플리케이션이 ChangeDisplaySettingsEx에 전달하는 크기 조정을 선택할 수 있습니다. 다음 표에서는 ChangeDisplaySettingsEx에 전달되는 크기 조정 플래그에 대한 크기 조정 값 매핑을 보여 줍니다.
| DXGI 플립 체인 크기 조정 값 | ChangeDisplaySettingsEx에 전달되는 크기 조정 플래그 |
|---|---|
| DXGI_MODE_SCALING_UNSPECIFIED | DMDFO_DEFAULT, DMDFO_CENTER 또는 DMDFO_STRETCH. 애플리케이션에서 사용하는 크기 조정은 드라이버가 노출하는 현재 데스크톱 크기 조정 및 모드 목록을 포함하는 몇 가지 요인에 따라 달라집니다. |
| DXGI_MODE_SCALING_CENTERED (디지털 이미지 및 그래픽 인터페이스 모드 중앙 배율) | DMDFO_CENTER |
| DXGI_MODE_SCALING_STRETCHED | DMDFO_STRETCH |
이 정보를 이전 크기 조정 테이블과 함께 사용하면 DirectX 애플리케이션에서 예상되는 크기 조정을 확인할 수 있습니다.