structure DXGI_PRESENT_PARAMETERS (dxgi1_2.h)
Décrit des informations sur la présentation qui aident le système d’exploitation à optimiser la présentation.
Syntaxe
typedef struct DXGI_PRESENT_PARAMETERS {
UINT DirtyRectsCount;
RECT *pDirtyRects;
RECT *pScrollRect;
POINT *pScrollOffset;
} DXGI_PRESENT_PARAMETERS;
Membres
DirtyRectsCount
Nombre de rectangles mis à jour que vous mettez à jour dans la mémoire tampon arrière pour le cadre présenté. Le système d’exploitation utilise ces informations pour optimiser la présentation. Vous pouvez définir ce membre sur 0 pour indiquer que vous mettez à jour l’ensemble du cadre.
pDirtyRects
Liste des rectangles mis à jour que vous mettez à jour dans la mémoire tampon arrière pour le cadre présenté. Une application doit mettre à jour chaque pixel de chaque rectangle qu’elle signale au runtime ; l’application ne peut pas supposer que les pixels sont enregistrés à partir du cadre précédent. Pour plus d’informations sur la mise à jour des rectangles sale, consultez Remarques. Vous pouvez définir ce membre sur NULL si DirtyRectsCount a la valeur 0. Une application ne doit mettre à jour aucun pixel en dehors des rectangles de sale.
pScrollRect
Pointeur vers le rectangle défilé. Le rectangle défilé est le rectangle de l’image précédente à partir de laquelle le bloc de bits runtime transfère le contenu (bitblts). Le runtime utilise également le rectangle défilé pour optimiser la présentation dans les scénarios de terminal server et d’affichage indirect.
Le rectangle défilé décrit également le rectangle de destination, c’est-à-dire la région sur le cadre actuel qui est rempli de contenu défilé. Vous pouvez définir ce membre sur NULL pour indiquer qu’aucun contenu n’est défilé à partir du cadre précédent.
pScrollOffset
Pointeur vers le décalage de la zone défilée qui va du rectangle source (du cadre précédent) au rectangle de destination (du cadre actuel). Vous pouvez définir ce membre sur NULL pour indiquer aucun décalage.
Remarques
Cette structure est utilisée par la méthode Present1 .
Le rectangle de défilement et la liste des rectangles sale peuvent se chevaucher. Dans ce cas, les rectangles sale sont prioritaires. Les applications peuvent alors avoir des éléments de contenu dynamique au-dessus d’une zone défilante. Par exemple, une application peut faire défiler une page et lire une vidéo en même temps.
Le diagramme et les coordonnées suivants illustrent cet exemple.
DirtyRectsCount = 2
pDirtyRects[ 0 ] = { 10, 30, 40, 50 } // Video
pDirtyRects[ 1 ] = { 0, 70, 50, 80 } // New line
*pScrollRect = { 0, 0, 50, 70 }
*pScrollOffset = { 0, -10 }
Les parties de l’image précédente et du contenu que l’application restitue sont combinées pour produire l’image finale que le système d’exploitation présente sur l’écran d’affichage. La plupart de la fenêtre est défiler à partir du cadre précédent. L’application doit mettre à jour l’image vidéo avec le nouveau segment de contenu qui s’affiche en raison du défilement.
Le rectangle en pointillés affiche le rectangle de défilement dans le cadre actuel. Le rectangle de défilement est spécifié par le membre pScrollRect . La flèche affiche le décalage de défilement. Le décalage de défilement est spécifié par le membre pScrollOffset . Les rectangles remplis indiquent sale rectangles que l’application a mis à jour avec le nouveau contenu. Les rectangles remplis sont spécifiés par les membres DirtyRectsCount et pDirtyRects .
Le rectangle de défilement et le décalage ne sont pas pris en charge pour l’option DXGI_SWAP_EFFECT_DISCARD ou DXGI_SWAP_EFFECT_SEQUENTIAL présent. Les rectangles sales et les rectangles de défilement ne sont pas pris en charge pour les chaînes d’échange multi-échantillonnée.
L’implémentation réelle de la composition et des bitblts nécessaires est différente pour le modèle bitblt et le modèle flip. Pour plus d’informations sur ces modèles, consultez Modèle inversé DXGI.
Pour plus d’informations sur la chaîne d’échange de modèle inversé et l’optimisation de la présentation, consultez Amélioration de la présentation avec le modèle de retournement, les rectangles sale et les zones défilantes.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau | Applications UWP] |
En-tête | dxgi1_2.h |