D3DKMDT_VPPR_GET_CONTENT_ROTATION Funktion (d3dkmdt.h)

Eine Hilfsfunktion, die die kombinierte Drehung extrahiert, die der Benutzer aus der Standardanzeigeausrichtung aus einem bestimmten Wert der D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Enumeration sieht. Dieser Wert ist effektiv die Summe des Offsetwinkels und des Winkels, den der Desktop Window Manager (DWM) bereits gedreht hat, den primären Klonpfadinhalt. Nur Treiber, die pfadunabhängige Drehung (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) unterstützen, sollten diese Funktion aufrufen.

Syntax

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Parameter

Rotation

Bei eingaben, einem Wert aus der D3DKMDT_VIDPN_PRESENT_PATH_ROTATION-Aufzählung.

Bei der Ausgabe entspricht ein Wert zwischen 1 und 4 einschließlich dem OFFSET- Teil der D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Konstantenwerte. Ein Ausgabewert von 1 (Identität) stellt 0 Grad der Gesamtdrehung dar, 2 steht für 90 Grad usw. Ein Ausgabewert von 0 gibt an, dass der VidPN-Pfad nicht initialisiert ist.

Der Ausgabewert von Rotation ist die Summe der Ausgabewerte aus dem D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART und D3DKMDT_VPPR_GET_OFFSET_ROTATION Funktionen minus 1.

Rückgabewert

Der zurückgegebene Wert entspricht den Dreh- und Versatzwinkeln wie folgt:

Eingabeenumerationswert Eingabeenumerationskonstante Drehung + Offset, in Grad Ausgabedrehungswert
0 D3DKMDT_VPPR_UNINITIALIZED - 0
1 D3DKMDT_VPPR_IDENTITY 0 1
2 D3DKMDT_VPPR_ROTATE90 90 2
3 D3DKMDT_VPPR_ROTATE180 180 3
4 D3DKMDT_VPPR_ROTATE270 270 4
5 D3DKMDT_VPPR_IDENTITY_OFFSET90 90 2
6 D3DKMDT_VPPR_ROTATE90_OFFSET90 180 3
7 D3DKMDT_VPPR_ROTATE180_OFFSET90 270 4
8 D3DKMDT_VPPR_ROTATE270_OFFSET90 0 1
9 D3DKMDT_VPPR_IDENTITY_OFFSET180 180 3
10 D3DKMDT_VPPR_ROTATE90_OFFSET180 270 4
11 D3DKMDT_VPPR_ROTATE180_OFFSET180 0 1
12 D3DKMDT_VPPR_ROTATE270_OFFSET180 90 2
13 D3DKMDT_VPPR_IDENTITY_OFFSET270 270 4
14 D3DKMDT_VPPR_ROTATE90_OFFSET270 0 1
15 D3DKMDT_VPPR_ROTATE180_OFFSET270 90 2
16 D3DKMDT_VPPR_ROTATE270_OFFSET270 180 3

Bemerkungen

Diese Funktion wird inline in D3dkmdt.h als:

__inline
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION 
    D3DKMDT_VPPR_GET_CONTENT_ROTATION(
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
{
    if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
        (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
    {
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION ContentPart = 
            D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(Rotation);
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION OffsetPart =
            D3DKMDT_VPPR_GET_OFFSET_ROTATION(Rotation);
        Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(
            (((ContentPart - 1) + (OffsetPart - 1)) % 4) + 1);
    }
    return Rotation;
}

Wenn der dargestellte Inhalt vom Treiber gedreht werden muss, stellt die Ausgabe dieser Funktion die Gesamtdrehung (das Drehen Member der DXGK_PRESENTFLAGS-Struktur) dar, die der Treiber auf die pixeln muss, die im DxgkDdiPresent--Vorgang bereitgestellt werden. Weitere Informationen finden Sie unter Unterstützen von Path-Independent Rotation.

Im Folgenden finden Sie ein Beispiel dafür, wie diese Funktion Ihrem Treiber die Benötigten Informationen zum ordnungsgemäßen Drehen von Inhalten bereitstellen kann. Wenn ein Hochformatgerät im Klonmodus mit einem querformatigen Monitor verbunden ist und der Benutzer die Orientation in der Systemsteuerung Display in Hochformat-ändert, stellt dies die Standardausrichtung des Hochformatgeräts dar. Daher sollte der Treiber einen Wert von D3DKMDT_VIDPN_PRESENT_PATH_ROTATIONfestlegen.D3DKMDT_VPPR_ROTATE90_OFFSET270 auf dem Pfad. Diese Funktion gibt dann einen Rotation Wert 1 (Identität) zurück, um anzugeben, dass der im Klonpfad angezeigte Inhalt nicht gedreht werden soll.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
mindestens unterstützte Server- Windows Server 2012 R2
Zielplattform- Desktop
Header- d3dkmdt.h

Siehe auch

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent-