Condividi tramite


Funzione EngStretchBltROP (winddi.h)

La funzione EngStretchBltROP esegue un trasferimento di blocchi di bit di estensione usando un ROP.

Sintassi

ENGAPI BOOL EngStretchBltROP(
       SURFOBJ         *psoDest,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMask,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlHTOrg,
  [in] RECTL           *prclDest,
  [in] RECTL           *prclSrc,
       POINTL          *pptlMask,
  [in] ULONG           iMode,
       BRUSHOBJ        *pbo,
  [in] DWORD           rop4
);

Parametri

psoDest

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 il trasferimento del blocco di bit.

psoMask

Puntatore a una struttura SURFOBJ che definisce una maschera per la superficie di origine. La maschera è definita da una mappa logica, ovvero una bitmap con 1 bit per pixel. In genere, una maschera limita l'area da modificare nella superficie di destinazione. Questa maschera deve sempre avere le stesse dimensioni della superficie di origine.

pco

Puntatore a una struttura CLIPOBJ che limita l'area da modificare nella destinazione. Le routine del servizio CLIPOBJ_Xxx vengono fornite per enumerare l'area di ritaglio come set di rettangoli.

Quando possibile, GDI semplifica il ritaglio. Tuttavia, a differenza di EngBitBlt, EngStretchBltROP può essere chiamato con un singolo rettangolo di ritaglio. In questo modo si evitano errori di arrotondamento nell'ritaglio dell'output.

pxlo

Puntatore a una struttura XLATEOBJ che specifica la modalità di conversione degli indici di colore tra le superfici di origine e di destinazione.

È anche possibile eseguire una query su questa struttura XLATEOBJ per trovare il colore RGB per qualsiasi indice di origine. Un trasferimento a blocchi di bit di alta qualità deve interpolare i colori in alcuni casi.

pca

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

pptlHTOrg

Puntatore a una struttura POINTL che definisce l'origine del pennello halftone sulla superficie di destinazione. Quando si usano pennelli halftone, GDI allinea il pixel superiore sinistro del motivo del pennello a questo punto e ripete il pennello in base alle relative dimensioni. GDI ignora questo parametro se il parametro rop4 non richiede un criterio.

[in] prclDest

Puntatore a una struttura RECTL che definisce l'area rettangolare da modificare. Questo rettangolo viene specificato nel sistema di coordinate della superficie di destinazione ed è definito da due punti: in alto a sinistra e in basso a destra. I due punti che definiscono il rettangolo non sono sempre ordinati correttamente, ovvero le coordinate del secondo punto non sono necessariamente maggiori di quelle del primo punto. Se il rettangolo di destinazione non è ordinato correttamente, GDI lo rende così.

Il rettangolo è esclusivo in basso a destra; ovvero i bordi inferiori e destro non fanno parte della copia.

EngStretchBltROP non deve mai essere chiamato con un rettangolo di destinazione vuoto.

[in] prclSrc

Puntatore a una struttura RECTL che definisce l'area da copiare. Questo rettangolo viene specificato nel sistema di coordinate della superficie di origine ed è definito da due punti: superiore sinistro e inferiore destro. I due punti che definiscono il rettangolo sono sempre ordinati correttamente.

Il rettangolo è esclusivo in basso a destra; ovvero i bordi inferiori e destro non fanno parte della copia.

Questo rettangolo esegue il mapping al rettangolo a cui prclDest punta.

EngStretchBltROP non deve mai essere chiamato con un rettangolo di origine vuoto.

pptlMask

Puntatore a una struttura POINTL che definisce il pixel nella maschera a cui punta prclMask . Questo pixel corrisponde al pixel superiore sinistro nel rettangolo di origine a cui prclSrc punta. Questo parametro viene ignorato se non viene specificata alcuna maschera; ovvero, GDI ignora pptlMask quando prclMask è NULL.

[in] iMode

Specifica la modalità di combinazione dei pixel di origine per ottenere i pixel di output. La modalità HALFTONE è più lenta rispetto alle altre modalità, ma produce immagini di qualità superiore. Questo parametro può essere uno dei valori seguenti:

Valore Significato
BLACKONWHITE In un trasferimento a blocchi di bit di compattazione, GDI combina i pixel con un'operazione AND booleana. In un trasferimento a blocchi di bit esteso, i pixel vengono replicati.
COLORONCOLOR In un trasferimento a blocchi di bit compattabile, GDI ignora sufficienti pixel in modo che i pixel non debbano essere combinati. In un trasferimento a blocchi di bit esteso, i pixel vengono replicati.
SEMITONO GDI usa gruppi di pixel nella superficie di output per approssimare al meglio il colore o il livello grigio dell'input.
WHITEONBLACK In un trasferimento a blocchi di bit ridotto, i pixel devono essere combinati con un'operazione OR booleana. In un trasferimento a blocchi di bit esteso, i pixel devono essere replicati.

pbo

Puntatore alla struttura BRUSHOBJ da usare per definire il modello per il trasferimento a blocchi di bit. La routine del servizio BRUSHOBJ_pvGetRbrush GDI recupera la realizzazione del pennello del dispositivo. GDI ignora questo parametro se il parametro rop4 non richiede un criterio.

[in] rop4

Rappresenta un'operazione raster che definisce la modalità di combinazione dei pixel maschera, modello, origine e destinazione per scrivere un pixel di output nella superficie di destinazione.

Si tratta di un'operazione raster quaternaria, che è un'estensione naturale della consueta operazione Rop3 ternaria. Un Rop4 ha 16 bit rilevanti, che sono simili agli 8 bit di definizione di un Rop3. Gli altri bit ridondanti di Rop3 vengono ignorati. Il modo più semplice per implementare un Rop4 consiste nel considerare separatamente i suoi 2 byte. Il byte inferiore specifica un valore Rop3 che deve essere calcolato ovunque la maschera in cui punti psoMask sia 1. Il byte elevato specifica un valore Rop3 che può essere calcolato e applicato ovunque la maschera sia zero.

Valore restituito

EngStretchBltROP restituisce TRUE al successo. In caso contrario, segnala un errore e restituisce FALSE.

Commenti

Il driver deve chiamare EngStretchBltROP se ha collegato DrvStretchBltROP , ma non può supportare tutte le operazioni.

Il mapping è definito da prclSrc e prclDest. I punti specificati in prclDest e prclSrc si trovano su coordinate integer che corrispondono ai centri pixel. Un rettangolo definito da due punti di questo tipo è considerato un rettangolo geometrico con due vertici le cui coordinate sono i punti specificati, ma con 0,5 sottratte da ogni coordinata. Le strutture POINTL sono notazione abbreviata per specificare questi vertici delle coordinate frazionarie.

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

EngPlgBlt

EngStretchBlt

EngTransparentBlt