Compartir a través de


HT_Get8BPPMaskPalette función (winddi.h)

La función HT_Get8BPPMaskPalette devuelve una paleta de máscaras para un tipo de dispositivo de 8 bits por píxel.

Sintaxis

LONG HT_Get8BPPMaskPalette(
  [in, out] LPPALETTEENTRY pPaletteEntry,
  [in]      BOOL           Use8BPPMaskPal,
  [in]      BYTE           CMYMask,
  [in]      USHORT         RedGamma,
  [in]      USHORT         GreenGamma,
  [in]      USHORT         BlueGamma
);

Parámetros

[in, out] pPaletteEntry

Puntero a la matriz de estructuras PALETTEENTRY (descritas en la documentación de Windows SDK) que se van a rellenar. GDI supone que apunta a un espacio de memoria válido en el que GDI puede colocar toda la paleta de 8 bits por píxel.

Para un controlador que se ejecuta en Windows XP y versiones posteriores del sistema operativo, GDI comprueba pPaletteEntry[0] para determinar cómo devolver la paleta CMY compuesta. Si pPaletteEntry[0] se establece en 'RGB0', la paleta estará en uno de los modos de CMY_INVERTED y tendrá sus índices invertidos. Es decir, el índice 0 de la paleta es negro y el índice 255 es blanco. Si pPaletteEntry[0] no está establecido en 'RGB0', la paleta es una paleta CMY normal, con el índice 0 siendo blanco y el índice 255 es negro. Consulte Using GDI 8-Bit-Per-Pixel CMY Mask Modes for new requirements and details on how to use this parameter.

Windows 2000 omite cualquier valor que el controlador coloque en pPaletteEntry[0]. Por este motivo, si el controlador está pensado para ejecutarse en Windows 2000 y en Windows XP o versiones posteriores, y el controlador establece pPaletteEntry[0] en 'RGB0', los mapas de bits que recibe el controlador de Windows XP y versiones posteriores podrían invertir sus colores, en relación con los recibidos de Windows 2000. Por lo tanto, este controlador debe examinar la paleta antes de descargar un mapa de bits.

[in] Use8BPPMaskPal

Indica qué tipo de paleta se debe devolver. Cuando Use8BPPMaskPal es TRUE, HT_Get8BPPMaskPalette establece el parámetro pPaletteEntry con la dirección de una paleta CMY (una matriz de estructuras PALETTEENTRY) que se describe mediante la máscara de bits especificada en CMYMask. Cuando Use8BPPMaskPal es FALSE, la función establece pPaletteEntry con la dirección de una paleta rgb de 8 bits por píxel estándar.

[in] CMYMask

Especifica información sobre la matriz de estructuras PALETTEENTRY a las que apunta pPaletteEntry. Este parámetro puede tener uno de los valores siguientes:

Valor Significado
0 Escala de grises con 256 niveles
1 Cinco niveles cada uno de cian, magenta y amarillo (cada uno comprendido entre 0 y 4), para un total de 125 colores
2 Seis niveles cada uno de cian, magenta y amarillo (cada uno comprendido entre 0 y 5), para un total de 216 colores
De 3 a 255 Máscara de bits que especifica el número máximo de niveles de cian, magenta y amarillo, respectivamente.
 

Los controladores que se ejecutan en Windows 2000 deben restringirse a monocromo de 8 bits por píxel. Es decir, el valor de CMYMask usado debe ser 0.

Para Windows XP y versiones posteriores del sistema operativo, y para todos los valores de CMYMask, el valor de pPaletteEntry[0] determina si la paleta que sigue a pPaletteEntry[0] es una paleta CMY normal o una de las paletas de modo CMY_INVERTED. Para obtener más información, consulte la descripción del parámetro pPaletteEntry .

