Funzione DrvStrokePath (winddi.h)
Il tratto di funzione DrvStrokePath (contorni) è un percorso.
Sintassi
BOOL DrvStrokePath(
[in, out] SURFOBJ *pso,
[in] PATHOBJ *ppo,
[in] CLIPOBJ *pco,
[in, optional] XFORMOBJ *pxo,
[in] BRUSHOBJ *pbo,
[in] POINTL *pptlBrushOrg,
[in] LINEATTRS *plineattrs,
[in] MIX mix
);
Parametri
[in, out] pso
Puntatore a una struttura SURFOBJ che identifica la superficie su cui disegnare.
[in] ppo
Puntatore a una struttura PATHOBJ . Le routine del servizio GDI PATHOBJ_Xxx vengono fornite per enumerare le righe, le curve di Bezier e altri dati che costituiscono il percorso. Questo indica cosa deve essere disegnato.
[in] pco
Puntatore a una struttura CLIPOBJ . Le routine del servizio GDI CLIPOBJ_Xxx vengono fornite per enumerare l'area clip come set di rettangoli. Facoltativamente, tutte le righe nel percorso possono essere enumerate in una struttura CLIPOBJ. Ciò significa che i driver possono avere GDI per eseguire tutti i calcoli di ritaglio della riga.
[in, optional] pxo
Puntatore a una struttura XFORMOBJ . Questa operazione è necessaria solo quando si disegna una linea geometrica a larghezza. Specifica la trasformazione che esegue il mapping delle coordinate del mondo alle coordinate del dispositivo. Questo è necessario perché il percorso viene fornito nelle coordinate del dispositivo, ma una linea geometrica wide è effettivamente ampliata nelle coordinate del mondo.
La struttura XFORMOBJ può essere eseguita una query per trovare la trasformazione.
[in] pbo
Puntatore a una struttura BRUSHOBJ che specifica il pennello da usare durante il disegno del percorso.
[in] pptlBrushOrg
Puntatore a una struttura POINTL che specifica l'origine del pennello usata per allineare il modello di pennello nel dispositivo.
[in] plineattrs
Puntatore a una struttura LINEATTRS . Si noti che il membro elStyleState di questa struttura deve essere aggiornato come parte di questa funzione se la riga è in stile. Si noti anche che il membro ptlLastPel deve essere aggiornato se viene disegnata una singola linea di larghezza pixel.
[in] mix
Modalità di combinazione che definisce le operazioni raster in primo piano e in background da usare per il pennello. Per altre informazioni sulla modalità di combinazione, vedere Osservazioni.
Valore restituito
Il valore restituito è TRUE se il driver è in grado di eseguire il tratto del percorso. Se GDI deve invece segnare il percorso, il valore restituito è FALSE, ma non viene registrato alcun codice di errore. Se il driver rileva un errore, il valore restituito è DDI_ERROR e viene segnalato un codice di errore.
Commenti
Se il driver ha collegato la funzione e, se il GCAPS appropriato è impostato, GDI chiama DrvStrokePath quando GDI disegna una linea o una curva con qualsiasi set di attributi.
Se un driver supporta questo punto di ingresso, deve supportare anche il disegno di linee wide cosmetiche con ritagli arbitrari. Usando le funzioni GDI fornite, la chiamata può essere suddivisa in un set di righe a larghezza singolo pixel con ritagli precompilate.
Questa funzione è necessaria se un disegno deve essere eseguito in una superficie gestita dal dispositivo.
I driver per i dispositivi avanzati possono ricevere facoltativamente questa chiamata per disegnare percorsi contenenti curve bezier e linee wide geometriche. GDI testerà i flag di GCAPS_BEZIERS e GCAPS_GEOMETRICWIDE del membro flGraphicsCaps della struttura DEVINFO per decidere se deve chiamare questa funzione. Le quattro combinazioni dei bit determinano i quattro livelli di funzionalità per questa chiamata. Se il driver ottiene una chiamata avanzata contenente curve bezier o linee wide geometriche, può decidere di non gestire la chiamata, restituendo FALSE. Ciò può verificarsi se il percorso o il ritaglio è troppo complesso per il dispositivo da elaborare. Se la chiamata restituisce FALSE, GDI suddivide la chiamata in chiamate più semplici che possono essere gestite più facilmente.
Per le superfici gestite dal dispositivo, la funzione deve supportare in modo minimo linee cosmetiche a larghezza singola a pixel singolo e stile usando un pennello a tinta unita.
La modalità mix definisce il modo in cui il modello in ingresso deve essere misto con i dati già presenti nell'area del dispositivo. Il tipo di dati MIX è costituito da due valori di operazione raster binaria (ROP2) compressi in una singola ULONG. Il byte più basso definisce l'operazione raster in primo piano; il byte successivo definisce l'operazione raster in background. Per altre informazioni sui codici di operazione raster, vedere la documentazione di Microsoft Windows SDK.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | winddi.h (include Winddi.h) |