fonction D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)

Fonction d’assistance qui extrait la rotation combinée que l’utilisateur voit à partir de l’orientation d’affichage par défaut à partir d’une valeur donnée de l’énumération D3DKMDT_VIDPN_PRESENT_PATH_ROTATION . Cette valeur est en fait la somme de l’angle de décalage et de l’angle que le Gestionnaire de fenêtres de bureau (DWM) a déjà fait pivoter le contenu du chemin d’accès de clone principal. Seuls les pilotes qui prennent en charge la rotation indépendante du chemin (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) doivent appeler cette fonction.

Syntaxe

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);

Paramètres

Rotation

En entrée, une valeur de l’énumération D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .

En sortie, une valeur comprise entre 1 et 4, inclusive, qui correspond à la partie OFFSET de la D3DKMDT_VIDPN_PRESENT_PATH_ROTATION valeurs constantes. Une valeur de sortie de 1 (identité) représente 0 degrés de rotation totale, 2 représente 90 degrés, et ainsi de suite. Une valeur de sortie de 0 indique que le chemin d’accès VidPN n’est pas initialisé.

La valeur de sortie de Rotation est la somme des valeurs de sortie des fonctions D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART et D3DKMDT_VPPR_GET_OFFSET_ROTATION moins 1.

Valeur retournée

La valeur retournée correspond aux angles de rotation et de décalage comme suit :

Valeur d’énumération d’entrée Constante d’énumération d’entrée Rotation + décalage, en degrés Valeur de rotation de sortie
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

Remarques

Cette fonction est déclarée inline dans D3dkmdt.h comme suit :

__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;
}

Si le contenu présenté doit être pivoté par le pilote, la sortie de cette fonction représente la rotation totale (le membre Pivoter de la structure DXGK_PRESENTFLAGS ) que le pilote doit appliquer aux pixels fournis dans l’opération DxgkDdiPresent . Pour plus d’informations, consultez Prise en charge de la rotation Path-Independent.

Voici un exemple de la façon dont cette fonction peut fournir à votre pilote les informations dont il a besoin pour faire pivoter correctement le contenu. Lorsqu’un appareil portrait-first est connecté en mode clone à un moniteur paysage-first et que l’utilisateur change l’orientation dans le panneau de configuration Afficher en Portrait, cela représente l’orientation par défaut de l’appareil portrait-first. Par conséquent, le pilote doit définir une valeur de D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 sur le chemin. Cette fonction retourne ensuite une valeur de rotation de 1 (identité) pour indiquer que le contenu affiché sur le chemin du clone ne doit pas être pivoté.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
Serveur minimal pris en charge Windows Server 2012 R2
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dkmdt.h

Voir aussi

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART

D3DKMDT_VPPR_GET_OFFSET_ROTATION

DXGK_PRESENTFLAGS

DxgkDdiPresent