Compartir a través de


Función EngStretchBltROP (winddi.h)

La función EngStretchBltROP realiza una transferencia de bloques de bits de extensión mediante un ROP.

Sintaxis

ENGAPI BOOL EngStretchBltROP(
       SURFOBJ         *psoDest,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMask,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlHTOrg,
  [in] RECTL           *prclDest,
  [in] RECTL           *prclSrc,
       POINTL          *pptlMask,
  [in] ULONG           iMode,
       BRUSHOBJ        *pbo,
  [in] DWORD           rop4
);

Parámetros

psoDest

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 transferencia de bloques de bits.

psoMask

Puntero a una estructura SURFOBJ que define una máscara para la superficie de origen. La máscara se define mediante un mapa lógico, que es 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. Esta máscara siempre debe tener el mismo tamaño que la superficie de origen.

pco

Puntero a una estructura CLIPOBJ que limita el área que se va a modificar en el destino. Las rutinas de servicio CLIPOBJ_Xxx se proporcionan para enumerar la región de clip como un conjunto de rectángulos.

Siempre que sea posible, GDI simplifica el recorte implicado. Sin embargo, a diferencia de EngBitBlt, se puede llamar a EngStretchBltROP con un solo rectángulo de recorte. Esto evita errores de redondeo en el recorte de la salida.

pxlo

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

Esta estructura XLATEOBJ también se puede consultar para buscar el color RGB de cualquier índice de origen. Una transferencia de bloques de bits de alta calidad deberá interpolar colores en algunos casos.

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 Windows SDK.

pptlHTOrg

Puntero a una estructura POINTL que define el origen del pincel de medio tono en la superficie de destino. Cuando se usan pinceles de medio tono, GDI alinea el píxel superior izquierdo del patrón del pincel en este momento y repite el pincel según sus dimensiones. GDI omite este parámetro si el parámetro rop4 no requiere un patrón.

[in] prclDest

Puntero a una estructura RECTL que define el área rectangular que se va a modificar. Este rectángulo se especifica en el sistema de coordenadas de la superficie de destino y se define mediante dos puntos: superior izquierda e inferior derecha. Los dos puntos que definen el rectángulo no siempre están bien ordenados, lo que significa que las coordenadas del segundo punto no son necesariamente mayores que las del primer punto. Si el rectángulo de destino no está bien ordenado, GDI lo convierte en así.

El rectángulo es exclusivo de la parte inferior derecha; es decir, sus bordes inferior y derecho no forman parte de la copia.

Nunca se debe llamar a EngStretchBltROP con un rectángulo de destino vacío.

[in] prclSrc

Puntero a una estructura RECTL que define el área que se va a copiar. Este rectángulo se especifica en el sistema de coordenadas de la superficie de origen y se define mediante dos puntos: superior izquierdo e inferior derecho. Los dos puntos que definen el rectángulo siempre están bien ordenados.

El rectángulo es exclusivo de la parte inferior derecha; es decir, sus bordes inferior y derecho no forman parte de la copia.

Este rectángulo se asigna al rectángulo al que apunta prclDest .

Nunca se debe llamar a EngStretchBltROP con un rectángulo de origen vacío.

pptlMask

Puntero a una estructura POINTL que define el píxel de la máscara a la que apunta prclMask . Este píxel corresponde al píxel superior izquierdo del rectángulo de origen al que apunta prclSrc . Este parámetro se omite si no se especifica ninguna máscara; es decir, GDI omite pptlMask cuando prclMask es NULL.

[in] iMode

Especifica cómo se combinan los píxeles de origen para obtener píxeles de salida. El modo HALFTONE es más lento que los demás modos, pero genera imágenes de mayor calidad. Este parámetro puede ser uno de los valores siguientes:

Valor Significado
BLACKONWHITE En una transferencia de bloque de bits de reducción, GDI combina píxeles con una operación BOOLEAN AND. En una transferencia de bloques de bits de extensión, los píxeles se replican.
COLORONCOLOR En una transferencia de bloque de bits de reducción, GDI omite suficientes píxeles para que no se necesiten combinar píxeles. En una transferencia de bloques de bits de extensión, los píxeles se replican.
SEMITONOS GDI usa 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 booleana. En una transferencia de bloques de bits de extensión, se deben replicar píxeles.

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. GDI omite 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 a la que apunte la máscara es 1. El byte alto especifica un Rop3 que se puede calcular y aplicar dondequiera que la máscara sea cero.

Valor devuelto

EngStretchBltROP devuelve TRUE tras el éxito. De lo contrario, notifica un error y devuelve FALSE.

Comentarios

El controlador debe llamar a EngStretchBltROP si ha conectado DrvStretchBltROP , pero no puede admitir todas las operaciones.

La asignación se define mediante prclSrc y prclDest. Los puntos especificados en prclDest y prclSrc se encuentran en coordenadas enteras que corresponden a centros de píxeles. Un rectángulo definido por dos puntos de este tipo se considera un rectángulo geométrico con dos vértices cuyas coordenadas son los puntos dados, pero con 0,5 restado de cada coordenada. (Las estructuras POINTL son notación abreviada para especificar estos vértices de coordenada fraccionaria).

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

EngPlgBlt

EngStretchBlt

EngTransparentBlt