Compartilhar via


Estrutura DEVINFO (winddi.h)

A estrutura DEVINFO fornece informações sobre o driver e seu PDEV privado para o mecanismo gráfico.

Sintaxe

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;

Membros

flGraphicsCaps

É um conjunto de sinalizadores que descrevem as funcionalidades gráficas do driver gráfico e/ou seu hardware. Esses sinalizadores são definidos na tabela a seguir.

Sinalizador Definição
GCAPS_ALTERNATEFILL Manipula preenchimentos alternados.
GCAPS_ARBRUSHOPAQUE Dá suporte a um pincel arbitrário para retângulo opaco de texto (cor da tela de fundo).
GCAPS_ARBRUSHTEXT Dá suporte a um pincel arbitrário para a cor de primeiro plano do texto.
GCAPS_ASYNCCHANGE Esse sinalizador é obsoleto. Em drivers herdados, esse sinalizador indica que o driver pode alterar a forma do ponteiro no hardware enquanto outro desenho está ocorrendo no dispositivo.
GCAPS_ASYNCMOVE O driver pode mover o ponteiro no hardware enquanto outro desenho está ocorrendo no dispositivo.
GCAPS_BEZIERS Manipula curvas de Bézier.
GCAPS_CMYKCOLOR O driver dá suporte ao espaço de cor CYMK.
GCAPS_COLOR_DITHER Manipula o dithering de cores para uma superfície compatível com PDEV.
GCAPS_DIRECTDRAW Esse sinalizador é obsoleto.
GCAPS_DITHERONREALIZE Especifica que o GDI pode chamar DrvRealizeBrush com o RGB a ser dithered diretamente.
GCAPS_DONTJOURNAL Não permite a impressão de metarquivo para este driver de impressora. Isso é válido apenas para DCs de impressora e geralmente resultará em um tempo de retorno ao aplicativo mais lento ao imprimir.
GCAPS_FONT_RASTERIZER O hardware do dispositivo pode rasterizar fontes TrueType.
GCAPS_FORCEDITHER Permite dithering em todas as canetas geométricas.
GCAPS_GEOMETRICWIDE Manipula a ampliação geométrica.
GCAPS_GRAY16 Manipula o texto suavizado nativamente.
GCAPS_HALFTONE Manipula o halftoning.
GCAPS_HIGHRESTEXT Esse sinalizador é obsoleto. Em drivers herdados, esse sinalizador indica que o driver está solicitando posições de glifo conforme retornado pelo STROBJ em coordenadas de ponto FIX.
GCAPS_HORIZSTRIKE Esse sinalizador é obsoleto. Em drivers herdados, esse sinalizador indica que o driver manipula strikeouts horizontais em DrvTextOut.
GCAPS_ICM Indica que as operações de gerenciamento de cores podem ser executadas pelo hardware do driver ou da impressora.
GCAPS_LAYERED Indica que esse é um driver de camada ou espelho para comunicação remota. Os drivers de impressora não podem ser drivers de camada.
GCAPS_MONO_DITHER Manipula o dithering monocromático.
GCAPS_NO64BITMEMACCESS Esse sinalizador é obsoleto.
GCAPS_NUP Indica que há suporte para impressão "N-up".
GCAPS_OPAQUERECT Manipula retângulos opacos em DrvTextOut.
GCAPS_PALMANAGED Dá suporte ao gerenciamento de paleta.
GCAPS_PANNING Quando a GDI estiver simulando o ponteiro, ela deverá chamar DrvMovePointer para notificar o driver da posição atual do cursor. Isso permite que o driver manipule exibições virtuais de movimento panorâmico.
GCAPS_SCREENPRECISION O rasterizador (mecanismo de fonte) deve escolher uma fonte de tela (suave) em vez de uma fonte de dispositivo ao escolher uma fonte para a qual não há correspondência exata.
GCAPS_VECTORFONT Manipula o acariciamento de fontes de vetor no DrvTextOut.
GCAPS_VERTSTRIKE Esse sinalizador é obsoleto. Em drivers herdados, esse sinalizador indicava que o driver manipulava strikeouts verticais em DrvTextOut.
GCAPS_WINDINGFILL Manipula os preenchimentos do modo de enrolamento. Confira Modos de Preenchimento de Caminho para obter mais informações.
GCAPS2_REMOTEDRIVER Indica que o driver de exibição é usado para dar suporte a uma sessão de usuário remoto.

lfDefaultFont

É uma estrutura fonte lógica estendida que especifica a fonte padrão de um dispositivo. Para obter mais informações sobre essa estrutura, consulte EXTLOGFONT na documentação do SDK do Microsoft Windows.

lfAnsiVarFont

É uma estrutura fonte lógica estendida que especifica a fonte de densidade variável padrão para um dispositivo. Para obter mais informações sobre essa estrutura, consulte EXTLOGFONT na documentação do SDK do Windows.

lfAnsiFixFont

É uma estrutura fonte lógica estendida que especifica a fonte padrão de tom fixo (monoespaço) para um dispositivo. Para obter mais informações sobre essa estrutura, consulte EXTLOGFONT na documentação do SDK do Windows.

cFonts

Especifica o número de fontes de dispositivo. A GDI pressupõe que o dispositivo pode desenhar texto com esse número de fontes em suas próprias superfícies e que o driver pode fornecer informações de métricas sobre as fontes. Se o driver definir cFonts como -1, o GDI aguardará até que as fontes sejam necessárias para consultar o driver quanto ao número real de fontes compatíveis em uma chamada para DrvQueryFont.

iDitherFormat

Especifica o formato do bitmap. Esse parâmetro indica quantos bits de informações de cor por pixel são solicitados e deve ser um dos seguintes valores:

