IDirect3DDevice9Ex ::P resentEx, méthode (d3d9.h)

Échangez la mémoire tampon suivante de la chaîne d’échange avec la mémoire tampon avant.

Syntaxe

HRESULT PresentEx(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Paramètres

[in] pSourceRect

Type : const RECT*

Pointeur vers une structure RECT indiquant la région sur la surface source à copier dans les coordonnées du client de fenêtre. S’applique uniquement lorsque la chaîne d’échange a été créée avec l’indicateur D3DSWAPEFFECT_COPY . Si la valeur est NULL, toute la surface source est présentée. Si le rectangle dépasse la surface source, il est coupé à la surface source.

[in] pDestRect

Type : const RECT*

Pointeur vers la structure RECT indiquant la région cible sur la surface de destination dans les coordonnées du client de fenêtre. S’applique uniquement lorsque la chaîne d’échange a été créée avec l’indicateur D3DSWAPEFFECT_COPY . Si la valeur est NULL, la zone cliente entière est remplie. Si le rectangle dépasse la zone cliente de destination, il est coupé dans la zone cliente de destination.

[in] hDestWindowOverride

Type : HWND

Pointeur vers une fenêtre de destination dont la zone cliente est considérée comme cible pour cette présentation. Si cette valeur est NULL, le runtime utilise le membre hDeviceWindow de D3DPRESENT_PARAMETERS pour la présentation.

Note Si vous créez une chaîne d’échange avec D3DSWAPEFFECT_FLIPEX, vous devez passer NULL à hDestWindowOverride
 

[in] pDirtyRegion

Type : const RGNDATA*

Pointeur vers une structure RGNDATA indiquant le plus petit ensemble de pixels à transférer. Cette valeur doit être NULL , sauf si la chaîne d’échange a été créée avec l’indicateur D3DSWAPEFFECT_COPY . Pour plus d’informations sur les chaînes d’échange, consultez Retourner des surfaces (Direct3D 9).

Si cette valeur n’est pas NULL, la région contenue est exprimée en coordonnées de mémoire tampon arrière. La méthode prend ces rectangles en compte lors de l’optimisation de la présentation en copiant uniquement les pixels dans la région, ou un ensemble de rectangles correctement développé. Il s’agit d’une aide à l’optimisation uniquement, et l’application ne doit pas s’appuyer sur la région copiée exactement. L’implémentation peut choisir de copier l’intégralité du rectangle source.

[in] dwFlags

Type : DWORD

Permet à l’application de demander que la méthode retourne immédiatement lorsque le pilote signale qu’il ne peut pas planifier une présentation. Les valeurs valides sont 0 ou toute combinaison d’indicateurs D3DPRESENT .

  • Si dwFlags = 0, cette méthode se comporte comme avant Direct3D 9. Le présent tourne jusqu’à ce que le matériel soit libre, sans retourner d’erreur.
  • Si dwFlags = D3DPRESENT_DONOTFLIP le pilote d’affichage est appelé avec la mémoire tampon avant comme surface source et cible. Le pilote répond en planifiant une synchronisation d’images, mais en ne modifiant pas la surface affichée. Cet indicateur est uniquement disponible en mode plein écran ou lors de l’utilisation de D3DSWAPEFFECT_FLIPEX en mode fenêtré.
  • Si dwFlags = D3DPRESENT_DONOTWAIT et que le matériel est occupé à traiter ou à attendre un intervalle de synchronisation vertical, la méthode retourne D3DERR_WASSTILLDRAWING.
  • Si dwFlags = D3DPRESENT_FORCEIMMEDIATE, D3DPRESENT_INTERVAL_IMMEDIATE est appliqué à cet appel Présent. Cet indicateur ne peut être spécifié que lors de l’utilisation de D3DSWAPEFFECT_FLIPEX. Ce comportement est le même pour les modes fenêtré et plein écran.
  • Si dwFlags = D3DPRESENT_LINEAR_CONTENT, la correction gamma est effectuée à partir de l’espace linéaire vers sRGB pour les chaînes d’échange fenêtrés. Cet indicateur prend effet uniquement lorsque le pilote expose D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (voir Gamma (Direct3D 9)).

Valeur retournée

Type : HRESULT

Les valeurs de retour possibles sont les suivantes : S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED ou D3DERR_OUTOFVIDEOMEMORY (voir D3DERR). Pour plus d’informations sur les appareils perdus, suspendus et supprimés, consultez Modifications du comportement des appareils perdus.

Différences entre Direct3D 9 et Direct3D 9Ex :

D3DSWAPEFFECT_FLIPEX est disponible uniquement dans Direct3D9Ex s’exécutant sur Windows 7 (ou un système d’exploitation plus actuel).

Remarques

Semblable à la méthode IDirect3DDevice9 ::P resent , PresentEx ajoute un paramètre dwflags.

Lorsque la chaîne d’échange est créée avec D3DSWAPEFFECT_FLIPEX indicateur, les valeurs pSourceRect, pDestRect et pDirtyRegion doivent avoir la valeur NULL.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d9.h
Bibliothèque D3D9.lib

Voir aussi

IDirect3DDevice9Ex