Partager via


Comportement en mode plein écran

Un pilote d’affichage en mode utilisateur peut déterminer qu’un périphérique de rendu est en mode plein écran :

  • Si l’indicateur de champ de bits Plein écran est défini dans le membre Flags de la D3DDDIARG_OPENRESOURCE structure vers laquelle pointe le paramètre pResource dans un appel à la fonction OpenResource du pilote.

  • Si l’indicateur de champ binaire principal est défini dans le membre Flags de la D3DDDIARG_CREATERESOURCE structure vers laquelle le paramètre pResource pointe dans un appel à la fonction CreateResource du pilote.

Une application développée pour Microsoft DirectX 9.0 ou version antérieure entraîne l’appel du runtime Microsoft Direct3D à OpenResource pour ouvrir la surface principale partagée, puis à CreateResource pour créer des mémoires tampons d’arrière-mémoire supplémentaires. Une application Microsoft DirectX 9L oblige le runtime Direct3D à appeler CreateResource (sans appeler OpenResource) pour créer toutes les mémoires tampons de la chaîne d’échange. Le runtime Direct3D spécifie l’orientation de la surface principale dans le membre Rotation des structures D3DDDIARG_OPENRESOURCE et D3DDDIARG_CREATERESOURCE vers laquelle pointe le paramètre pResource dans les appels aux fonctions OpenResource et CreateResource , respectivement.

Pour un appareil plein écran, un pilote d’affichage en mode utilisateur doit verrouiller une ressource pivotée, effectuer un rendu sur une ressource pivotée et effectuer des transferts de bloc de bits (bitblt) à partir d’une ressource pivotée. En règle générale, le pilote d’affichage en mode utilisateur crée des cibles de rendu intermédiaires dans l’orientation pivotée (tous les verrous, les bits binaires et les rendus vont à ces cibles de rendu intermédiaires) et les allocations primaires dans l’orientation paysage (autrement dit, l’orientation que le convertisseur numérique-analogique [DAC] utilise pour analyser). Lorsque le pilote d’affichage en mode utilisateur est appelé pour retourner les données, il effectue une rotation du bitblt de la cible de rendu intermédiaire vers la mémoire tampon paysage avant d’appeler la fonction pfnPresentCb pour émettre la commande flip.

Chaque fois qu’un pilote d’affichage en mode utilisateur doit effectuer un bitblt qui implique une ressource pivotée et une ressource non rotative, le runtime Direct3D spécifie l’indicateur de champ binaire Pivoter dans le membre Indicateurs de la structure D3DDDIARG_BLT dans un appel à la fonction Blt du pilote pour indiquer au pilote que la rotation appropriée doit se produire pour le bitblt.

Les applications DirectX 9L peuvent prendre en charge la rotation, ce qui signifie qu’elles restituent tout dans l’orientation appropriée et gèrent correctement les verrous dans une mémoire tampon pivotée. Lorsque le runtime Direct3D crée une chaîne d’échange pour une application prenant en charge la rotation, le runtime spécifie toujours la rotation comme D3DDDI_ROTATION_IDENTITY dans le membre Rotation de la structure D3DDDIARG_CREATERESOURCE , car le pilote d’affichage en mode utilisateur n’est pas tenu d’effectuer des actions spéciales pour que l’application prenant en charge la rotation fonctionne.