D3DKMDT_VPPR_GET_CONTENT_ROTATION-Funktion (d3dkmdt.h)

Eine Hilfsfunktion, die die kombinierte Drehung extrahiert, die dem Benutzer aus der Standardanzeigeausrichtung aus einem bestimmten Wert der D3DKMDT_VIDPN_PRESENT_PATH_ROTATION-Enumeration angezeigt wird. Dieser Wert ist effektiv die Summe des Offsetwinkels und des Winkels, den der Desktopfenster-Manager (DWM) bereits gedreht hat. Nur Treiber, die eine pfadunabhängige Rotation (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 der Eingabe ein Wert aus der D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Enumeration.

In der Ausgabe ein Wert zwischen 1 und 4, einschließlich, der dem OFFSET-Teil des D3DKMDT_VIDPN_PRESENT_PATH_ROTATION konstanten Werten entspricht. Ein Ausgabewert von 1 (Identität) stellt 0 Grad der Gesamtrotation, 2 90 Grad usw. dar. Der Ausgabewert 0 gibt an, dass der VidPN-Pfad nicht initialisiert wird.

Der Ausgabewert von Rotation ist die Summe der Ausgabewerte der 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 Offsetwinkeln wie folgt:

Eingabeaufzählungswert Eingabeaufzählungskonstante Drehung + Offset, in Grad Ausgaberotationswert
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

Hinweise

Diese Funktion wird in "D3dkmdt.h" als inline deklariert:

__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 angezeigte Inhalt vom Treiber gedreht werden muss, stellt die Ausgabe dieser Funktion die Gesamtrotation (das Rotieren-Element der DXGK_PRESENTFLAGS-Struktur ) dar, die der Treiber auf die im DxgkDdiPresent-Vorgang bereitgestellten Pixel anwenden muss. Weitere Informationen finden Sie unter Unterstützung Path-Independent Drehung.

Hier sehen Sie ein Beispiel dafür, wie diese Funktion Ihrem Treiber die Informationen bereitstellen kann, die er zum ordnungsgemäßen Rotieren von Inhalten benötigt. Wenn ein Hochformatgerät im Klonmodus mit einem Monitor im Querformat verbunden ist und der Benutzer die Ausrichtungim Anzeige-Bedienfeld in Hochformat ändert, stellt dies die Standardausrichtung des Geräts im Hochformat dar. Daher sollte der Treiber den Wert D3DKMDT_VIDPN_PRESENT_PATH_ROTATION festlegen. D3DKMDT_VPPR_ROTATE90_OFFSET270 auf den Pfad. Diese Funktion gibt dann den Rotationswert 1 (Identität) zurück, um anzugeben, dass der im Klonpfad angezeigte Inhalt nicht gedreht werden soll.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Unterstützte Mindestversion (Server) Windows Server 2012 R2
Zielplattform Desktop
Kopfzeile d3dkmdt.h

Weitere Informationen

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent