Struttura DEVINFO (winddi.h)
La struttura DEVINFO fornisce informazioni sul driver e sul relativo PDEV privato per il motore di grafica.
Sintassi
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;
Members
flGraphicsCaps
Set di flag che descrivono le funzionalità grafiche del driver grafico e/o del relativo hardware. Questi flag sono definiti nella tabella seguente.
Flag | Definizione |
---|---|
GCAPS_ALTERNATEFILL | Gestisce i riempimenti alternati. |
GCAPS_ARBRUSHOPAQUE | Supporta un pennello arbitrario per il rettangolo opaco del testo (colore di sfondo). |
GCAPS_ARBRUSHTEXT | Supporta un pennello arbitrario per il colore di primo piano del testo. |
GCAPS_ASYNCCHANGE | Questo flag è obsoleto. Nei driver legacy, questo flag indica che il driver può modificare la forma del puntatore nell'hardware mentre si verifica un altro disegno nel dispositivo. |
GCAPS_ASYNCMOVE | Il driver può spostare il puntatore nell'hardware mentre si verifica un altro disegno nel dispositivo. |
GCAPS_BEZIERS | Gestisce le curve di Bézier. |
GCAPS_CMYKCOLOR | Il driver supporta lo spazio dei colori CYMK. |
GCAPS_COLOR_DITHER | Gestisce la dithering del colore in una superficie compatibile con PDEV. |
GCAPS_DIRECTDRAW | Questo flag è obsoleto. |
GCAPS_DITHERONREALIZE | Specifica che GDI può chiamare DrvBrush con RGB per essere dithered direttamente. |
GCAPS_DONTJOURNAL | Impedisce la stampa metafile a questo driver della stampante. Questo valore è valido solo per i controller di dominio della stampante e in genere comporta tempi di restituzione all'applicazione più lenti durante la stampa. |
GCAPS_FONT_RASTERIZER | L'hardware del dispositivo può rasterizzare i tipi di carattere TrueType. |
GCAPS_FORCEDITHER | Consente la dithering su tutte le penne geometriche. |
GCAPS_GEOMETRICWIDE | Gestisce l'ampliamento geometrico. |
GCAPS_GRAY16 | Gestisce il testo antialiased in modo nativo. |
GCAPS_HALFTONE | Gestisce il mezzotoning. |
GCAPS_HIGHRESTEXT | Questo flag è obsoleto. Nei driver legacy, questo flag indica che il driver richiede posizioni del glifo come restituite da STROBJ nelle coordinate del punto FIX. |
GCAPS_HORIZSTRIKE | Questo flag è obsoleto. Nei driver legacy questo flag indica che il driver gestisce gli strikeout orizzontali in DrvTextOut. |
GCAPS_ICM | Indica che le operazioni di gestione dei colori possono essere eseguite dal driver o dall'hardware della stampante. |
GCAPS_LAYERED | Indica che si tratta di un driver di livello o mirror per la comunicazione remota. I driver della stampante non possono essere driver di livello. |
GCAPS_MONO_DITHER | Gestisce la dithering monocromatica. |
GCAPS_NO64BITMEMACCESS | Questo flag è obsoleto. |
GCAPS_NUP | Indica che la stampa "N-up" è supportata. |
GCAPS_OPAQUERECT | Gestisce rettangoli opachi in DrvTextOut. |
GCAPS_PALMANAGED | Supporta la gestione della tavolozza. |
GCAPS_PANNING | Quando GDI simula il puntatore, deve chiamare DrvMovePointer per notificare al driver la posizione corrente del cursore. In questo modo il driver può gestire le visualizzazioni virtuali di panoramica. |
GCAPS_SCREENPRECISION | Il rasterizzatore (motore dei tipi di carattere) deve scegliere un tipo di carattere schermo (soft) su un tipo di carattere del dispositivo quando si sceglie un tipo di carattere per il quale non esiste una corrispondenza esatta. |
GCAPS_VECTORFONT | Gestisce lo strozzamento dei tipi di carattere vettoriali in DrvTextOut. |
GCAPS_VERTSTRIKE | Questo flag è obsoleto. Nei driver legacy, questo flag indica che il driver ha gestito i strikeout verticali in DrvTextOut. |
GCAPS_WINDINGFILL | Gestisce i riempimenti della modalità di avvolgimento. Per altre informazioni, vedere Modalità di riempimento del percorso . |
GCAPS2_REMOTEDRIVER | Indica che il driver di visualizzazione viene usato per supportare una sessione utente remota. |
lfDefaultFont
Struttura tipo di carattere logico esteso che specifica il tipo di carattere predefinito per un dispositivo. Per altre informazioni su questa struttura, vedere EXTLOGFONT nella documentazione di Microsoft Windows SDK.
lfAnsiVarFont
Struttura tipo di carattere logico esteso che specifica il tipo di carattere a passo variabile predefinito per un dispositivo. Per altre informazioni su questa struttura, vedere EXTLOGFONT nella documentazione di Windows SDK.
lfAnsiFixFont
Struttura carattere logico esteso che specifica il tipo di carattere a passo fisso predefinito (monospaced) per un dispositivo. Per altre informazioni su questa struttura, vedere EXTLOGFONT nella documentazione di Windows SDK.
cFonts
Specifica il numero di tipi di carattere del dispositivo. GDI presuppone che il dispositivo possa disegnare testo con questo numero di tipi di carattere nelle proprie superfici e che il driver possa fornire informazioni sulle metriche sui tipi di carattere. Se il driver imposta cFonts su -1, GDI attenderà fino a quando non saranno necessari i tipi di carattere per eseguire una query sul driver per il numero effettivo di tipi di carattere supportati in una chiamata a DrvQueryFont.
iDitherFormat
Specifica il formato della bitmap. Questo parametro indica il numero di bit di informazioni sul colore per pixel richieste e deve essere uno dei valori seguenti:
Valore | Significato |
---|---|
BMF_1BPP | Monocromatico |
BMF_4BPP | 4 bit per pixel |
BMF_8BPP | 8 bit per pixel |
BMF_16BPP | 16 bit per pixel |
BMF_24BPP | 24 bit per pixel |
BMF_32BPP | 32 bit per pixel |
BMF_4RLE | 4 bit per pixel, lunghezza di esecuzione codificata |
BMF_8RLE | 8 bit per pixel, lunghezza di esecuzione codificata |
BMF_JPEG | Immagine compressa JPEG |
BMF_PNG | Immagine compressa PNG |
cxDither
cyDither
Specificare le dimensioni di un pennello dithering. Se questi membri sono diversi da zero, il dispositivo può creare un pennello dithered per un determinato colore RGB.
hpalDefault
Gestire la tavolozza predefinita per il dispositivo. Il driver deve creare la tavolozza chiamando EngCreatePalette. Il driver associa una tavolozza a un dispositivo restituendo questo handle a GDI.
flGraphicsCaps2
Set di flag che descrivono funzionalità grafiche aggiuntive del driver di dispositivo. Questi flag sono definiti nella tabella seguente.
Flag | Definizione |
---|---|
GCAPS2_ALPHACURSOR | Gestisce i puntatori con valori alfa per pixel. |
GCAPS2_CHANGEGAMMARAMP | Il dispositivo di visualizzazione ha una gamma gamma hardware caricabile rampa. |
GCAPS2_EXCLUDELAYERED | Indica che si tratta di un driver mirror di accessibilità. I driver mirror che non impostano questo flag riceveranno comunque primitive di disegno per gli HWND a più livelli. Per altre informazioni, vedere Driver mirror . |
GCAPS2_ICD_MULTIMON | Informa GDI che il driver intende gestire le chiamate DrvSetPixelFormat, DrvDescribePixelFormat e DrvSwapBuffers in un ambiente multimon, anche quando il rettangolo nell'operazione interseca anche un altro dispositivo. Solo un dispositivo ha la possibilità di gestire tali chiamate. Se la funzionalità non viene specificata e l'area interessata interseca più di un dispositivo, non viene chiamato alcun driver. |
GCAPS2_INCLUDEAPIBITMAPS | Quando vengono effettuate chiamate di disegno a una bitmap indipendente dal dispositivo, viene chiamato un driver mirror di accessibilità. Per altre informazioni, vedere Driver mirror . |
GCAPS2_JPEGSRC | Il dispositivo può accettare immagini compresse JPEG, ovvero immagini per cui BMF_JPEG è impostata nella struttura SURFOBJ . |
GCAPS2_MOUSETRAILS | Indica che il driver supporta i percorsi del mouse (una successione di immagini di cursore che mostrano la posizione del mouse durante un breve periodo di tempo). Il driver è in grado di gestire i valori inviati da GDI nel parametro fl della funzione DrvSetPointerShape . Il conducente deve utilizzare le maschere SPS_LENGTHMASK e SPS_FREQMASK per ottenere valori per la lunghezza e la frequenza delle tracce del mouse. Per altre informazioni su queste maschere, vedere DrvSetPointerShape . |
GCAPS2_PNGSRC | Il dispositivo può accettare immagini compresse PNG, ovvero immagini per cui BMF_PNG è impostata nella struttura SURFOBJ . |
GCAPS2_SYNCFLUSH | Il driver supporta un meccanismo di scaricamento basato su codice per le chiamate DDI grafiche in batch. DrvSynchronizeSurface verrà chiamato ogni volta che GDI deve scaricare qualsiasi disegno in batch dal driver. |
GCAPS2_SYNCTIMER | Il driver supporta un meccanismo di scaricamento basato su timer per le chiamate DDI grafiche in batch. DrvSynchronizeSurface verrà chiamato periodicamente, in base a un intervallo timer determinato da GDI. |
Commenti
La funzione DrvEnablePDEV del driver riempie una struttura DEVINFO; il driver deve impostare solo i membri pertinenti. Questa struttura viene inizializzata da zero da GDI prima che venga chiamato DrvEnablePDEV . Le applicazioni non hanno accesso diretto a questa struttura.
Se un driver imposta GCAPS2_JPEGSRC o GCAPS2_PNGSRC in flGraphicsCaps2, si applicano le regole seguenti:
- Il driver deve fornire una funzione DrvQueryDeviceSupport .
-
Ogni funzione DDI grafica definita dal driver che riceve una struttura SURFOBJ come input deve essere in grado di supportare il formato compresso o restituire un codice di errore. Nel caso dei driver della stampante, per supportare il formato compresso, il driver deve essere in grado di eseguire una delle attività seguenti:
- Se il dispositivo di stampa può elaborare il formato compresso JPEG/PNG, il driver della stampante deve passare il formato compresso all'output PDL (Page Description Language).
- Se il dispositivo di stampa non è in grado di elaborare il formato compresso JPEG/PNG, il driver della stampante deve prima convertire il formato JPEG/PNG compresso in un altro formato di immagine che il dispositivo di stampa può elaborare. Il driver della stampante può quindi rendere disponibili le informazioni sull'immagine nell'output PDL del driver.
Nota Nel caso di conversione da JPEG/PNG al formato bitmap, il driver della stampante non deve usare funzioni GDI. Ad esempio, il driver può usare le API Windows Imaging Component (WIC) per eseguire la conversione.
- Il driver deve essere in grado di gestire aree di ritaglio complesse per le immagini che usano il formato compresso.
- Per le funzioni DDI di grafica definite dal driver che ricevono un argomento di input ROP4, viene usato solo 0xCCCC con formati JPEG e PNG.
Requisiti
Requisito | Valore |
---|---|
Intestazione | winddi.h (include Winddi.h) |