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 |