Condividi tramite


Funzione EngPlgBlt (winddi.h)

La funzione EngPlgBlt fa sì che GDI esegua un trasferimento a blocchi di bit ruota.

Sintassi

ENGAPI BOOL EngPlgBlt(
       SURFOBJ         *psoTrg,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMsk,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlBrushOrg,
       POINTFIX        *pptfx,
       RECTL           *prcl,
       POINTL          *pptl,
  [in] ULONG           iMode
);

Parametri

psoTrg

Puntatore a una struttura SURFOBJ che descrive la superficie su cui disegnare.

psoSrc

Puntatore a una struttura SURFOBJ che descrive la superficie di origine per l'operazione di trasferimento a blocchi bit.

psoMsk

Puntatore a una struttura SURFOBJ facoltativa che rappresenta una maschera per l'origine. Viene definito da una mappa per la logica, ovvero una bitmap con un bit per pixel.

Questa maschera limita l'area dell'origine copiata. Una maschera ha un rop4 implicito di 0xCCAA, che significa che l'origine deve essere copiata ovunque la maschera sia 1, ma la destinazione deve essere lasciata sola ovunque la maschera sia zero.

Se questo parametro è NULL, esiste un rop4 implicito di 0xCCCC, il che significa che l'origine deve essere copiata ovunque nel rettangolo di origine.

La maschera sarà sempre abbastanza grande per contenere la fonte pertinente; la tiling non è necessaria.

pco

Puntatore a una struttura CLIPOBJ che limita l'area della destinazione da modificare. Le funzioni GDI enumera l'area clip come set di rettangoli.

Se possibile, GDI semplifica il ritaglio coinvolto. A differenza della funzione DrvBitBlt , È possibile chiamare EngPlgBlt con un singolo rettangolo di ritaglio. Ciò impedisce l'arrotondamento degli errori nel ritaglio dell'output.

pxlo

Puntatore a una struttura XLATEOBJ che definisce il modo in cui gli indici di colore vengono convertiti tra le superfici di origine e di destinazione. Questa struttura XLATEOBJ può essere eseguita una query per trovare il colore RGB per qualsiasi indice di origine.

È necessario un trasferimento a blocchi bit di alta qualità per interpolare i colori.

pca

Puntatore a una struttura COLORADJUSTMENT che definisce i valori di regolazione dei colori da applicare alla bitmap di origine prima di estendere i bit. Per altre informazioni, vedere la documentazione di Microsoft Windows SDK.

pptlBrushOrg

Puntatore a una struttura POINTL che specifica l'origine del pennello halftone. I driver che usano pennelli halftone devono allineare il pixel superiore sinistro del modello del pennello con questo punto sulla superficie del dispositivo.

pptfx

Puntatore a tre strutture POINTFIX che definiscono un parallelogramma nella superficie di destinazione. Un quarto vertice implicito viene assegnato come: D = B + C − A. Per una descrizione di questo tipo di dati, vedere Tipi di dati GDI.

EngPlgBlt non viene mai chiamato con A, B e C collinear.

prcl

Puntatore a una struttura RECTL che definisce, nel sistema di coordinate della superficie di origine, l'area da copiare. I punti del rettangolo di origine sono ben ordinati. EngPlgBlt non verrà mai assegnato un rettangolo di origine vuoto.

pptl

Puntatore a una struttura POINTL che specifica quale pixel nella maschera specificata corrisponde al pixel in alto a sinistra nel rettangolo di origine. Ignorare questo parametro se psoMsk è NULL.

[in] iMode

Definisce il modo in cui i pixel di origine vengono combinati per ottenere pixel di output. Questo parametro può essere uno dei valori seguenti:

Valore Significato
BLACKONWHITE In un trasferimento a blocchi bit compattati, i pixel devono essere combinati con un'operazione AND. È necessario replicare in un pixel di trasferimento a blocchi bit di estensione.
COLORONCOLOR In un trasferimento a blocchi di bit compattabile, è necessario ignorare un numero sufficiente di pixel in modo che i pixel non siano combinati. In un trasferimento a blocchi bit di estensione, i pixel devono essere replicati.
SEMITONO Il driver può usare gruppi di pixel nell'area di output per approssimare meglio il colore o il livello grigio dell'input.
WHITEONBLACK In un trasferimento a blocchi bit compattati, i pixel devono essere combinati con un'operazione OR. In un trasferimento di blocchi di estensione, i pixel devono essere replicati.
 

I metodi WHITEONBLACK, BLACKONWHITE e COLORONCOLOR sono semplici e offrono compatibilità per le applicazioni precedenti, ma non producono i risultati migliori per le superfici di colore.

Valore restituito

Il valore restituito è TRUE se la funzione ha esito positivo. In caso contrario, è FALSE e viene segnalato un codice di errore.

Commenti

EngPlgBlt esegue solo determinati tipi di rotazioni.

Questa funzione esegue trasferimenti a blocchi bit da un rettangolo definito da prcl a qualsiasi parallelogramma. Il parallelogramma è definito da pptfx, che punta a una matrice di tre punti.

Il rettangolo di origine in prcl è considerato un rettangolo geometrico con angoli spostati da (-0,5,-0,5) dalle coordinate integer indicate. Corrisponde esattamente al rettangolo di origine per EngStretchBlt. Il rettangolo di origine è sempre ben ordinato.

L'angolo superiore sinistro del rettangolo di origine viene mappato al primo punto, A. L'angolo superiore destro del rettangolo di origine viene mappato al secondo punto, B. L'angolo inferiore sinistro del rettangolo di origine viene mappato al terzo punto, C. L'angolo inferiore destro del rettangolo di origine viene mappato al punto implicito nel parallelogramma definito trattando i tre punti specificati come vettori e calcolo:

D = B + C - A

Si noti che un'estensione blit può essere espressa esattamente come un parallelogramma blit, ma le coordinate date per la destinazione saranno divisibili da cinque.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Universale
Intestazione winddi.h (include Winddi.h)
Libreria Win32k.lib
DLL Win32k.sys

Vedi anche

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt