Partager via


Fonction EngStretchBltROP (winddi.h)

La fonction EngStretchBltROP effectue un transfert de bloc de bits extensible à l’aide d’un ROP.

Syntaxe

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
);

Paramètres

psoDest

Pointeur vers une structure SURFOBJ qui décrit la surface sur laquelle dessiner.

psoSrc

Pointeur vers une structure SURFOBJ qui décrit la surface source pour le transfert de bloc binaire.

psoMask

Pointeur vers une structure SURFOBJ qui définit un masque pour la surface source. Le masque est défini par une carte logique, qui est une bitmap avec 1 bit par pixel. En règle générale, un masque limite la zone à modifier dans la surface de destination. Ce masque doit toujours avoir la même taille que la surface source.

pco

Pointeur vers une structure CLIPOBJ qui limite la zone à modifier dans la destination. Les routines de service CLIPOBJ_Xxx sont fournies pour énumérer la région de clip sous la forme d’un ensemble de rectangles.

Dans la mesure du possible, GDI simplifie le découpage impliqué. Toutefois, contrairement à EngBitBlt, EngStretchBltROP peut être appelé avec un rectangle de découpage unique. Cela permet d’éviter les erreurs d’arrondi lors du découpage de la sortie.

pxlo

Pointeur vers une structure XLATEOBJ qui spécifie la façon dont les index de couleur doivent être traduits entre les surfaces source et cible.

Cette structure XLATEOBJ peut également être interrogée pour rechercher la couleur RVB de n’importe quel index source. Dans certains cas, un transfert de bloc de bits extensible de haute qualité doit interpoler les couleurs.

pca

Pointeur vers une structure COLORADJUSTMENT qui définit les valeurs d’ajustement des couleurs à appliquer à l’image bitmap source avant d’étendre les bits. Pour plus d’informations, consultez la documentation SDK Windows.

pptlHTOrg

Pointeur vers une structure POINTL qui définit l’origine du pinceau de demi-teinte sur la surface de destination. Lors de l’utilisation de pinceaux de demi-teintes, GDI aligne le pixel supérieur gauche du motif du pinceau à ce stade et répète le pinceau en fonction de ses dimensions. GDI ignore ce paramètre si le paramètre rop4 ne nécessite pas de modèle.

[in] prclDest

Pointeur vers une structure RECTL qui définit la zone rectangulaire à modifier. Ce rectangle est spécifié dans le système de coordonnées de la surface de destination et est défini par deux points : en haut à gauche et en bas à droite. Les deux points qui définissent le rectangle ne sont pas toujours bien ordonnés, ce qui signifie que les coordonnées du deuxième point ne sont pas nécessairement supérieures à celles du premier point. Si le rectangle de destination n’est pas bien ordonné, GDI le fait.

Le rectangle est exclusif en bas à droite ; autrement dit, ses bords inférieur et droit ne font pas partie de la copie.

EngStretchBltROP ne doit jamais être appelé avec un rectangle de destination vide.

[in] prclSrc

Pointeur vers une structure RECTL qui définit la zone à copier. Ce rectangle est spécifié dans le système de coordonnées de la surface source et est défini par deux points : en haut à gauche et en bas à droite. Les deux points qui définissent le rectangle sont toujours bien ordonnés.

Le rectangle est exclusif en bas à droite ; autrement dit, ses bords inférieur et droit ne font pas partie de la copie.

Ce rectangle est mappé au rectangle vers lequel pointe prclDest .

EngStretchBltROP ne doit jamais être appelé avec un rectangle source vide.

pptlMask

Pointeur vers une structure POINTL qui définit le pixel du masque vers lequel pointe prclMask . Ce pixel correspond au pixel supérieur gauche dans le rectangle source vers lequel pointe prclSrc . Ce paramètre est ignoré si aucun masque n’est spécifié ; autrement dit, GDI ignore pptlMask quand prclMask a la valeur NULL.

[in] iMode

Spécifie la façon dont les pixels sources sont combinés pour obtenir les pixels de sortie. Le mode HALFTONE est plus lent que les autres modes, mais produit des images de meilleure qualité. Ce paramètre peut être l’une des valeurs suivantes :

Valeur Signification
BLACKONWHITE Lors d’un transfert de bloc de bits réduit, GDI combine des pixels avec une opération AND booléenne. Lors d’un transfert de bloc de bits étendu, les pixels sont répliqués.
COLORONCOLOR Lors d’un transfert de bloc de bits de réduction, GDI ignore suffisamment de pixels pour que les pixels n’ont pas besoin d’être combinés. Lors d’un transfert de bloc de bits étendu, les pixels sont répliqués.
DEMI-TEINTES GDI utilise des groupes de pixels dans la surface de sortie pour estimer au mieux la couleur ou le niveau de gris de l’entrée.
WHITEONBLACK Lors d’un transfert de bloc de bits de réduction, les pixels doivent être combinés à une opération BOOlean OR. Sur un transfert de bloc de bits étendu, les pixels doivent être répliqués.

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. GDI ignore ce paramètre si le paramètre rop4 ne nécessite pas de modèle.

[in] rop4

Représente une opération de rasage qui définit la façon dont les pixels masque, modèle, 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.) La façon la 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 vers lequel pointe psoMask est 1. L’octet élevé spécifie un Rop3 qui peut être calculé et appliqué partout où le masque est égal à zéro.

Valeur retournée

EngStretchBltROP retourne TRUE en cas de réussite. Sinon, elle signale une erreur et retourne FALSE.

Remarques

Le pilote doit appeler EngStretchBltROP s’il a crocheté DrvStretchBltROP , mais ne peut pas prendre en charge toutes les opérations.

Le mappage est défini par prclSrc et prclDest. Les points spécifiés dans prclDest et prclSrc se trouvent sur des coordonnées entières qui correspondent aux centres de pixels. Un rectangle défini par deux points de ce type est considéré comme un rectangle géométrique avec deux sommets dont les coordonnées sont les points donnés, mais avec 0,5 soustrait de chaque coordonnée. (Les structures POINTL sont une notation abrégée permettant de spécifier ces sommets de coordonnées fractionnaires.)

Configuration requise

Condition requise Valeur
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

Voir aussi

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngPlgBlt

EngStretchBlt

EngTransparentBlt