Compartir a través de


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)

Consulte también

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut