Partager via


PDD_VPORTCB_UPDATE fonction de rappel (ddrawint.h)

La fonction de rappel DdVideoPortUpdate démarre et arrête l’objet VPE, puis modifie le flux de données d’objet VPE.

Syntaxe

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

Paramètres

unnamedParam1

Pointe vers une structure DD_UPDATEVPORTDATA qui contient les informations nécessaires au pilote pour mettre à jour l’objet VPE.

Valeur retournée

DdVideoPortUpdate retourne l’un des codes de rappel suivants :

Notes

Les pilotes DirectDraw qui prennent en charge VPE doivent implémenter DdVideoPortUpdate.

Lorsque le membre dwFlags de la structure DD_UPDATEVPORTDATA sur lpUpdate est DDRAWI_VPORTSTART ou DDRAWI_VPORTUPDATE, le pilote doit effectuer les opérations suivantes :

  • Vérifiez tous les indicateurs dans le membre dwVPFlags de la structure DDVIDEOPORTINFO sur laquelle pointe le membre lpVideoInfo de DD_UPDATEVPORTDATA. Ces indicateurs décrivent comment le pilote doit transférer des données vidéo vers une surface (ou des surfaces) ; par exemple, ils indiquent si le pilote doit effectuer une capture automatique, rogner les données vidéo ou VBI , etc.
  • Configurez des boucles dans le matériel pour écrire des données vidéo et/ou VBI sur les surfaces dans l’ordre dans lequel les surfaces sont stockées dans les tableaux. Le pilote doit revenir le plus rapidement possible après la configuration de ces boucles.
  • Si la capture automatique a été demandée, stockez le décalage de mémoire tampon de trame pour chaque surface dans la structure de données interne du pilote. Les décalages de surface doivent être stockés dans l’ordre dans lequel les surfaces se produisent dans les tableaux DD_SURFACE_INT aux membres lplpDDSurface et lplpDDVBISurface de DD_UPDATEVPORTDATA. De cette façon, lorsque DdUpdateOverlay est appelé, le pilote dispose d’un enregistrement de l’ordre de basculement de la chaîne de surface.
Si le membre dwVBIHeight de la structure DDVIDEOPORTINFO est supérieur à zéro et que lplpDDVBISurface n’a pas la valeur NULL, le pilote doit écrire les lignes de données VBI spécifiées par le nombre dans dwVBIHeight dans chaque surface du tableau vers laquelle lplpDDVBISurface pointe.

Si le matériel du pilote ne peut pas prendre en charge le nombre de surfaces spécifié lors de la demande de capture automatique, DdVideoPortUpdate doit échouer l’appel en définissant DDERR_UNSUPPORTED dans le membre ddRVal de DD_UPDATEVPORTDATA.

Le nombre de surfaces dans les chaînes de surface vidéo et VBI peut être différent ; autrement dit, les membres dwNumAutoflip et dwNumVBIAutoflip de DD_UPDATEVPORTDATA peuvent être des valeurs différentes.

Lorsque dwFlags est DDRAWI_VPORTSTOP, le pilote doit revenir immédiatement. Le pilote ne doit pas interroger tant que le flux de données ne s’arrête pas.

Spécifications

   
Plateforme cible Desktop (Expérience utilisateur)
En-tête ddrawint.h (inclure Winddi.h)

Voir aussi

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay