Partager via


Prise en charge de la rotation dans un pilote miniport d’affichage

La fonction DxgkDdiEnumVidPnCofuncModality d’un pilote miniport d’affichage appelle la fonction pfnUpdatePathSupportInfo pour signaler la prise en charge de la rotation pour chaque chemin d’accès dans une topologie de réseau vidéo présent (VidPN). Pour plus d’informations sur la prise en charge de la rotation de création de rapports, consultez Énumération des modes source et cible VidPN cofonctionnels.

Le sous-système du noyau graphique Microsoft DirectX utilise des dimensions de surface non pivotées pour créer la surface principale partagée. Pour avertir un pilote miniport d’affichage de faire pivoter la surface, le sous-système du noyau graphique DirectX spécifie des valeurs de type D3DKMDT_VIDPN_PRESENT_PATH_ROTATION dans le membre Rotation de la structure D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION spécifié dans le membre ContentTransformation de la structure D3DKMDT_VIDPN_PRESENT_PATH dans les appels aux DxgkDdiCommitVidPn et DxgkDdiUpdateActiveVidPnPresentPath du pilote miniport d’affichage Fonctions.

Note Tous les degrés de rotation sont définis dans le sens inverse des aiguilles d’une montre, ce qui est cohérent avec la façon dont GDI définit la rotation.

Lorsque le sous-système DirectX avertit le pilote de miniport d’affichage de faire pivoter la surface, le pilote doit faire pivoter les données de surface uniquement si l’indicateur de champ de bits Pivot a été défini dans le membre Indicateurs de la structure DXGKARG_PRESENT vers laquelle pointe le paramètre pPresent dans un appel à la fonction DxgkDdiPresent du pilote. Même si le pilote détermine que l’orientation actuelle de l’écran est pivotée à partir des données de présentation et que La rotation n’a pas été définie, le pilote ne doit pas faire pivoter les données.

Comportement en mode clone

Le mode clone est un mode dans lequel une source de présentation vidéo se connecte à plusieurs cibles de présentation vidéo via plusieurs chemins d’accès dans un réseau vidéo présent. (Pour plus d’informations sur les réseaux de présentation vidéo, consultez Multiple Monitors et Video Present Networks.)

Un pilote miniport d’affichage gère la rotation différemment s’il fonctionne en mode clone, car chaque cible peut nécessiter une rotation différente. Le système d’exploitation, les différentes versions des runtimes Microsoft DirectX et les clients en mode utilisateur détectent uniquement l’orientation de la cible principale de la vidéo présente. Par conséquent, le contenu de la source présente de la vidéo correspondra toujours à l’orientation de la cible principale de la vidéo présente.

Le tableau suivant montre comment un pilote de miniport d’affichage se comporte en mode clone pour toutes les situations pertinentes. Le paramètre de l’indicateur Rotation est le paramètre du champ de bits Pivoter dans le membre Indicateurs de la structure DXGKARG_PRESENT .

Cible principale Cible secondaire Faire pivoter l’indicateur Comportement du pilote

Non pivoté

Non pivoté

Non défini

Le pilote n’effectue aucune rotation.

Non pivoté

Tourné

Non défini

Le pilote fait pivoter la cible secondaire même si l’indicateur Rotation n’est pas défini.

Tourné

Non pivoté

Définissez

Le pilote fait pivoter la cible principale, mais pas la cible secondaire.

Tourné

Non pivoté

Non défini

Étant donné que La rotation n’est pas définie, le pilote ne fait pas pivoter la cible principale. Étant donné que la cible secondaire ne correspond pas à l’orientation du contenu dans la source, le pilote doit faire pivoter la cible secondaire.

Cette situation se produit lorsque le client prend en charge la rotation et qu’il a déjà orienté correctement le contenu de la source. Par conséquent, le système d’exploitation ne définit pas Pivoter.

Tourné

Tourné

Définissez

Le pilote fait pivoter les cibles primaire et secondaire.

Tourné

Tourné

Non défini

Le client prenant en charge la rotation a déjà correctement orienté le contenu de la source. Par conséquent, aucune rotation supplémentaire n’est requise.

Conditions requises pour le mode clone à partir de Mise à jour Windows 8.1

À compter de Mise à jour Windows 8.1, les pilotes doivent répondre à ces exigences. Si la signature de test est activée, une vérification de bogue système se produit si un pilote ne répond pas à ces exigences.

Chemin du clone principal
Définition: Chemin qui inclut le moniteur cible qui duplique l’affichage source, par exemple, un moniteur externe qui duplique l’affichage sur un ordinateur portable.

Exigence: Dans le chemin du clone principal, le pilote doit définir Offset0 sur TRUE et les 3 autres valeurs de décalage dans D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORTsur FALSE.

Dans le cas d’un affichage source portrait-first, le chemin du clone principal n’est pas décalé par rotation. Cela signifie que le chemin du clone principal a toujours un décalage de zéro (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset0 a la valeur TRUE), et le Gestionnaire de fenêtres de bureau (DWM) fait pivoter son contenu à l’avance pour correspondre à l’orientation appropriée.

Le chemin d’accès au clone principal détermine le taux d’actualisation du moniteur pour toutes les cibles de clone principal et secondaire.

Chemin d’accès au clone secondaire
Définition: Chemin d’accès qui inclut tout moniteur cible supplémentaire, qui ne fait pas partie du chemin d’accès du clone principal, qui dupliquez également l’affichage source.

Exigence: Dans le chemin de clone secondaire, le pilote doit définir au moins l’une des 4 valeurs de décalage dans D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT sur TRUE. Si le pilote ne prend pas en charge la rotation indépendante du chemin d’accès, il doit définir Offset0 sur TRUE dans tous les chemins de clone secondaires.

Voici deux exemples de paramètres que le pilote doit effectuer s’il prend en charge la rotation indépendante du chemin :

Exemple de paysage d’abord
Si l’affichage source et la cible dans le chemin de clone secondaire sont tous deux des moniteurs paysage, dans le chemin de clone secondaire, le pilote définit D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT. Offset0 sur TRUE et les 3 autres valeurs de décalage dans D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT sur FALSE. Dans ce cas, dans le chemin de clone secondaire, le pilote définit Offset0 et Offset180 sur TRUE et les autres valeurs de décalage sur FALSE.

Exemple portrait-first
Si l’affichage source est un appareil portrait-first et se connecte à un moniteur externe paysage, dans le chemin de clone secondaire, le pilote définit Offset270 ou Offset90 sur TRUE.

Pour plus d’informations, consultez Prise en charge de la rotation Path-Independent.