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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour