Superposición de DDI

Esta sección solo se aplica a Windows 7 y versiones posteriores, y Windows Server 2008 R2 y versiones posteriores del sistema operativo Windows.

La DDI superpuesta es una extensión para direct3D versión 9 DDI para comprobar la compatibilidad con la superposición. La DDI superpuesta consta de los siguientes puntos de entrada:

  • El tiempo de ejecución de Direct3D usa el valor D3DDDICAPS_CHECKOVERLAYSUPPORT de la enumeración D3DDDICAPS_TYPE para comprobar si el dispositivo para mostrar admite una superposición determinada. El tiempo de ejecución establece D3DDDICAPS_CHECKOVERLAYSUPPORT en el miembro Type de la estructura D3DDDIARG_GETCAPS a la que apunta el parámetro pData de la función GetCaps del controlador cuando el tiempo de ejecución llama a GetCaps. El runtime también establece el miembro pInfo de D3DDDIARG_GETCAPS en un puntero a una estructura DDICHECKOVERLAYSUPPORTINPUT que describe la superposición. Si el controlador admite la superposición, el controlador establece los miembros de una estructura D3DOVERLAYCAPS y devuelve un puntero a esta estructura en el miembro pData de D3DDDIARG_GETCAPS. De lo contrario, si el controlador no admite la superposición, el controlador produce un error en la llamada a su función GetCaps con D3DDDIERR_UNSUPPORTEDOVERLAYFORMAT o D3DDDIERR_UNSUPPORTEDOVERLAY dependiendo de si la falta de compatibilidad se basa en el formato de superposición. D3DOVERLAYCAPS se describe en la documentación del SDK de DirectX.

    El controlador establece los miembros MaxOverlayDisplayWidth y MaxOverlayDisplayHeight de D3DOVERLAYCAPS para indicar las restricciones que el controlador y el hardware podrían tener, lo que implica el tamaño de superposición final (después de ampliar los datos de superposición).

    El controlador establece los bits de funcionalidad de D3DOVERLAYCAPS_STRETCHX (0x00000040) y D3DOVERLAYCAPS_STRETCHY (0x00000080) en el miembro Caps de D3DOVERLAYCAPS para indicar que el hardware de superposición es capaz de estirar y reducir arbitrariamente los datos de superposición. Los controladores no deben intentar emular la superposición que se extiende a través de la GPU y solo deben establecer estos límites si el hardware de superposición admite el ajuste. Normalmente, se requiere menos sobrecarga para que la aplicación realice el ajuste de GPU como parte de la fase de procesamiento y composición de vídeo que para que el controlador realice un paso independiente al final para emular el ajuste de superposición.

  • El controlador debe controlar las siguientes marcas de campo de bits nuevas de la estructura D3DDDI_OVERLAYINFOFLAGS . Una estructura de D3DDDI_OVERLAYINFOFLAGS identifica el tipo de operación de superposición que se va a realizar. Se especifica una estructura D3DDDI_OVERLAYINFOFLAGS en el miembro Flags de la estructura D3DDDI_OVERLAYINFO en una llamada a la función CreateOverlay o UpdateOverlay del controlador.

    LimitedRGB
    La superposición es RGB de intervalo limitado en lugar de RGB de rango completo. En el intervalo limitado RGB, el rango RGB se comprime de modo que 16:16:16 es negro y 235:235:235 es blanco.

    YCbCrBT709
    La superposición es BT.709, que indica tv de alta definición (HDTV), en lugar de BT.601.

    YCbCrxvYCC
    La superposición se extiende YCbCr (xvYCC) en lugar de YCbCr convencional.

  • Cuando el formato de presentación es de 64 bits en lugar de 32 bits (por ejemplo, cuando el Administrador de Windows de escritorio (DWM) usa D3DFMT_A16B16G16R16F para el modo de visualización), el tiempo de ejecución coloca los 32 bits inferiores de la clave de color de superposición en el miembro DstColorKeyLow de la estructura D3DDDI_OVERLAYINFO y los 32 bits superiores en el miembro DstColorKeyHigh de D3DDDI_OVERLAYINFO.