Compartir a través de


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

La función de devolución de llamada DdVideoPortGetBandwidth informa de las limitaciones de ancho de banda de la memoria del búfer de fotogramas del dispositivo en función del formato de salida del objeto VPE especificado.

Sintaxis

PDD_VPORTCB_GETBANDWIDTH PddVportcbGetbandwidth;

DWORD PddVportcbGetbandwidth(
  PDD_GETVPORTBANDWIDTHDATA unnamedParam1
)
{...}

Parámetros

unnamedParam1

Apunta a una estructura de DD_GETVPORTBANDWIDTHDATA que contiene la información necesaria para que el controlador devuelva los datos de ancho de banda.

Valor devuelto

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

Comentarios

DdVideoPortGetBandwidth debe implementarse en controladores de DirectDraw que admitan VPE.

DdVideoPortGetBandwidth informa a los clientes de los requisitos de ancho de banda de cualquier formato especificado, lo que les ayuda a elegir un formato y comprender mejor sus limitaciones. El controlador solo puede proporcionar información precisa sobre el ancho de banda después de que se haya creado el objeto VPE porque el controlador necesita la información en la estructura DDVIDEOPORTDESC .

Normalmente, se llama a DdVideoPortGetBandwidth dos veces para obtener los parámetros de ancho de banda del puerto de vídeo de hardware especificado. Según el miembro dwFlags de la estructura de DD_GETVPORTBANDWIDTHDATA en lpGetVideoPortBandwidth, el controlador debe hacer lo siguiente:

  • Cuando se DDVPB_TYPE la marca, el controlador debe indicar el tipo de dispositivo que es estableciendo una de las marcas siguientes en el miembro dwCaps de la estructura DDVIDEOPORTBANDWIDTH a la que apunta el miembro lpBandwidth de DD_GETVPORTBANDWIDTHDATA:
    • DDVPBCAPS_DESTINATION indica que el dispositivo describirá sus funcionalidades de ancho de banda en términos del factor de extensión de superposición; es decir, que la información de ancho de banda devuelta por el controlador en la siguiente llamada a DdVideoPortGetBandwidth hará referencia al tamaño de la superposición de destino. Esta marca describe mejor el hardware que se actualiza de las superficies principal y superpuestas simultáneamente. A medida que se amplía el vídeo de destino, el hardware tiene más tiempo para leer los píxeles de la superficie de superposición, lo que reduce el ancho de banda de memoria necesario.
    • DDVPBCAPS_SOURCE indica que el dispositivo describirá sus funcionalidades de ancho de banda en términos del tamaño de superposición de origen necesario; es decir, que la información de ancho de banda devuelta por la siguiente llamada a DdVideoPortGetBandwidth hace referencia al tamaño de la superposición de origen. Esta marca describe mejor el hardware que captura previamente los datos de superposición en un búfer de línea o FIFO grande. Este hardware no requiere ancho de banda adicional, pero requiere que los datos de superposición de origen se ajusten completamente dentro del tamaño del búfer o FIFO admitido por el hardware.

    El controlador también debe establecer el miembro dwSize de la estructura DDVIDEOPORTBANDWIDTH antes de volver.

  • Cuando se DDVPB_VIDEOPORT la marca, los miembros dwWidth y dwHeight de la estructura DD_GETVPORTBANDWIDTHDATA hacen referencia al tamaño de escalado previo de los datos de vídeo que el puerto de vídeo de hardware escribirá en el búfer de fotogramas como superposición de origen. El controlador debe devolver un factor extendido de superposición en el que el dispositivo puede mostrar la superposición, multiplicada por 1000, en cada uno de los miembros dwOverlay, dwColorkey, dwYInterpolate y dwYInterpAndColorkey de la estructura DDVIDEOPORTBANDWIDTH. Por ejemplo, un valor de 2000 indica que el dispositivo tiene el ancho de banda para extender la superposición a dos veces el tamaño especificado del origen al mostrarla. Un valor de 1000 indica que no es necesario realizar ningún ajuste para el tamaño de datos especificado. Un valor de 500 indica que el dispositivo tiene suficiente ancho de banda para reducir el destino de superposición en la mitad. El controlador debe establecer un valor válido en dwOverlay, pero puede devolver -1 en cualquiera de los otros tres miembros que no admite.

    La marca DDVPB_VIDEOPORT supone que el dispositivo se describe mejor mediante la marca DDVPBCAPS_DESTINATION. Si no es así, el controlador debe producir un error en la llamada.

  • Cuando se establece la marca DDVPB_OVERLAY, los miembros dwWidth y dwHeight de la estructura DD_GETVPORTBANDWIDTHDATA hacen referencia al tamaño de superposición de origen. El controlador debe devolver un porcentaje del tamaño de esta superposición, multiplicado por 1000, en el que puede admitir la visualización de la superposición en cada uno de los miembros dwOverlay, dwColorkey, dwYInterpolate y dwYInterpAndColorkey de la estructura DDVIDEOPORTBANDWIDTH. Por ejemplo, un valor de 750 indica que el dispositivo requiere que la superposición de origen especificada se reduce al 75 % de su tamaño original para que el dispositivo lo muestre correctamente. Un valor de 1000 indica que no se requiere ninguna reducción. Los controladores para este tipo de dispositivo no suelen devolver un valor mayor que 1000. El controlador debe establecer un valor válido en dwOverlay, pero puede devolver 0 en cualquiera de los otros tres miembros si no admite la interpolación de colores o el eje Y.

    La marca DDVPB_OVERLAY supone que el dispositivo se describe mejor mediante la marca DDVPBCAPS_SOURCE. Si no es así, el controlador debe producir un error en la llamada.

Requisitos

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

Consulte también

DDVIDEOPORTBANDWIDTH

DDVIDEOPORTDESC

DD_GETVPORTBANDWIDTHDATA

DdVideoPortCreate