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) |