IDirect3DSwapChain9::P resent, méthode (d3d9.h)
Présente le contenu de la mémoire tampon suivante dans la séquence de mémoires tampons d’arrière-mémoire appartenant à la chaîne d’échange.
Syntaxe
HRESULT Present(
[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 le rectangle source (voir RECT). Utilisez NULL pour présenter la surface entière. Cette valeur doit être NULL , sauf si la chaîne d’échange a été créée avec D3DSWAPEFFECT_COPY. Si le rectangle dépasse la surface source, le rectangle est coupé à la surface source.
[in] pDestRect
Type : const RECT*
Pointeur vers le rectangle de destination en coordonnées client (voir RECT). Cette valeur doit être NULL , sauf si la chaîne d’échange a été créée avec D3DSWAPEFFECT_COPY. Utilisez NULL pour remplir la zone cliente entière. Si le rectangle dépasse la zone cliente de destination, le rectangle est coupé dans la zone cliente de destination.
[in] hDestWindowOverride
Type : HWND
Fenêtre de destination dont la zone cliente est prise comme cible pour cette présentation. Si cette valeur est NULL, le runtime utilise le membre hDeviceWindow de D3DPRESENT_PARAMETERS pour la présentation.
[in] pDirtyRegion
Type : const RGNDATA*
Cette valeur doit être NULL , sauf si la chaîne d’échange a été créée avec D3DSWAPEFFECT_COPY. Consultez Surfaces de glissement (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. Les rectangles dans la région sont l’ensemble minimal de pixels qui doivent être mis à jour. Cette 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 de D3DPRESENT_DONOTWAIT ou D3DPRESENT_LINEAR_CONTENT.
- 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_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_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)). Les applications doivent spécifier cet indicateur si le format backbuffer est à virgule flottante 16 bits afin de faire correspondre le mode fenêtré présent au comportement gamma plein écran.
Valeur retournée
Type : HRESULT
Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.
Notes
La méthode Present est un raccourci vers Present. Present a été mis à jour pour prendre un indicateur permettant à l’application de demander que la méthode retourne immédiatement lorsque le pilote signale qu’il ne peut pas planifier une présentation.
Si nécessaire, une opération d’étirement est appliquée pour transférer les pixels du rectangle source vers le rectangle de destination dans la zone cliente de la fenêtre cible.
Present échoue s’il est appelé entre les paires BeginScene et EndScene , sauf si la cible de rendu n’est pas la cible de rendu actuelle (par exemple, la mémoire tampon d’arrière-mémoire que vous obtenez en créant une chaîne d’échange supplémentaire). Il s’agit d’un nouveau comportement pour Direct3D 9.
Spécifications
Plateforme cible | Windows |
En-tête | d3d9.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |