Compartir a través de


Función EngBitBlt (winddi.h)

La función EngBitBlt proporciona funcionalidades generales de transferencia de bloques de bits entre superficies administradas por el dispositivo o entre una superficie administrada por el dispositivo y un mapa de bits de formato estándar administrado por GDI.

Sintaxis

ENGAPI BOOL EngBitBlt(
       SURFOBJ  *psoTrg,
       SURFOBJ  *psoSrc,
       SURFOBJ  *psoMask,
       CLIPOBJ  *pco,
       XLATEOBJ *pxlo,
       RECTL    *prclTrg,
       POINTL   *pptlSrc,
       POINTL   *pptlMask,
       BRUSHOBJ *pbo,
       POINTL   *pptlBrush,
  [in] ROP4     rop4
);

Parámetros

psoTrg

Puntero a la estructura SURFOBJ que identifica la superficie en la que se va a dibujar.

psoSrc

Si el rop4 lo requiere, puntero a una estructura SURFOBJ que define el origen para la operación de transferencia de bloques de bits.

psoMask

Puntero a una estructura SURFOBJ que define una superficie que se usará como máscara. La máscara se define como un mapa de bits con 1 bit por píxel. Normalmente, una máscara limita el área que se va a modificar en la superficie de destino. El enmascaramiento se selecciona mediante un rop4 con el valor 0xAACC. La superficie de destino no se ve afectada cuando la máscara es cero.

La máscara es lo suficientemente grande como para cubrir el rectángulo de destino.

Si el valor de este parámetro es NULL y el rop4 requiere una máscara, se usa la máscara implícita en el pincel. Si se requiere una máscara, el elemento stackMask invalida la máscara implícita en el pincel.

pco

Puntero a una estructura CLIPOBJ . Las rutinas de servicio CLIPOBJ_Xxx se proporcionan para enumerar la región de clip como un conjunto de rectángulos. Esta enumeración limita el área del destino que se modificará. Siempre que sea posible, GDI simplifica el recorte implicado; por ejemplo, nunca se llama a esta función con un único rectángulo de recorte. GDI recorta el rectángulo de destino antes de llamar a esta función, lo que hace que el recorte adicional sea innecesario.

pxlo

Puntero a una estructura XLATEOBJ que indica cómo se deben traducir los índices de color entre las superficies de origen y de destino.

prclTrg

Puntero a una estructura RECTL en el sistema de coordenadas de la superficie de destino que define el área que se va a modificar. El rectángulo se define mediante dos puntos; superior izquierda e inferior derecha. Los bordes inferior y derecho de este rectángulo no forman parte de la transferencia de bloques de bits, lo que significa que el rectángulo es exclusivo de la parte inferior derecha.

Nunca se llama a EngBitBlt con un rectángulo de destino vacío. Los dos puntos que definen el rectángulo siempre están bien ordenados.

pptlSrc

Puntero a una estructura POINTL que define la esquina superior izquierda del rectángulo de origen, si existe un origen. Si no hay ningún origen, el controlador debe omitir este parámetro.

pptlMask

Puntero a una estructura POINTL que define qué píxel de la máscara corresponde a la esquina superior izquierda del rectángulo de destino. Si no se especifica ninguna máscara en la máscara, el controlador debe omitir este parámetro.

pbo

Puntero a la estructura BRUSHOBJ que se va a usar para definir el patrón para la transferencia de bloques de bits. La rutina de servicio de BRUSHOBJ_pvGetRbrush de GDI recupera la realización del pincel del dispositivo. El controlador puede omitir este parámetro si el parámetro rop4 no requiere un patrón.

pptlBrush

Puntero a una estructura POINTL que define el origen del pincel en la superficie de destino. El píxel superior izquierdo del pincel se alinea en este punto y el pincel se repite según sus dimensiones. Omita este parámetro si el parámetro rop4 no requiere un patrón.

[in] rop4

Representa una operación de trama que define cómo se combinan los píxeles de máscara, patrón, origen y destino para escribir un píxel de salida en la superficie de destino.

Se trata de una operación ráster cuaternaria, que es una extensión natural de la operación ternaria habitual Rop3. Un Rop4 tiene 16 bits relevantes, que son similares a los 8 bits que definen un Rop3. (Se omiten los demás bits redundantes de Rop3). La manera más sencilla de implementar un Rop4 es tener en cuenta sus 2 bytes por separado. El byte inferior especifica un Rop3 que se debe calcular dondequiera que la máscara sea 1. El byte alto especifica un Rop3 que se puede calcular y aplicar dondequiera que la máscara sea 0.

Valor devuelto

El valor devuelto es TRUE si la función se realiza correctamente. De lo contrario, es FALSE y se registra un código de error.

Comentarios

Si la superficie de un dispositivo se organiza como un mapa de bits de formato estándar, el controlador puede solicitar que GDI realice la transferencia de bloques de bits llamando a EngBitBlt. Un controlador puede hacerlo si tiene hardware especial para controlar transferencias sencillas rápidamente, pero no quiere controlar las llamadas con transferencias complicadas.

Consulte la documentación de Microsoft Windows SDK para obtener más información sobre las operaciones de trama.

Requisitos

   
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado winddi.h (incluya Winddi.h)
Library Win32k.lib
Archivo DLL Win32k.sys

Consulte también

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