다음을 통해 공유


DXGI_SCALING 열거형(dxgi1_2.h)

백 버퍼 크기가 대상 출력의 크기와 일치하지 않는 경우 크기 조정 동작을 식별합니다.

Syntax

typedef enum DXGI_SCALING {
  DXGI_SCALING_STRETCH = 0,
  DXGI_SCALING_NONE = 1,
  DXGI_SCALING_ASPECT_RATIO_STRETCH = 2
} ;

상수

 
DXGI_SCALING_STRETCH
값: 0
DXGI에 프레젠테이션 대상 크기에 맞게 백 버퍼 콘텐츠의 크기를 조정하도록 지시합니다. IDXGIFactory::CreateSwapChain 메서드를 호출할 때 DXGI의 암시적 동작입니다.
DXGI_SCALING_NONE
값: 1
프레젠테이션 대상 크기가 백 버퍼 크기와 같지 않을 때 크기 조정 없이 백 버퍼 콘텐츠를 표시하도록 DXGI에 지시합니다. 백 버퍼와 프레젠테이션 대상의 위쪽 가장자리가 함께 정렬됩니다. WS_EX_LAYOUTRTL 스타일이 HWND 핸들과 대상 출력 창에 연결된 경우 백 버퍼와 프레젠테이션 대상의 오른쪽 가장자리가 함께 정렬됩니다. 그렇지 않으면 왼쪽 가장자리가 함께 정렬됩니다. 백 버퍼 외부의 모든 대상 영역은 창 배경색으로 채워집니다.

이 값은 스왑 체인의 백 버퍼 외부에 있는 모든 대상 영역이 IDXGISwapChain1::SetBackgroundColor 호출에서 지정한 배경색으로 채워지도록 지정합니다.
DXGI_SCALING_ASPECT_RATIO_STRETCH
값: 2
백 버퍼의 가로 세로 비율을 유지하면서 프레젠테이션 대상 크기에 맞게 백 버퍼 콘텐츠의 크기를 조정하도록 DXGI에 지시합니다. 크기가 조정된 백 버퍼가 프레젠테이션 영역을 채우지 않으면 검은색 테두리 가운데에 배치됩니다.

이 상수는 Windows Phone 8 및 Windows 10 지원됩니다.

레거시 Win32 창 스왑 체인에서는 DXGI_SCALING_STRETCH 동일하게 작동합니다.

설명

DXGI_SCALING_NONE 값은 DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 또는DXGI_SWAP_EFFECT_FLIP_DISCARD 값으로 만든 대칭 이동 프레젠테이션 모델 스왑 체인에 대해서만 지원됩니다. IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow 또는 IDXGIFactory2::CreateSwapChainForComposition에 대한 호출에서 이러한 값을 전달합니다.

DXGI_SCALING_ASPECT_RATIO_STRETCH 가로 채우기를 사용하는 것을 선호합니다. 그렇지 않으면 다음 논리를 사용하여 세로 채우기를 사용합니다.

float aspectRatio = backBufferWidth / float(backBufferHeight);

 // Horizontal fill
 float scaledWidth = outputWidth;
 float scaledHeight = outputWidth / aspectRatio;
 if (scaledHeight >= outputHeight)
 {
   // Do vertical fill
   scaledWidth = outputHeight * aspectRatio;
   scaledHeight = outputHeight;
 }

 float offsetX = (outputWidth - scaledWidth) * 0.5f;
 float offsetY = (outputHeight - scaledHeight) * 0.5f;

 rect.left = static_cast<LONG>(offsetX);
 rect.top = static_cast<LONG>(offsetY);
 rect.right = static_cast<LONG>(offsetX + scaledWidth);
 rect.bottom = static_cast<LONG>(offsetY + scaledHeight);

 rect.left = std::max<LONG>(0, rect.left);
 rect.top = std::max<LONG>(0, rect.top);
 rect.right = std::min<LONG>(static_cast<LONG>(outputWidth), rect.right);
 rect.bottom = std::min<LONG>(static_cast<LONG>(outputHeight), rect.bottom);

outputWidthoutputHeight는 프레젠테이션 대상 크기의 픽셀 크기입니다. CoreWindow의 경우 창의 DPI 속성을 사용하여 logicalWidthlogicalHeight 값을 DIPS에서 픽셀로 변환해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
머리글 dxgi1_2.h

추가 정보

DXGI 열거형

DXGI_SWAP_CHAIN_DESC1