Fonction EngBitBlt (winddi.h)
La fonction EngBitBlt fournit des fonctionnalités générales de transfert par bloc de bits entre des surfaces gérées par l’appareil ou entre une surface gérée par l’appareil et une bitmap de format standard gérée par GDI.
Syntaxe
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
);
Paramètres
psoTrg
Pointeur vers la structure SURFOBJ qui identifie la surface sur laquelle dessiner.
psoSrc
Si le rop4 l’exige, pointez vers une structure SURFOBJ qui définit la source pour l’opération de transfert de bloc de bits.
psoMask
Pointeur vers une structure SURFOBJ qui définit une surface à utiliser comme masque. Le masque est défini comme une bitmap avec 1 bit par pixel. En règle générale, un masque limite la zone à modifier dans la surface de destination. Le masquage est sélectionné par un rop4 avec la valeur 0xAACC. La surface de destination n’est pas affectée lorsque le masque est égal à zéro.
Le masque est suffisamment grand pour couvrir le rectangle de destination.
Si la valeur de ce paramètre est NULL et qu’un masque est requis par le rop4, le masque implicite dans le pinceau est utilisé. Si un masque est requis, psoMask remplace le masque implicite dans le pinceau.
pco
Pointeur vers une structure CLIPOBJ . Les routines de service CLIPOBJ_Xxx sont fournies pour énumérer la région de clip sous la forme d’un ensemble de rectangles. Cette énumération limite la zone de la destination qui sera modifiée. Dans la mesure du possible, GDI simplifie l’écrêtage impliqué; par exemple, cette fonction n’est jamais appelée avec un seul rectangle de découpage. GDI clipse le rectangle de destination avant d’appeler cette fonction, ce qui rend inutile un découpage supplémentaire.
pxlo
Pointeur vers une structure XLATEOBJ qui indique comment les index de couleur doivent être traduits entre les surfaces source et cible.
prclTrg
Pointeur vers une structure RECTL dans le système de coordonnées de la surface de destination qui définit la zone à modifier. Le rectangle est défini par deux points ; en haut à gauche et en bas à droite. Les bords inférieur et droit de ce rectangle ne font pas partie du transfert de bloc de bits, ce qui signifie que le rectangle est exclusif en bas à droite.
EngBitBlt n’est jamais appelé avec un rectangle de destination vide. Les deux points qui définissent le rectangle sont toujours bien ordonnés.
pptlSrc
Pointeur vers une structure POINTL qui définit le coin supérieur gauche du rectangle source, s’il existe une source. S’il n’existe aucune source, le pilote doit ignorer ce paramètre.
pptlMask
Pointeur vers une structure POINTL qui définit le pixel du masque qui correspond au coin supérieur gauche du rectangle de destination. Si aucun masque n’est spécifié dans psoMask , le pilote doit ignorer ce paramètre.
pbo
Pointeur vers la structure BRUSHOBJ à utiliser pour définir le modèle pour le transfert de bloc de bits. La routine de service BRUSHOBJ_pvGetRbrush de GDI récupère la réalisation du pinceau par l’appareil. Le pilote peut ignorer ce paramètre si le paramètre rop4 ne nécessite pas de modèle.
pptlBrush
Pointeur vers une structure POINTL qui définit l’origine du pinceau dans la surface de destination. Le pixel supérieur gauche du pinceau est aligné à ce point et le pinceau se répète en fonction de ses dimensions. Ignorez ce paramètre si le paramètre rop4 ne nécessite pas de modèle.
[in] rop4
Représente une opération raster qui définit la façon dont les pixels de masque, de modèle, de source et de destination sont combinés pour écrire un pixel de sortie sur la surface de destination.
Il s’agit d’une opération de raster quaternaire, qui est une extension naturelle de l’opération Rop3 ternaire habituelle. Un Rop4 a 16 bits pertinents, qui sont similaires aux 8 bits de définition d’un Rop3. (Les autres bits redondants du Rop3 sont ignorés.) Le moyen le plus simple d’implémenter un Rop4 consiste à considérer ses 2 octets séparément. L’octet inférieur spécifie un Rop3 qui doit être calculé partout où le masque est 1. L’octet élevé spécifie un Rop3 qui peut être calculé et appliqué partout où le masque est 0.
Valeur retournée
La valeur de retour est TRUE si la fonction réussit. Sinon, il est FALSE et un code d’erreur est journalisé.
Remarques
Si la surface d’un appareil est organisée en tant que bitmap de format standard, le pilote peut demander à GDI d’effectuer le transfert de bloc de bits en appelant EngBitBlt. Un pilote peut le faire s’il dispose d’un matériel spécial pour gérer rapidement les transferts simples, mais ne souhaite pas gérer les appels avec des transferts compliqués.
Pour plus d’informations sur les opérations raster, consultez la documentation Microsoft Windows SDK.
Configuration requise
Client minimal pris en charge | Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Universal |
En-tête | winddi.h (inclure Winddi.h) |
Bibliothèque | Win32k.lib |
DLL | Win32k.sys |