Share via


PDD_VPORTCB_UPDATE funzione di callback (ddrawint.h)

La funzione di callback DdVideoPortUpdate avvia e arresta l'oggetto VPE e modifica il flusso di dati dell'oggetto VPE.

Sintassi

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

Parametri

unnamedParam1

Punta a una struttura DD_UPDATEVPORTDATA che contiene le informazioni necessarie per il driver per aggiornare l'oggetto VPE.

Valore restituito

DdVideoPortUpdate restituisce uno dei codici di callback seguenti:

Commenti

I driver DirectDraw che supportano VPE devono implementare DdVideoPortUpdate.

Quando il membro dwFlags della struttura DD_UPDATEVPORTDATA in lpUpdate è DDRAWI_VPORTSTART o DDRAWI_VPORTUPDATE, il driver deve eseguire le operazioni seguenti:

  • Controllare tutti i flag nel membro dwVPFlags della struttura DDVIDEOPORTINFO a cui punta il membro lpVideoInfo di DD_UPDATEVPORTDATA. Questi flag descrivono come il driver deve trasferire i dati video a una superficie (o superfici); Ad esempio, indicano se il driver deve eseguire laflipping automatica, ritagliare i dati video o VBI e così via.
  • Configurare i cicli nell'hardware per scrivere dati video e/o VBI nelle superfici nell'ordine in cui le superfici vengono archiviate nelle matrici. Il driver deve restituire il più rapidamente possibile dopo la configurazione di questi cicli.
  • Se è stata richiesta laflipping automatica, archiviare l'offset del buffer dei fotogrammi per ogni superficie nella struttura dei dati interna del driver. Gli offset di superficie devono essere archiviati nell'ordine in cui si verificano le superfici nelle matrici DD_SURFACE_INT nei membri lplpDDSurface e lplpDDVBISurface di DD_UPDATEVPORTDATA. In questo modo, quando viene chiamato DdUpdateOverlay , il driver ha un record dell'ordine di capovolgimento della catena di superficie.
Se il membro dwVBIHeight della struttura DDVIDEOPORTINFO è maggiore di zero e lplpDDVBISurface non è NULL, il driver deve scrivere le righe di dati VBI specificate dal numero in dwVBIHeight in ogni superficie della matrice a cui punta lplpDDVBISurface .

Se l'hardware del driver non può supportare il numero di superfici specificate quando viene richiesta laflipping automatica, DdVideoPortUpdate non riesce la chiamata impostando DDERR_UNSUPPORTED nel membro ddRVal di DD_UPDATEVPORTDATA.

Il numero di superfici nelle catene di superfici video e VBI può essere diverso; ovvero i membri dwNumAutoflip e dwNumVBIAutoflip di DD_UPDATEVPORTDATA possono essere valori diversi.

Quando dwFlags è DDRAWI_VPORTSTOP, il driver deve restituire immediatamente. Il driver non deve eseguire il polling fino all'arresto del flusso di dati.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione ddrawint.h (include Winddi.h)

Vedi anche

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay