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)

Vedi anche

DrvEnablePDEV

DrvQueryFont

DrvBrush

DrvTextOut