Para los valores de CMYMask de 3 a 255, ambos incluidos, el valor es una máscara de bits en la que los grupos de bits tienen los significados siguientes:

  • Los tres bits más altos (bits 7,6,5) especifican el número de niveles de cian. Como máximo, siete niveles de cian (niveles de 1 a 7) son posibles.
  • Los tres bits intermedios (bits 4,3,2) especifican el número de niveles de magenta. Como máximo, siete niveles de magenta (niveles 1 a 7) son posibles.
  • Los dos bits más bajos (bits 1,0) especifican el número de niveles de amarillo. Como máximo, tres niveles de amarillo (niveles 1 a 3) son posibles.
Para los valores de CMYMask comprendidos entre 3 y 255, cualquier combinación de máscara de bits en la que los bits de nivel cian, magenta o amarillo no son válidos. En tales casos, HT_Get8BPPMaskPalette devuelve un recuento de paletas de cero. Consulte Uso de modos de máscara CMY de 8 bits por píxel de GDI para obtener más información.

[in] RedGamma

Si Use8BPPMaskPal es TRUE, no se usa el valor de este parámetro. En ese caso, los valores gamma se especificarán en el miembro ciDevice de la estructura GDIINFO .

Si Use8BPPMaskPal es FALSE, el valor de este parámetro especifica el valor gamma rojo, fuera de los valores gamma rojo, verde y azul que GDI va a usar para corregir gamma la paleta. El valor de USHORT se interpreta como un número real cuyos cuatro dígitos menos significativos están a la derecha del separador decimal. Por ejemplo, un valor gamma de 10000 representa el número real 1,0000 y 12345 representa 1,2345. El valor gamma mínimo permitido es 0,0000 y el valor máximo permitido es 6,5535.

[in] GreenGamma

Si Use8BPPMaskPal es TRUE, no se usa el valor de este parámetro. En ese caso, los valores gamma se especificarán en el miembro ciDevice de la estructura GDIINFO .

Si Use8BPPMaskPal es FALSE, el valor de este parámetro especifica el valor gamma verde, fuera de los valores gamma rojo, verde y azul que GDI va a usar para corregir gamma la paleta. El valor de USHORT se interpreta como un número real cuyos cuatro dígitos menos significativos están a la derecha del separador decimal. Por ejemplo, un valor gamma de 10000 representa el número real 1,0000 y 12345 representa 1,2345. El valor gamma mínimo permitido es 0,0000 y el valor máximo permitido es 6,5535.

[in] BlueGamma

Si Use8BPPMaskPal es TRUE, no se usa el valor de este parámetro. En ese caso, los valores gamma se especificarán en el miembro ciDevice de la estructura GDIINFO .

Si Use8BPPMaskPal es FALSE, el valor de este parámetro especifica el valor gamma azul, fuera de los valores gamma rojo, verde y azul que GDI va a usar para corregir gamma la paleta. El valor de USHORT se interpreta como un número real cuyos cuatro dígitos menos significativos están a la derecha del separador decimal. Por ejemplo, un valor gamma de 10000 representa el número real 1,0000 y 12345 representa 1,2345. El valor gamma mínimo permitido es 0,0000 y el valor máximo permitido es 6,5535.

Valor devuelto

Si pPaletteEntry no es NULL, HT_Get8BPPMaskPalette devuelve el número de estructuras PALETTEENTRY que GDI ha rellenado en la matriz a la que apunta pPaletteEntry . Si pPaletteEntry es NULL, el valor devuelto es el recuento total de estructuras PALETTEENTRY necesarias para almacenar la paleta de tonos medio.

Si se usa un valor no válido del parámetro CMYMask en la llamada a esta función, HT_Get8BPPMaskPalette devuelve un valor de cero.

Comentarios

La estructura PALETTEENTRY se documenta en la documentación de Windows SDK.

Llamar a HT_Get8BPPMaskPalette con use8BPPMaskPal establecido en FALSE equivale a llamar a HT_Get8BPPFormatPalette.

Consulte Using GDI 8-Bit-Per-Pixel CMY Mask Modes para obtener más información sobre esta función y cómo se usan sus parámetros.

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

HT_Get8BPPFormatPalette