Estructura DEVINFO (winddi.h)
La estructura DEVINFO proporciona información sobre el controlador y su PDEV privado al motor gráfico.
Sintaxis
typedef struct tagDEVINFO {
FLONG flGraphicsCaps;
LOGFONTW lfDefaultFont;
LOGFONTW lfAnsiVarFont;
LOGFONTW lfAnsiFixFont;
ULONG cFonts;
ULONG iDitherFormat;
USHORT cxDither;
USHORT cyDither;
HPALETTE hpalDefault;
FLONG flGraphicsCaps2;
} DEVINFO, *PDEVINFO;
Miembros
flGraphicsCaps
Es un conjunto de marcas que describen las funcionalidades gráficas del controlador de gráficos o su hardware. Estas marcas se definen en la tabla siguiente.
Marca | Definición |
---|---|
GCAPS_ALTERNATEFILL | Controla rellenos alternativos. |
GCAPS_ARBRUSHOPAQUE | Admite un pincel arbitrario para el rectángulo opaco de texto (color de fondo). |
GCAPS_ARBRUSHTEXT | Admite un pincel arbitrario para el color de primer plano del texto. |
GCAPS_ASYNCCHANGE | Este marcador está obsoleto. En los controladores heredados, esta marca indica que el controlador puede cambiar la forma del puntero en el hardware mientras se está produciendo otro dibujo en el dispositivo. |
GCAPS_ASYNCMOVE | El controlador puede mover el puntero en hardware mientras se está produciendo otro dibujo en el dispositivo. |
GCAPS_BEZIERS | Controla las curvas Bezier. |
GCAPS_CMYKCOLOR | El controlador admite el espacio de color CYMK. |
GCAPS_COLOR_DITHER | Controla el dithering de color en una superficie compatible con PDEV. |
GCAPS_DIRECTDRAW | Este marcador está obsoleto. |
GCAPS_DITHERONREALIZE | Especifica que GDI puede llamar a DrvRealizeBrush con rgb para que se dithere directamente. |
GCAPS_DONTJOURNAL | No permite la impresión de metarchivos en este controlador de impresora. Esto solo es válido para controladores de dominio de impresora y, por lo general, dará lugar a un tiempo de retorno a la aplicación más lento al imprimir. |
GCAPS_FONT_RASTERIZER | El hardware del dispositivo puede rasterizar fuentes TrueType. |
GCAPS_FORCEDITHER | Permite el anclaje en todos los lápices geométricos. |
GCAPS_GEOMETRICWIDE | Controla la ampliación geométrica. |
GCAPS_GRAY16 | Controla el texto suavizado de forma nativa. |
GCAPS_HALFTONE | Controla el mediotonamiento. |
GCAPS_HIGHRESTEXT | Este marcador está obsoleto. En los controladores heredados, esta marca indica que el controlador solicita posiciones de glifo tal y como devuelve el STROBJ en las coordenadas del punto FIX. |
GCAPS_HORIZSTRIKE | Este marcador está obsoleto. En los controladores heredados, esta marca indica que el controlador controla los tachos horizontales en DrvTextOut. |
GCAPS_ICM | Indica que el controlador o el hardware de la impresora pueden realizar operaciones de administración de colores. |
GCAPS_LAYERED | Indica que se trata de un controlador de capa o reflejo para la comunicación remota. Los controladores de impresora no pueden ser controladores de capa. |
GCAPS_MONO_DITHER | Controla el dithering monocromo. |
GCAPS_NO64BITMEMACCESS | Este marcador está obsoleto. |
GCAPS_NUP | Indica que se admite la impresión "N-up". |
GCAPS_OPAQUERECT | Controla rectángulos opacos en DrvTextOut. |
GCAPS_PALMANAGED | Admite la administración de paletas. |
GCAPS_PANNING | Cuando GDI simula el puntero, debe llamar a DrvMovePointer para notificar al controlador la posición actual del cursor. Esto permite al controlador controlar las pantallas virtuales de movimiento panorámico. |
GCAPS_SCREENPRECISION | El rasterizador (motor de fuentes) debe elegir una fuente de pantalla (suave) en una fuente del dispositivo al elegir una fuente para la que no hay coincidencia exacta. |
GCAPS_VECTORFONT | Controla la pulsación de fuentes vectoriales en DrvTextOut. |
GCAPS_VERTSTRIKE | Este marcador está obsoleto. En los controladores heredados, esta marca indica que el controlador controló los tachados verticales en DrvTextOut. |
GCAPS_WINDINGFILL | Controla los rellenos del modo de devanado. Consulte Modos de relleno de ruta de acceso para obtener más información. |
GCAPS2_REMOTEDRIVER | Indica que el controlador de pantalla se usa para admitir una sesión de usuario remota. |
lfDefaultFont
Es una estructura de fuente lógica extendida que especifica la fuente predeterminada para un dispositivo. Para obtener más información sobre esta estructura, vea EXTLOGFONT en la documentación de Microsoft Windows SDK.
lfAnsiVarFont
Es una estructura de fuente lógica extendida que especifica la fuente de inclinación variable predeterminada para un dispositivo. Para obtener más información sobre esta estructura, vea EXTLOGFONT en la documentación de Windows SDK.
lfAnsiFixFont
Es una estructura de fuente lógica extendida que especifica la fuente de tono fijo (monoespacial) predeterminada para un dispositivo. Para obtener más información sobre esta estructura, vea EXTLOGFONT en la documentación de Windows SDK.
cFonts
Especifica el número de fuentes del dispositivo. GDI supone que el dispositivo puede dibujar texto con este número de fuentes en sus propias superficies y que el controlador puede proporcionar información de métricas sobre las fuentes. Si el controlador establece cFonts en -1, GDI esperará hasta que se necesiten fuentes para consultar al controlador el número real de fuentes que admite en una llamada a DrvQueryFont.
iDitherFormat
Especifica el formato del mapa de bits. Este parámetro indica cuántos bits de información de color por píxel se solicitan y debe ser uno de los siguientes valores:
Valor | Significado |
---|---|
BMF_1BPP | Monocromático |
BMF_4BPP | 4 bits por píxel |
BMF_8BPP | 8 bits por píxel |
BMF_16BPP | 16 bits por píxel |
BMF_24BPP | 24 bits por píxel |
BMF_32BPP | 32 bits por píxel |
BMF_4RLE | 4 bits por píxel, longitud de ejecución codificada |
BMF_8RLE | 8 bits por píxel, longitud de ejecución codificada |
BMF_JPEG | Imagen comprimida JPEG |
BMF_PNG | Imagen comprimida de PNG |
cxDither
cyDither
Especifique las dimensiones de un pincel dithered. Si estos miembros no son cero, el dispositivo puede crear un pincel dithered para un color RGB determinado.
hpalDefault
Controle la paleta predeterminada del dispositivo. El controlador debe crear la paleta llamando a EngCreatePalette. El controlador asocia una paleta a un dispositivo devolviendo este identificador a GDI.
flGraphicsCaps2
Es un conjunto de marcas que describen funcionalidades gráficas adicionales del controlador de dispositivo. Estas marcas se definen en la tabla siguiente.
Marca | Definición |
---|---|
GCAPS2_ALPHACURSOR | Controla punteros con valores alfa por píxel. |
GCAPS2_CHANGEGAMMARAMP | El dispositivo de pantalla tiene una rampa gamma de hardware cargable. |
GCAPS2_EXCLUDELAYERED | Indica que se trata de un controlador reflejado de accesibilidad. Los controladores reflejados que no establecen esta marca seguirán recibiendo primitivos de dibujo para los HWND superpuestas. Consulte Controladores reflejados para obtener más información. |
GCAPS2_ICD_MULTIMON | Informa a GDI de que el controlador pretende controlar las llamadas DrvSetPixelFormat, DrvDescribePixelFormat y DrvSwapBuffers en un entorno multimon, incluso cuando el rectángulo de la operación también interseca otro dispositivo. Solo un dispositivo tiene la oportunidad de controlar esas llamadas. Si no se especifica la funcionalidad y la región implicada intersecta más de un dispositivo, no se llama a ningún controlador. |
GCAPS2_INCLUDEAPIBITMAPS | Cuando se realizan llamadas de dibujo a un mapa de bits independiente del dispositivo (DIB), se llamará a un controlador reflejado de accesibilidad. Consulte Controladores reflejados para obtener más información. |
GCAPS2_JPEGSRC | El dispositivo puede aceptar imágenes comprimidas JPEG (es decir, imágenes para las que se establece BMF_JPEG en la estructura SURFOBJ ). |
GCAPS2_MOUSETRAILS | Indica que el controlador admite seguimientos del mouse (una sucesión de imágenes de cursor que muestran la ubicación del mouse durante un breve período de tiempo). El controlador es capaz de controlar los valores que GDI envía en el parámetro fl de la función DrvSetPointerShape . El controlador debe usar las máscaras SPS_LENGTHMASK y SPS_FREQMASK para obtener valores para la longitud y la frecuencia de las pistas del mouse. Consulte DrvSetPointerShape para obtener más información sobre estas máscaras. |
GCAPS2_PNGSRC | El dispositivo puede aceptar imágenes comprimidas PNG (es decir, imágenes para las que se establece BMF_PNG en la estructura SURFOBJ ). |
GCAPS2_SYNCFLUSH | El controlador admite un mecanismo de vaciado basado en programación para llamadas DDI de gráficos por lotes. Se llamará a DrvSynchronizeSurface siempre que GDI deba vaciar cualquier dibujo que el controlador esté procesando por lotes. |
GCAPS2_SYNCTIMER | El controlador admite un mecanismo de vaciado basado en temporizador para llamadas DDI de gráficos por lotes. Se llamará a DrvSynchronizeSurface periódicamente, en función de un intervalo de temporizador determinado por GDI. |
Comentarios
La función DrvEnablePDEV del controlador rellena una estructura DEVINFO; El controlador solo debe establecer los miembros pertinentes para él. GDI inicializa esta estructura sin inicializar antes de llamar a DrvEnablePDEV . Las aplicaciones no tienen acceso directo a esta estructura.
Si un controlador establece GCAPS2_JPEGSRC o GCAPS2_PNGSRC en flGraphicsCaps2, se aplican las reglas siguientes:
- El controlador debe proporcionar una función DrvQueryDeviceSupport .
-
Cada función DDI de gráficos definida por el controlador que recibe una estructura SURFOBJ como entrada debe ser capaz de admitir el formato comprimido o devolver un código de error. En el caso de los controladores de impresora, para admitir el formato comprimido, el controlador debe poder realizar una de las siguientes tareas:
- Si el dispositivo de impresión puede procesar el formato comprimido JPEG/PNG, el controlador de impresora debe pasar el formato comprimido a la salida del lenguaje de descripción de página (PDL).
- Si el dispositivo de impresión no puede procesar el formato comprimido JPEG/PNG, el controlador de impresora primero debe convertir el formato JPEG/PNG comprimido en otro formato de imagen que el dispositivo de impresión pueda procesar. A continuación, el controlador de impresora puede hacer que la información de imagen esté disponible en la salida PDL del controlador.
Nota En el caso de la conversión de JPEG/PNG al formato de mapa de bits, el controlador de impresora no debe usar funciones GDI. Por ejemplo, el controlador puede usar las API del componente de creación de imágenes de Windows (WIC) en su lugar para realizar la conversión.
- El controlador debe ser capaz de controlar regiones de recorte complejas para las imágenes que usan el formato comprimido.
- En el caso de las funciones DDI de gráficos definidos por el controlador que reciben un argumento de entrada ROP4, solo se usa 0xCCCC con formatos JPEG y PNG.
Requisitos
Requisito | Valor |
---|---|
Header | winddi.h (incluya Winddi.h) |