Valor Significado
BMF_1BPP Monocromático
BMF_4BPP 4 bits por pixel
BMF_8BPP 8 bits por pixel
BMF_16BPP 16 bits por pixel
BMF_24BPP 24 bits por pixel
BMF_32BPP 32 bits por pixel
BMF_4RLE 4 bits por pixel, comprimento de execução codificado
BMF_8RLE 8 bits por pixel, comprimento de execução codificado
BMF_JPEG Imagem compactada JPEG
BMF_PNG Imagem compactada png

cxDither

cyDither

Especifique as dimensões de um pincel dithered. Se esses membros não forem zero, o dispositivo poderá criar um pincel dithered para uma determinada cor RGB.

hpalDefault

Manipule para a paleta padrão do dispositivo. O driver deve criar a paleta chamando EngCreatePalette. O driver associa uma paleta a um dispositivo retornando esse identificador à GDI.

flGraphicsCaps2

É um conjunto de sinalizadores que descrevem recursos gráficos adicionais do driver de dispositivo. Esses sinalizadores são definidos na tabela a seguir.

Sinalizador Definição
GCAPS2_ALPHACURSOR Manipula ponteiros com valores alfa por pixel.
GCAPS2_CHANGEGAMMARAMP O dispositivo de exibição tem uma rampa de gama de hardware carregável.
GCAPS2_EXCLUDELAYERED Indica que esse é um driver de espelho de acessibilidade. Os drivers espelho que não definirem esse sinalizador ainda receberão primitivos de desenho para HWNDs em camadas. Consulte Drivers espelho para obter mais informações.
GCAPS2_ICD_MULTIMON Informa à GDI que o driver pretende manipular as chamadas DrvSetPixelFormat, DrvDescribePixelFormat e DrvSwapBuffers em um ambiente multimon, mesmo quando o retângulo na operação também cruza outro dispositivo. Apenas um dispositivo tem a oportunidade de lidar com essas chamadas. Se a funcionalidade não for especificada e a região envolvida cruzar mais de um dispositivo, nenhum driver será chamado.
GCAPS2_INCLUDEAPIBITMAPS Quando chamadas de desenho são feitas para um DIB (bitmap independente do dispositivo), um driver de espelho de acessibilidade será chamado. Consulte Drivers espelho para obter mais informações.
GCAPS2_JPEGSRC O dispositivo pode aceitar imagens compactadas JPEG (ou seja, imagens para as quais BMF_JPEG é definida na estrutura SURFOBJ ).
GCAPS2_MOUSETRAILS Indica que o driver dá suporte a trilhas do mouse (uma sucessão de imagens de cursor mostrando a localização do mouse durante um curto período de tempo). O driver é capaz de lidar com os valores que a GDI envia no parâmetro fl da função DrvSetPointerShape . O driver deve usar as máscaras SPS_LENGTHMASK e SPS_FREQMASK para obter valores para o comprimento e a frequência das trilhas do mouse. Consulte DrvSetPointerShape para obter mais informações sobre essas máscaras.
GCAPS2_PNGSRC O dispositivo pode aceitar imagens compactadas png (ou seja, imagens para as quais BMF_PNG é definida na estrutura SURFOBJ ).
GCAPS2_SYNCFLUSH O driver dá suporte a um mecanismo de liberação baseado em programação para chamadas DDI de gráficos em lote. DrvSynchronizeSurface será chamado sempre que a GDI precisar liberar qualquer desenho que esteja sendo agrupado pelo driver.
GCAPS2_SYNCTIMER O driver dá suporte a um mecanismo de liberação baseado em temporizador para chamadas DDI de gráficos em lote. DrvSynchronizeSurface será chamado periodicamente, com base em um intervalo de temporizador determinado pela GDI.

Comentários

A função DrvEnablePDEV do driver preenche uma estrutura DEVINFO; o driver deve definir apenas os membros relevantes para ele. Essa estrutura é inicializada zero pelo GDI antes de DrvEnablePDEV ser chamado. Os aplicativos não têm acesso direto a essa estrutura.

Se um driver definir GCAPS2_JPEGSRC ou GCAPS2_PNGSRC no flGraphicsCaps2, as seguintes regras se aplicarão:

  • O driver deve fornecer uma função DrvQueryDeviceSupport .
  • Cada função DDI de gráficos definida pelo driver que recebe uma estrutura SURFOBJ como entrada deve ser capaz de dar suporte ao formato compactado ou retornar um código de erro. No caso de drivers de impressora, para dar suporte ao formato compactado, o driver deve ser capaz de executar uma das seguintes tarefas:
    • Se o dispositivo de impressão puder processar o formato compactado JPEG/PNG, o driver da impressora deverá passar o formato compactado para a saída da PDL (linguagem de descrição da página).
    • Se o dispositivo de impressão não puder processar o formato compactado JPEG/PNG, o driver da impressora deverá primeiro converter o formato JPEG/PNG compactado em outro formato de imagem que o dispositivo de impressão possa processar. Em seguida, o driver da impressora pode disponibilizar as informações de imagem na saída PDL do driver.
      Nota No caso da conversão de JPEG/PNG para o formato bitmap, o driver de impressora não deve usar funções GDI. Por exemplo, o driver pode usar as APIs de WIC (Componente de Imagem do Windows) para fazer a conversão.
       
  • O driver deve ser capaz de lidar com regiões de clipe complexas para imagens que usam o formato compactado.
  • Para funções DDI de gráficos definidas pelo driver que recebem um argumento de entrada ROP4, somente 0xCCCC é usado com formatos JPEG e PNG.

Requisitos

Requisito Valor
Cabeçalho winddi.h (inclua Winddi.h)

Confira também

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut