enumeración DXGI_SCALING (dxgi1_2.h)

Identifica el comportamiento de cambio de tamaño cuando el tamaño del búfer de reserva no coincide con el tamaño de la salida de destino.

Syntax

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

Constantes

 
DXGI_SCALING_STRETCH
Valor: 0
Dirige DXGI para que el contenido del búfer de reserva se escale para ajustarse al tamaño de destino de la presentación. Este es el comportamiento implícito de DXGI cuando se llama al método IDXGIFactory::CreateSwapChain .
DXGI_SCALING_NONE
Valor: 1
Dirige DXGI para que el contenido del búfer de reserva aparezca sin ningún escalado cuando el tamaño de destino de la presentación no es igual al tamaño del búfer de reserva. Los bordes superiores del búfer de reserva y el destino de presentación se alinean juntos. Si el estilo de WS_EX_LAYOUTRTL está asociado al controlador HWND a la ventana de salida de destino, los bordes derecho del búfer de reserva y el destino de presentación se alinean juntos; de lo contrario, los bordes izquierdos se alinean juntos. Todo el área de destino fuera del búfer de reserva se rellena con el color de fondo de la ventana.

Este valor especifica que todas las áreas de destino fuera del búfer de reserva de una cadena de intercambio se rellenan con el color de fondo que especifique en una llamada a IDXGISwapChain1::SetBackgroundColor.
DXGI_SCALING_ASPECT_RATIO_STRETCH
Valor: 2
Dirige DXGI para que el contenido del búfer de reserva se escale para ajustarse al tamaño de destino de la presentación, a la vez que conserva la relación de aspecto del búfer de reserva. Si el búfer de reserva escalado no rellena el área de presentación, se centrará con bordes negros.

Esta constante se admite en Windows Phone 8 y Windows 10.

Tenga en cuenta que, con cadenas de intercambio de ventanas De Win32 heredadas, funciona igual que DXGI_SCALING_STRETCH.

Comentarios

El valor de DXGI_SCALING_NONE solo se admite para cadenas de intercambio de modelos de presentación invertida que se crean con el valor de DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_FLIP_DISCARD . Estos valores se pasan en una llamada a IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow o IDXGIFactory2::CreateSwapChainForComposition.

DXGI_SCALING_ASPECT_RATIO_STRETCH prefiere usar un relleno horizontal; de lo contrario, usará un relleno vertical mediante la siguiente lógica.

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);

Tenga en cuenta que outputWidth y outputHeight son los tamaños de píxeles del tamaño de destino de la presentación. En el caso de CoreWindow, esto requiere convertir los valores logicalWidth y logicalHeight de DIPS a píxeles mediante la propiedad PPP de la ventana.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado dxgi1_2.h

Consulte también

Enumeraciones DXGI

DXGI_SWAP_CHAIN_DESC1