Compartir a través de


Función EngPlgBlt (winddi.h)

La función EngPlgBlt hace que GDI realice una transferencia de bloque de bits de rotación.

Sintaxis

ENGAPI BOOL EngPlgBlt(
       SURFOBJ         *psoTrg,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMsk,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlBrushOrg,
       POINTFIX        *pptfx,
       RECTL           *prcl,
       POINTL          *pptl,
  [in] ULONG           iMode
);

Parámetros

psoTrg

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

psoSrc

Puntero a una estructura SURFOBJ que describe la superficie de origen para la operación de transferencia de bloques de bits.

psoMsk

Puntero a una estructura SURFOBJ opcional que representa una máscara para el origen. Se define mediante un mapa lógico, que es un mapa de bits con un bit por píxel.

Esta máscara limita el área del origen que se copia. Una máscara tiene un rop4 implícito de 0xCCAA, lo que significa que el origen debe copiarse dondequiera que la máscara sea 1, pero el destino debe dejarse solo dondequiera que la máscara sea cero.

Si este parámetro es NULL, hay un rop4 implícito de 0xCCCC, lo que significa que el origen se debe copiar en todas partes del rectángulo de origen.

La máscara siempre será lo suficientemente grande como para contener el origen pertinente; El mosaico no es necesario.

pco

Puntero a una estructura CLIPOBJ que limita el área del destino que se va a modificar. Las funciones de GDI enumeran la región de clip como un conjunto de rectángulos.

Siempre que sea posible, GDI simplifica el recorte implicado. A diferencia de la función DrvBitBlt , se puede llamar a EngPlgBlt con un único rectángulo de recorte. Esto evita errores de redondeo en el recorte de la salida.

pxlo

Puntero a una estructura XLATEOBJ que define cómo se traducen los índices de color entre las superficies de origen y de destino. Esta estructura XLATEOBJ se puede consultar para buscar el color RGB de cualquier índice de origen.

Se necesita una transferencia de bloques de bits de rotación de alta calidad para interpolar colores.

pca

Puntero a una estructura COLORADJUSTMENT que define los valores de ajuste de color que se aplicarán al mapa de bits de origen antes de estirar los bits. Para obtener más información, consulte la documentación de Microsoft Windows SDK.

pptlBrushOrg

Puntero a una estructura POINTL que especifica el origen del pincel de medio tono. Los controladores que usan pinceles de medio tono deben alinear el píxel superior izquierdo del patrón del pincel con este punto en la superficie del dispositivo.

pptfx

Puntero a tres estructuras POINTFIX que definen un paralegrama en la superficie de destino. Un cuarto vértice implícito se da como: D = B + C – A. Para obtener una descripción de este tipo de datos, consulte Tipos de datos GDI.

Nunca se llama a EngPlgBlt con A, B y C collinear.

prcl

Puntero a una estructura RECTL que define, en el sistema de coordenadas de la superficie de origen, el área que se va a copiar. Los puntos del rectángulo de origen están bien ordenados. EngPlgBlt nunca se le proporcionará un rectángulo de origen vacío.

pptl

Puntero a una estructura POINTL que especifica qué píxel de la máscara especificada corresponde al píxel superior izquierdo del rectángulo de origen. Omita este parámetro si el parámetro esNULL.

[in] iMode

Define cómo se combinan los píxeles de origen para obtener píxeles de salida. Este parámetro puede ser uno de los valores siguientes:

Valor Significado
BLACKONWHITE En una transferencia de bloque de bits de reducción, los píxeles deben combinarse con una operación AND. En un píxel de transferencia de bloques de bits de extensión debe replicarse.
COLORONCOLOR En una transferencia de bloque de bits de reducción, se deben omitir suficientes píxeles para que no sea necesario combinar píxeles. En una transferencia de bloques de bits de extensión, se deben replicar píxeles.
SEMITONOS El controlador puede usar grupos de píxeles en la superficie de salida para aproximar mejor el color o el nivel gris de la entrada.
WHITEONBLACK En una transferencia de bloque de bits de reducción, los píxeles deben combinarse con una operación OR. En las transferencias de bloques de extensión, se deben replicar píxeles.
 

Los métodos WHITEONBLACK, BLACKONWHITE y COLORONCOLOR son simples y proporcionan compatibilidad con aplicaciones antiguas, pero no producen los mejores resultados de búsqueda para las superficies de color.

Valor devuelto

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

Comentarios

EngPlgBlt solo realiza determinados tipos de rotaciones.

Esta función realiza transferencias de bloques de bits de un rectángulo definido por prcl a cualquier parallelograma. El parallelogram se define mediante pptfx, que apunta a una matriz de tres puntos.

El rectángulo de origen en prcl se considera un rectángulo geométrico cuyas esquinas se desplazan por (-0,5,-0,5) de las coordenadas de enteros especificadas. Esto coincide exactamente con el rectángulo de origen de EngStretchBlt. El rectángulo de origen siempre está bien ordenado.

La esquina superior izquierda del rectángulo de origen se asigna al primer punto, A. La esquina superior derecha del rectángulo de origen se asigna al segundo punto, B. La esquina inferior izquierda del rectángulo de origen se asigna al tercer punto, C. La esquina inferior derecha del rectángulo de origen se asigna al punto implícito del paralelismo definido tratando los tres puntos dados como vectores e informática:

D = B + C - A

Tenga en cuenta que una blit elástica se puede expresar exactamente como una blit de parallelogram, pero las coordenadas dadas para el destino serán divisibles en cinco.

Requisitos

Requisito Value
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

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt