Freigeben über


Unterstützung der Drehung in einem Display-Miniport-Treiber

Die DxgkDdiEnumVidPnCofuncModality-Funktion eines Anzeigeminiporttreibers ruft die PfnUpdatePathSupportInfo-Funktion auf, um die Rotationsunterstützung für jeden Pfad in einer VidPN-Topologie (Video Present Network) zu melden. Weitere Informationen zur Unterstützung der Berichtsrotation finden Sie unter Enumerating Cofunctional VidPN Source and Target Modes(Enumerating Cofunctional VidPN Source and Target Modes).

Das Microsoft DirectX-Grafikkernsubsystem verwendet nicht gedrehte Oberflächendimensionen, um die freigegebene primäre Oberfläche zu erstellen. Um einen Anzeige-Miniporttreiber zu benachrichtigen, die Oberfläche zu drehen, gibt das DirectX-Grafikkernsubsystem D3DKMDT_VIDPN_PRESENT_PATH_ROTATION typisierte Werte im Rotationselement der D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION-Struktur an, die im ContentTransformation-Member der D3DKMDT_VIDPN_PRESENT_PATH-Struktur in Aufrufen der DxgkDdiCommitVidPn und DxgkDdiUpdateActiveVidPnPresentPath des Anzeige-Miniporttreibers angegeben ist. Funktionen.

Hinweis Alle Drehungsgrade werden gegen den Uhrzeigersinn definiert, was mit der Definition der Drehung durch GDI übereinstimmt.

Wenn das DirectX-Subsystem den Anzeigeminiporttreiber benachrichtigt, die Oberfläche zu drehen, sollte der Treiber die Oberflächendaten nur drehen, wenn das Bitfeldflag Rotieren im Flags-Element der DXGKARG_PRESENT-Struktur festgelegt wurde, auf die der pPresent-Parameter in einem Aufruf der DxgkDdiPresent-Funktion des Treibers verweist. Selbst wenn der Treiber feststellt, dass die aktuelle Ausrichtung des Bildschirms von den Präsentationsdaten gedreht wird und Rotieren nicht festgelegt wurde, sollte der Treiber die Daten nicht rotieren.

Verhalten im Klonmodus

Der Klonmodus ist ein Modus, in dem eine video present-Quelle über mehrere Pfade in einem Video präsenten Netzwerk eine Verbindung mit mehreren video present-Zielen herstellt. (Weitere Informationen zu Video-Present-Netzwerken finden Sie unter Mehrere Monitore und Video Present Networks.)

Ein Anzeige-Miniporttreiber behandelt die Drehung anders, wenn er im Klonmodus ausgeführt wird, da jedes Ziel möglicherweise eine andere Drehung erfordert. Das Betriebssystem, verschiedene Versionen von Microsoft DirectX-Runtimes und Clients im Benutzermodus erkennen nur die Ausrichtung des primären Videoziels. Daher entspricht der Inhalt in der vorliegenden Videoquelle immer der Ausrichtung des primären Videoziels.

Die folgende Tabelle zeigt, wie sich ein Anzeige-Miniporttreiber im Klonmodus für alle relevanten Situationen verhält. Die Einstellung des Rotieren-Flags ist die Einstellung des Bitfelds Drehen im Flags-Member der DXGKARG_PRESENT-Struktur .

Primäres Ziel Sekundäres Ziel Rotieren des Flags Treiberverhalten

Nicht gedreht

Nicht gedreht

Nicht festgelegt

Der Treiber führt keine Drehung durch.

Nicht gedreht

Gedreht

Nicht festgelegt

Der Treiber rotiert das sekundäre Ziel, obwohl das Rotieren-Flag nicht festgelegt ist.

Gedreht

Nicht gedreht

Set

Der Treiber rotiert das primäre Ziel, aber nicht das sekundäre Ziel.

Gedreht

Nicht gedreht

Nicht festgelegt

Da Rotieren nicht festgelegt ist, rotiert der Treiber das primäre Ziel nicht. Da das sekundäre Ziel nicht mit der Ausrichtung des Inhalts in der Quelle übereinstimmt, muss der Treiber das sekundäre Ziel rotieren.

Diese Situation tritt auf, wenn der Client rotationsfähig ist und den Inhalt der Quelle bereits ordnungsgemäß ausgerichtet hat. Daher legt das Betriebssystem rotieren nicht fest.

Gedreht

Gedreht

Set

Der Treiber rotiert sowohl das primäre als auch das sekundäre Ziel.

Gedreht

Gedreht

Nicht festgelegt

Der rotationsfähige Client hat den Inhalt der Quelle bereits ordnungsgemäß ausgerichtet. Daher ist keine zusätzliche Drehung erforderlich.

Anforderungen für den Klonmodus ab Windows 8.1 Update

Ab Windows 8.1 Update müssen Treiber diese Anforderungen erfüllen. Wenn die Testsignatur aktiviert ist, tritt eine Systemfehlerüberprüfung auf, wenn ein Treiber diese Anforderungen nicht erfüllt.

Primärer Klonpfad
Definition: Der Pfad, der den Zielmonitor enthält, der die Quellanzeige dupliziert, z. B. einen externen Monitor, der die Anzeige auf einem Laptop dupliziert.

Anforderung: Im primären Klonpfad muss der Treiber Offset0 auf TRUE und die anderen drei Offsetwerte in D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT auf FALSE festlegen.

Bei einer Quellanzeige im Hochformat ist der primäre Klonpfad nicht rotiert versetzt. Dies bedeutet, dass der primäre Klonpfad immer einen Offset von 0 (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT hat. Offset0 ist TRUE, und der Desktopfenster-Manager (DWM) rotiert den Inhalt im Voraus, um der richtigen Ausrichtung zu entsprechen.

Der primäre Klonpfad bestimmt die Aktualisierungsrate des Monitors für alle primären und sekundären Klonziele.

Sekundärer Klonpfad
Definition: Der Pfad, der alle zusätzlichen Zielmonitore enthält, die nicht Teil des primären Klonpfads sind, der auch die Quellanzeige dupliziert.

Anforderung: Im sekundären Klonpfad muss der Treiber mindestens einen der vier Offsetwerte in D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT auf TRUE festlegen. Wenn der Treiber keine pfadunabhängige Drehung unterstützt, sollte offset0 in allen sekundären Klonpfaden auf TRUE festgelegt werden.

Im Folgenden finden Sie zwei Beispiele für Einstellungen, die der Treiber vornehmen sollte, wenn er eine pfadunabhängige Drehung unterstützt:

Querformat-First-Beispiel
Wenn die Quellanzeige und das Ziel im sekundären Klonpfad beide Monitore im Querformat sind, würde der Treiber im sekundären Klonpfad D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT festlegen. Offset0 auf TRUE und die anderen drei Offsetwerte in D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT auf FALSE. Alternativ würde der Treiber in diesem Fall im sekundären Klonpfad sowohl Offset0 als auch Offset180 auf TRUE und die anderen Offsetwerte auf FALSE festlegen.

Portrait-First-Beispiel
Wenn es sich bei der Quellanzeige um ein Gerät im Hochformat handelt und eine Verbindung mit einem externen Monitor im Querformat hergestellt wird, würde der Treiber im sekundären Klonpfad entweder Offset270 oder Offset90 auf TRUE festlegen.

Weitere Informationen finden Sie unter Unterstützen Path-Independent Drehung.