enumerazione DXGI_SCALING (dxgi1_2.h)

Identifica il comportamento di ridimensionamento quando le dimensioni del buffer indietro non corrispondono alle dimensioni dell'output di destinazione.

Sintassi

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

Costanti

 
DXGI_SCALING_STRETCH
Valore: 0
Indirizza DXGI per rendere la scala del contenuto del buffer back-buffer in base alle dimensioni della destinazione della presentazione. Si tratta del comportamento implicito di DXGI quando si chiama il metodo IDXGIFactory::CreateSwapChain .
DXGI_SCALING_NONE
Valore: 1
Indirizza DXGI per rendere visualizzato il contenuto del buffer back-buffer senza ridimensionamento quando le dimensioni della destinazione della presentazione non sono uguali alle dimensioni del buffer back-buffer. I bordi superiore del buffer indietro e la destinazione della presentazione vengono allineati insieme. Se lo stile WS_EX_LAYOUTRTL è associato all'handle HWND nella finestra di output di destinazione, i bordi destro del buffer indietro e la destinazione della presentazione vengono allineati insieme; in caso contrario, i bordi sinistro sono allineati insieme. Tutte le aree di destinazione all'esterno del buffer posteriore vengono riempite con colore di sfondo della finestra.

Questo valore specifica che tutte le aree di destinazione all'esterno del buffer indietro di una catena di scambio vengono riempite con il colore di sfondo specificato in una chiamata a IDXGISwapChain1::SetBackgroundColor.
DXGI_SCALING_ASPECT_RATIO_STRETCH
Valore: 2
Indirizza DXGI per rendere la scala del contenuto del buffer back-buffer in base alle dimensioni della destinazione della presentazione, mantenendo al tempo stesso il rapporto di aspetto del buffer back-buffer. Se il buffer back con scalabilità orizzontale non riempie l'area di presentazione, verrà centrato con bordi neri.

Questa costante è supportata in Windows Phone 8 e Windows 10.

Si noti che con gli scambi di finestre Win32 legacy, questo funziona come DXGI_SCALING_STRETCH.

Commenti

Il valore DXGI_SCALING_NONE è supportato solo per le catene di scambio di modelli di presentazione capovolte create con il valore DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL o DXGI_SWAP_EFFECT_FLIP_DISCARD . Questi valori vengono passati in una chiamata a IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow o IDXGIFactory2:: CreateSwapChainForComposition.

DXGI_SCALING_ASPECT_RATIO_STRETCH preferisce usare un riempimento orizzontale, altrimenti userà un riempimento verticale usando la logica seguente.

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

Si noti che outputWidth e outputHeight sono le dimensioni dei pixel delle dimensioni della destinazione della presentazione. Nel caso di CoreWindow, è necessario convertire i valori logicWidth e logicHeight da DIPS a pixel usando la proprietà DPI della finestra.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e Aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP]
Intestazione dxgi1_2.h

Vedi anche

Enumerazioni DXGI

DXGI_SWAP_CHAIN_DESC1