DXGI_SCALING Enumeration (dxgi1_2.h)
Gibt das Größenänderungsverhalten an, wenn die Backpuffergröße nicht mit der Größe der Zielausgabe übereinstimmt.
Syntax
typedef enum DXGI_SCALING {
DXGI_SCALING_STRETCH = 0,
DXGI_SCALING_NONE = 1,
DXGI_SCALING_ASPECT_RATIO_STRETCH = 2
} ;
Konstanten
DXGI_SCALING_STRETCH Wert: 0 Weist DXGI an, den Inhalt des Backpuffers so zu skalieren, dass er der Zielgröße der Präsentation entspricht. Dies ist das implizite Verhalten von DXGI, wenn Sie die IDXGIFactory::CreateSwapChain-Methode aufrufen. |
DXGI_SCALING_NONE Wert: 1 Weist DXGI an, den Inhalt des Backpuffers ohne Skalierung anzuzeigen, wenn die Zielgröße der Präsentation nicht der Größe des Backpuffers entspricht. Die oberen Kanten des Backpuffers und des Präsentationsziels werden zusammen ausgerichtet. Wenn die WS_EX_LAYOUTRTL Stils dem HWND-Handle dem Zielausgabefenster zugeordnet ist, werden die rechten Ränder des Backpuffers und des Präsentationsziels miteinander ausgerichtet. Andernfalls werden die linken Kanten aneinander ausgerichtet. Alle Zielbereiche außerhalb des Backpuffers sind mit Der Hintergrundfarbe des Fensters gefüllt. Dieser Wert gibt an, dass alle Zielbereiche außerhalb des Backpuffers einer Swap chain mit der Hintergrundfarbe gefüllt sind, die Sie in einem Aufruf von IDXGISwapChain1::SetBackgroundColor angeben. |
DXGI_SCALING_ASPECT_RATIO_STRETCH Wert: 2 Weist DXGI an, den Inhalt des Backpuffers so zu skalieren, dass er der Größe des Präsentationsziels entspricht, wobei das Seitenverhältnis des Backpuffers beibehalten wird. Wenn der skalierte Rückpuffer den Präsentationsbereich nicht füllt, wird er mit schwarzen Rahmen zentriert. Diese Konstante wird auf Windows Phone 8 und Windows 10 unterstützt. Beachten Sie, dass dies bei Legacy-Win32-Fenster-Swapchains genauso funktioniert wie DXGI_SCALING_STRETCH. |
Hinweise
Der DXGI_SCALING_NONE Wert wird nur für Wechselketten des Flip-Präsentationsmodells unterstützt, die Sie mit dem DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL - oder DXGI_SWAP_EFFECT_FLIP_DISCARD-Wert erstellen. Sie übergeben diese Werte in einem Aufruf von IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow oder IDXGIFactory2::CreateSwapChainForComposition.
DXGI_SCALING_ASPECT_RATIO_STRETCH bevorzugt eine horizontale Füllung, andernfalls wird eine vertikale Füllung mit der folgenden Logik verwendet.
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);
Beachten Sie, dass outputWidth und outputHeight die Pixelgrößen der Präsentationszielgröße sind. Im Fall von CoreWindow erfordert dies die Konvertierung der Werte logicalWidth und logicalHeight von DIPS in Pixel mithilfe der DPI-Eigenschaft des Fensters.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
Kopfzeile | dxgi1_2.h |