IDirectDrawSurface7 ::Flip, méthode (ddraw.h)
Rend la mémoire de surface associée à l’DDSCAPS_BACKBUFFER surface deviennent associées à la surface de mémoire tampon frontale.
Syntaxe
HRESULT Flip(
[in] LPDIRECTDRAWSURFACE7 unnamedParam1,
[in] DWORD unnamedParam2
);
Paramètres
[in] unnamedParam1
Pointeur vers l’interface IDirectDrawSurface7 pour une surface arbitraire dans la chaîne de basculement. La valeur par défaut de ce paramètre est NULL, auquel cas DirectDraw effectue des cycles dans les mémoires tampons dans l’ordre où elles sont attachées les unes aux autres. Si ce paramètre n’a pas la valeur NULL, DirectDraw bascule vers la surface spécifiée, au lieu de la surface suivante dans la chaîne de basculement. Le basculement échoue si la surface spécifiée n’est pas membre de la chaîne de basculement.
[in] unnamedParam2
Combinaison d’indicateurs qui spécifient des options de basculement. Les indicateurs suivants sont définis :
DDFLIP_DONOTWAIT
Sur les interfaces IDirectDrawSurface7 , la valeur par défaut est DDFLIP_WAIT. Si vous souhaitez remplacer la valeur par défaut et utiliser l’heure pendant laquelle l’accélérateur est occupé (comme indiqué par la valeur de retour DDERR_WASSTILLDRAWING), utilisez DDFLIP_DONOTWAIT.
DDFLIP_EVEN
À utiliser uniquement lors de l’affichage de la vidéo dans une surface de superposition. La nouvelle surface contient des données du champ pair d’un signal vidéo. Cet indicateur ne peut pas être utilisé avec l’indicateur DDFLIP_ODD.
DDFLIP_STEREO
DirectDraw retourne et affiche une surface stéréo main. Lorsque cet indicateur est défini, la capture automatique stéréo est activée. Le matériel bascule automatiquement entre les mémoires tampons gauche et droite lors de chaque actualisation de l’écran.
DDFLIP_INTERVAL2
DDFLIP_INTERVAL3
DDFLIP_INTERVAL4
Les indicateurs DDFLIP_INTERVAL2, DDFLIP_INTERVAL3 et DDFLIP_INTERVAL4 indiquent le nombre de traces verticales à attendre entre chaque retournement. La valeur par défaut est 1. DirectDraw retourne DERR_WASSTILLDRAWING pour chaque surface impliquée dans le retournement jusqu’à ce que le nombre spécifié de traces verticales se soit produit. Si DDFLIP_INTERVAL2 est défini, DirectDraw bascule chaque seconde synchronisation verticale ; si DDFLIP_INTERVAL3, sur une synchronisation sur trois ; et si DDFLIP_INTERVAL4, sur chaque quatrième synchronisation.
Ces indicateurs sont effectifs uniquement si DDCAPS2_FLIPINTERVAL bit est défini dans le membre dwCaps2 de la structure DDCAPS retourné pour le matériel d’affichage.
DDFLIP_NOVSYNC
Permet à DirectDraw d’effectuer le basculement physique aussi près que possible de la ligne d’analyse suivante. Les opérations suivantes qui impliquent les deux surfaces inversées ne case activée pas si le retournement physique est terminé, c’est-à-dire qu’elles ne retournent pas DDERR_WASSTILLDRAWING pour cette raison (mais peuvent pour d’autres raisons). Cela permet à une application d’effectuer des flips à une fréquence supérieure à la fréquence d’actualisation du moniteur, mais peut introduire des artefacts visibles.
Si DDCAPS2_FLIPNOVSYNC n’est pas défini dans le membre dwCaps2 de la structure DDCAPS retourné pour le matériel d’affichage, DDFLIP_NOVSYNC n’a aucun effet.
DDFLIP_ODD
À utiliser uniquement lors de l’affichage de la vidéo dans une surface de superposition. La nouvelle surface contient des données provenant du champ impair d’un signal vidéo. Cet indicateur ne peut pas être utilisé avec l’indicateur DDFLIP_EVEN.
DDFLIP_WAIT
En règle générale, si le basculement ne peut pas être configuré parce que l’état du matériel d’affichage n’est pas approprié, l’erreur DDERR_WASSTILLDRAWING retourne immédiatement et aucun basculement ne se produit. La définition de cet indicateur permet à Flip de continuer à essayer de retourner s’il reçoit l’erreur DDERR_WASSTILLDRAWING de la couche d’abstraction matérielle (HAL). Flip ne retourne pas tant que l’opération de basculement n’a pas été correctement configurée ou qu’une autre erreur, telle que DDERR_SURFACEBUSY, n’est pas retournée.
Valeur retournée
Si la méthode réussit, la valeur de retour est DD_OK.
En cas d’échec, la méthode peut retourner l’une des valeurs d’erreur suivantes :
- DDERR_GENERIC
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_NOFLIPHW
- DDERR_NOTFLIPPABLE
- DDERR_SURFACEBUSY
- DDERR_SURFACELOST
- DDERR_UNSUPPORTED
- DDERR_WASSTILLDRAWING
Remarques
Avec IDirectDrawSurface7, le comportement par défaut de Flip consiste à attendre que l’accélérateur se termine. Par conséquent, dans les conditions par défaut, flip ne retourne jamais DDERR_WASSTILLDRAWING. Si vous souhaitez voir les codes d’erreur et ne pas attendre que l’opération de retournement réussisse, utilisez l’indicateur DDFLIP_DONOTWAIT.
Le flip peut être appelé uniquement pour une surface qui a les fonctionnalités DDSCAPS_FLIP et DDSCAPS_FRONTBUFFER. La mémoire d’affichage précédemment associée à la mémoire tampon avant est associée à la mémoire tampon arrière.
Le paramètre lpDDSurfaceTargetOverride est utilisé dans de rares cas où la mémoire tampon arrière n’est pas la mémoire tampon qui doit devenir la mémoire tampon avant. En règle générale, ce paramètre a la valeur NULL.
Le retournement est toujours synchronisé avec le vide vertical. Si la surface a été affectée à un port vidéo, cette méthode met à jour la surface de superposition visible et la surface cible du port vidéo.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | ddraw.h |
Bibliothèque | Ddraw.lib |
DLL | Ddraw.dll |