Funzione EngBitBlt (winddi.h)

La funzione EngBitBlt offre funzionalità generali di trasferimento a bit-block tra superfici gestite dal dispositivo o tra una superficie gestita dal dispositivo e una bitmap di formato standard gestito da GDI.

Sintassi

ENGAPI BOOL EngBitBlt(
       SURFOBJ  *psoTrg,
       SURFOBJ  *psoSrc,
       SURFOBJ  *psoMask,
       CLIPOBJ  *pco,
       XLATEOBJ *pxlo,
       RECTL    *prclTrg,
       POINTL   *pptlSrc,
       POINTL   *pptlMask,
       BRUSHOBJ *pbo,
       POINTL   *pptlBrush,
  [in] ROP4     rop4
);

Parametri

psoTrg

Puntatore alla struttura SURFOBJ che identifica la superficie su cui disegnare.

psoSrc

Se il valore rop4 lo richiede, puntatore a una struttura SURFOBJ che definisce l'origine per l'operazione di trasferimento a blocchi bit.

psoMask

Puntatore a una struttura SURFOBJ che definisce una superficie da usare come maschera. La maschera è definita come bitmap con 1 bit per pixel. In genere, una maschera limita l'area da modificare nell'area di destinazione. La maschera viene selezionata da un rop4 con il valore 0xAACC. La superficie di destinazione non è influenzata quando la maschera è zero.

La maschera è abbastanza grande per coprire il rettangolo di destinazione.

Se il valore di questo parametro è NULL e una maschera è richiesta dal rop4, viene usata la maschera implicita nel pennello. Se è necessaria una maschera, psoMask esegue l'override della maschera implicita nel pennello.

pco

Puntatore a una struttura CLIPOBJ . Le routine di servizio CLIPOBJ_Xxx vengono fornite per enumerare l'area clip come set di rettangoli. Questa enumerazione limita l'area della destinazione che verrà modificata. Se possibile, GDI semplifica il ritaglio coinvolto; ad esempio, questa funzione non viene mai chiamata con un singolo rettangolo di ritaglio. GDI clip il rettangolo di destinazione prima di chiamare questa funzione, rendendo il ritaglio aggiuntivo non necessario.

pxlo

Puntatore a una struttura XLATEOBJ che indica in che modo gli indici di colore devono essere convertiti tra le superfici di origine e di destinazione.

prclTrg

Puntatore a una struttura RECTL nel sistema di coordinate della superficie di destinazione che definisce l'area da modificare. Il rettangolo è definito da due punti; in alto a sinistra e in basso a destra. I bordi inferiori e destro di questo rettangolo non fanno parte del trasferimento a blocchi di bit, il che significa che il rettangolo è inferiore destro esclusivo.

EngBitBlt non viene mai chiamato con un rettangolo di destinazione vuoto. I due punti che definiscono il rettangolo sono sempre ordinati.

pptlSrc

Puntatore a una struttura POINTL che definisce l'angolo superiore sinistro del rettangolo di origine, se esiste un'origine. Se non esiste alcuna origine, il driver deve ignorare questo parametro.

pptlMask

Puntatore a una struttura POINTL che definisce quale pixel nella maschera corrisponde all'angolo superiore sinistro del rettangolo di destinazione. Se non viene specificata alcuna maschera in psoMask , il driver deve ignorare questo parametro.

pbo

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

pptlBrush

Puntatore a una struttura POINTL che definisce l'origine del pennello nell'area di destinazione. Il pixel superiore sinistro del pennello è allineato a questo punto e il pennello si ripete in base alle sue dimensioni. Ignorare questo parametro se il parametro rop4 non richiede un modello.

[in] rop4

Rappresenta un'operazione raster che definisce il modo in cui i pixel di maschera, modello, origine e destinazione vengono combinati per scrivere un pixel di output nell'area di destinazione.

Si tratta di un'operazione raster quaternary, che è un'estensione naturale dell'operazione Rop3 ternaria consueta. Un Rop4 ha 16 bit rilevanti, che sono simili ai 8 bit di una Rop3. Gli altri bit ridondanti del 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 sia 1. Il byte elevato specifica un valore Rop3 che può essere calcolato e applicato ovunque la maschera sia 0.

Valore restituito

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

Commenti

Se la superficie di un dispositivo è organizzata come bitmap di formato standard, il driver può richiedere che GDI esegua il trasferimento in blocco bit chiamando EngBitBlt. Un driver potrebbe farlo se ha hardware speciale per gestire rapidamente i trasferimenti semplici, ma non vuole gestire le chiamate con trasferimenti complicati.

Per altre informazioni sulle operazioni raster, vedere la documentazione di Microsoft Windows SDK.

Requisiti

   
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

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