Share via


Función EngStretchBlt (winddi.h)

La función EngStretchBlt hace que GDI realice una transferencia de bloques de bits de extensión.

Sintaxis

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

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 el origen. La máscara se define mediante un mapa lógico, que es un mapa de bits con un bit por píxel.

La máscara limita el área del origen que se copia. Si se especifica este parámetro, tiene un rop4 implícito de 0xCCAA, lo que significa que el origen debe copiarse siempre que la máscara sea 1, pero el destino debe dejarse solo donde la máscara sea 0.

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

pco

Puntero a una estructura CLIPOBJ que limita el área que se va a modificar en el destino. Los servicios GDI se proporcionan para enumerar la región del clip como un conjunto de rectángulos.

Siempre que sea posible, GDI simplifica el recorte implicado. Sin embargo, a diferencia de DrvBitBlt, se puede llamar a EngStretchBlt 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 encontrar el color RGB de cualquier índice de origen. Una transferencia de bloques de bits de alta calidad deberá interpolar colores en algunos casos.

[in] 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.

[in] pptlHTOrg

Puntero a una estructura POINTL que define el origen del pincel de media 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.

[in] prclDest

Puntero a una estructura RECTL que define el área que se va a modificar en el sistema de coordenadas de la superficie de destino. Este rectángulo se define mediante dos puntos que no están bien ordenados, lo que significa que las coordenadas del segundo punto no son necesariamente mayores que las del primer punto. El rectángulo descrito no incluye los bordes inferior y derecho. Nunca se llama a esta función con un rectángulo de destino vacío.

Si el rectángulo de destino no está bien ordenado, EngStretchBlt lo hace bien ordenado.

[in] prclSrc

Puntero a una estructura RECTL que define el área que se va a copiar, en el sistema de coordenadas de la superficie de origen. El rectángulo se asignará al rectángulo definido por prclDest. Esta función nunca recibe un rectángulo de origen vacío y los puntos del rectángulo de origen siempre están bien ordenados.

La asignación se define mediante prclSrc y prclDest. Los puntos especificados en prclDest y prclSrc se encuentran en coordenadas enteras, que corresponden a los 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).

Los bordes de cualquier rectángulo nunca intersecan un píxel, pero van alrededor de un conjunto de píxeles. Los píxeles que están dentro del rectángulo son los esperados para un rectángulo exclusivo inferior derecho. EngStretchBlt asigna el rectángulo de origen geométrico exactamente al rectángulo de destino geométrico.

pptlMask

Puntero a una estructura POINTL que define el píxel de la máscara especificada que corresponde al píxel superior izquierdo del rectángulo de origen. Este parámetro se omite si no se especifica ninguna máscara.

[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.

Valor Significado
BLACKONWHITE En una transferencia de bloques de bits de reducción, los píxeles deben combinarse con una operación BOOLEAN AND. En una transferencia de bloques de bits de extensión, se deben replicar píxeles.
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 nivel de color o gris de la entrada.
WHITEONBLACK En una transferencia de bloques 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.

Valor devuelto

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

Comentarios

Esta función permite aplicar el mismo algoritmo de halftoning a mapas de bits GDI y superficies de dispositivo.

El controlador debe llamar a EngStretchBlt si ha enganchado DrvStretchBlt y se llama a para hacer algo que el controlador no admite.

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

CLIPOBJ

DrvBitBlt

DrvStretchBlt

SURFOBJ

XLATEOBJ