Share via


PDD_VPORTCB_UPDATE función de devolución de llamada (ddrawint.h)

La función de devolución de llamada DdVideoPortUpdate inicia y detiene el objeto VPE y modifica el flujo de datos del objeto VPE.

Sintaxis

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

Parámetros

unnamedParam1

Apunta a una estructura de DD_UPDATEVPORTDATA que contiene la información necesaria para que el controlador actualice el objeto VPE.

Valor devuelto

DdVideoPortUpdate devuelve uno de los siguientes códigos de devolución de llamada:

Comentarios

Los controladores de DirectDraw que admiten VPE deben implementar DdVideoPortUpdate.

Cuando el miembro dwFlags de la estructura de DD_UPDATEVPORTDATA en lpUpdate es DDRAWI_VPORTSTART o DDRAWI_VPORTUPDATE, el controlador debe hacer lo siguiente:

  • Compruebe todas las marcas del miembro dwVPFlags de la estructura DDVIDEOPORTINFO a la que apunta el miembro lpVideoInfo de DD_UPDATEVPORTDATA. Estas marcas describen cómo el controlador debe transferir datos de vídeo a una superficie (o superficies); por ejemplo, indican si el controlador debe realizar el autoflipping, recortar los datos de vídeo o VBI , etc.
  • Configure bucles en el hardware para escribir datos de vídeo o VBI en las superficies en el orden en que las superficies se almacenan en las matrices. El controlador debe devolver lo antes posible después de configurar estos bucles.
  • Si se ha solicitado autoflipping, almacene el desplazamiento del búfer de fotogramas para cada superficie en la estructura de datos interna del controlador. Los desplazamientos de superficie deben almacenarse en el orden en que las superficies se producen en las matrices de DD_SURFACE_INT en los miembros lplpDDSurface y lplpDDVBISurface de DD_UPDATEVPORTDATA. De este modo, cuando se llama a DdUpdateOverlay , el controlador tiene un registro del orden de volteo de la cadena de superficie.
Si el miembro dwVBIHeight de la estructura DDVIDEOPORTINFO es mayor que cero y lplpDDVBISurface no es NULL, el controlador debe escribir las líneas de datos VBI especificados por el número de dwVBIHeight en cada superficie de la matriz a la que apunta lplpDDVBISurface .

Si el hardware del controlador no puede admitir el número de superficies especificadas cuando se solicita autoflipping, DdVideoPortUpdate debe producir un error en la llamada estableciendo DDERR_UNSUPPORTED en el miembro ddRVal de DD_UPDATEVPORTDATA.

El número de superficies en las cadenas de superficies de vídeo y VBI puede ser diferente; es decir, los miembros dwNumAutoflip y dwNumVBIAutoflip de DD_UPDATEVPORTDATA pueden ser valores diferentes.

Cuando dwFlags se DDRAWI_VPORTSTOP, el controlador debe volver inmediatamente. El controlador no debe sondear hasta que se detenga el flujo de datos.

Requisitos

   
Plataforma de destino Escritorio
Encabezado ddrawint.h (incluya Winddi.h)

Consulte también

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay