데스크톱 이미지 크기 조정

이 항목은 Windows 7 이상 및 Windows Server 2008 R2 이상 버전의 Windows 운영 체제에만 적용됩니다.

스케일링이 작동하는 방식

호출자는 SetDisplayConfig CCD(연결 및 디스플레이 구성) 함수를 사용하여 데스크톱 이미지를 모니터로 확장할 수 있습니다.

  • 데스크톱 및 모니터가 동일한 해상도를 사용하는 경우 SetDisplayConfig 는 데스크톱 이미지를 모니터로 확장할 필요가 없습니다. 이 SetDisplayConfig 작업을 ID 크기 조정이라고 합니다.

  • 데스크톱 및 모니터 해상도가 다른 경우 SetDisplayConfig 는 다음 크기 조정 유형 중 하나를 적용합니다. 모니터 해상도는 DISPLAYCONFIG_TARGET_MODE 구조로 정의됩니다.

    • 가운데 크기 조정

      가운데 크기 조정은 크기 조정 없이 데스크톱이 모니터에 표시되는 모드입니다. SetDisplayConfig가 가운데 크기 조정을 적용하면 검은색 밴드가 바탕 화면 위와 아래에 표시될 수 있습니다. 다음 그림에서는 가운데 크기 조정을 보여줍니다.

      바탕 화면 위와 아래에 검은색 밴드가 있는 가운데 크기 조정을 보여 주는 다이어그램

    • 확장된 크기 조정

      확장된 크기 조정은 전체 디스플레이가 사용되는지 확인하기 위해 데스크톱이 모니터에서 가로 및 세로로 확장되는 모드입니다. SetDisplayConfig가 확장된 크기 조정을 적용하면 바탕 화면 위와 아래에 검은색 밴드가 표시되지 않습니다. 그러나 바탕 화면이 왜곡된 것처럼 보일 수 있습니다. 다음 그림에서는 확장된 크기 조정을 보여줍니다.

      데스크톱이 전체 디스플레이를 채우는 확장된 크기 조정을 보여 주는 다이어그램

    • 가로 세로 비율 유지 확장

      가로 세로 비율 유지 확장 확장은 가로 세로 비율을 유지하면서 데스크톱이 가능한 한 가로 및 세로로 확장되는 모드입니다. SetDisplayConfig에서 가로 세로 비율 유지 확장 확장이 적용되면 검은색 밴드가 바탕 화면의 위와 아래 또는 왼쪽과 오른쪽에 표시될 수 있습니다. 그러나 검은색 밴드는 바탕 화면 의 위와 아래 및왼쪽과 오른쪽 모두에서 볼 수 없습니다. 사용자는 이러한 유형의 크기 조정을 선호하므로 SetDisplayConfig 는 이 유형의 크기 조정을 기본값으로 적용합니다. 다음 그림에서는 가로 세로 비율 유지 확장된 크기 조정을 보여줍니다.

      바탕 화면의 양쪽 또는 위와 아래에 검은색 밴드가 있는 가로 세로 비율 유지 확장 스케일링을 보여 주는 다이어그램

크기 조정은 경로에 사용되는 원본 및 대상 모드에 따라 달라집니다. 또한 호출자는 대상 모드 정보를 지정하지 않고 SetDisplayConfig 를 호출할 수 있습니다(즉, modeInfoArray 매개 변수 설정은 선택 사항이며 NULL로 설정할 수 있음). 즉, 호출자는 일반적으로 SetDisplayConfig 에서 크기 조정을 수행해야 하는지 예측할 수 없습니다. 또한 그래픽 어댑터가 지원하는 크기 조정 형식의 전체 목록을 가져오는 API가 없습니다. EnumDisplaySettings Win32 함수는 호출자가 Windows 7 크기 조정 형식을 요청할 때 lpDevMode 매개 변수가 가리키는 DEVMODE 구조체의 dmDisplayFixedOutput 멤버에서 DMDFO_DEFAULT 반환합니다.

호출자가 SetDisplayConfig 에 전달하는 크기 조정은 크기 조정 작업을 수행하기 위한 명시적 요청이 아닌 크기 조정 의도입니다. 크기 조정이 필요한 경우(예: 원본 및 대상 해상도가 다른 경우) SetDisplayConfig 는 호출자가 제공하는 크기 조정을 사용합니다. 제공된 크기 조정이 지원되지 않는 경우 SetDisplayConfig 는 그래픽 어댑터의 기본 크기 조정을 사용합니다. 호출자가 SetDisplayConfig 에 전달하는 원본 및 대상 확인이 동일한 경우 SetDisplayConfig 는 항상 ID 크기 조정을 설정합니다.

크기 조정 요청

다음 표에서는 다양한 SetDisplayConfig 크기 조정 요청을 보여 줍니다. 아래 하위 섹션에 있는 테이블에서 사용되는 약식 명명법이 식별됩니다. DISPLAYCONFIG_SCALING_XXX 값의 정의는 DISPLAYCONFIG_SCALING 참조하세요.

크기 조정 요청 아래 표에 사용되는 축약된 명명법
DISPLAYCONFIG_SCALING_IDENTITY DC_IDENTITY
DISPLAYCONFIG_SCALING_CENTERED DC_CENTERED
DISPLAYCONFIG_SCALING_STRETCHED DC_STRETCHED
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX DC_ASPECTRATIOCENTEREDMAX
DISPLAYCONFIG_SCALING_CUSTOM DC_CUSTOM
DISPLAYCONFIG_SCALING_PREFERRED DC_PREFERRED
어댑터 기본 크기 조정 값입니다. 현재 태블릿 시스템에서는 기본값이 확장됩니다. WDDM( Windows 디스플레이 드라이버 모델 )을 지원하는 그래픽 어댑터가 있는 태블릿이 아닌 시스템에서 기본값은 드라이버에 의해 정의됩니다. Windows 7에 대한 새로운 기능으로 WDDM을 지원하는 그래픽 어댑터가 있는 태블릿이 아닌 시스템에서 기본값은 DC_ASPECTRATIOCENTEREDMAX. AdapterDefault
현재 연결된 모니터에 대한 데이터베이스의 크기 조정 값 DatabaseValue

SetDisplayConfig 크기 조정 요청

다음 표에서는 데이터베이스에 저장된 값과 실제로 설정된 값을 보여 하며 여기서는 다음과 같습니다.

  • 결과 소스 모드와 대상 모드의 해상도가 같을 때 "Set(동일)" 및 "Store(동일)"는 설정 및 저장 값입니다.
  • 결과 소스 모드와 대상 모드의 해상도가 서로 다른 경우 "Set(different)" 및 "Store(다른)"는 설정 및 저장 값입니다.
SetDisplayConfig에 전달된 크기 조정 플래그 설정(동일) 스토어(동일) 설정(다른) 설정(다른)
Db에 없는 현재 구성 DC_IDENTITY DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
Db에서 현재 구성 DC_IDENTITY DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue
DC_CENTERED DC_IDENTITY DC_CENTERED DC_CENTERED DC_CENTERED
DC_STRETCHED DC_IDENTITY DC_STRETCHED DC_STRETCHED DC_STRETCHED
Windows 7 기능 드라이버를 사용하여 WDDM에서 DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY DC_ASPRATIOMAX DC_ASPRATIOMAX DC_ASPRATIOMAX
WDDM 드라이버의 DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
경로에서 사용자 지정 크기 조정을 지원하는 Windows 7 기능 드라이버가 있는 WDDM의 DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM
경로에서 사용자 지정 크기 조정을 지원하지 않는 Windows 7 기능 드라이버가 있는 WDDM의 DC_CUSTOM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
WDDM 드라이버의 DC_CUSTOM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
Db에 없는 현재 구성 DC_PREFERRED DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
Db에서 현재 구성 DC_PREFERRED DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

레거시 ChangeDisplaySettingsEx 크기 조정 요청

다음 표에서는 호출자가 레거시 ChangeDisplaySettingsEx API에 전달할 수 있는 크기 조정이 크기 조정 집합에 매핑되는 방법을 보여 줍니다. 여기서는 다음과 같습니다.

  • 결과 소스 모드와 대상 모드의 해상도가 같을 때 "Set(동일)" 및 "Store(동일)"는 설정 및 저장 값입니다.
  • 결과 소스 모드와 대상 모드의 해상도가 서로 다른 경우 "Set(different)" 및 "Store(다른)"는 설정 및 저장 값입니다.
ChangeDisplaySettingsEx에 전달된 크기 조정 플래그 설정(동일) 스토어(동일) 설정(다른) 설정(다른)
현재 구성이 CCD 데이터베이스에 없는 DMDFO_DEFAULT DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
CCD 데이터베이스에서 현재 구성을 사용하여 DMDFO_DEFAULT DC_IDENTITY DatabaseValue 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 AdapterDefault AdapterDefault
DM_DISPLAYFIXEDOUTPUT 설정되지 않음, CCD 데이터베이스의 현재 구성 DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

레거시 EnumDisplaySettings 크기 조정 변환

다음 표에서는 EnumDisplaySettings에서 디스플레이 구성 크기 조정을 변환하고 반환하는 방법을 보여 줍니다.

현재 활성 크기 조정 레거시 EnumDisplaySettings(ENUM_CURRENT_SETTINGS)에서 반환된 GDI 크기 조정 값
DC_IDENTITY DMDFO_DEFAULT
DC_CENTERED DMDFO_CENTER
DC_STRETCHED DMDFO_STRETCH
DC_ASPRATIOMAX DMDFO_DEFAULT
DC_CUSTOM 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 애플리케이션에서 예상되는 크기 조정을 확인할 수 있습니다.