CopyDeepMask
void CopyDeepMask(srcBits, maskBits, dstBits, srcRect, maskRect, dstRect, mode, maskRgn);
const BitMap *srcBits ; source bitmap or pixel map const BitMap *maskBits; bitmap or pixel map mask const BitMap *dstBits; destination bitmap or pixel map const Rect * srcRect; source rectangle const Rect *maskRect; mask rectangle const Rect *dstRect; destination boundary rectangle short mode; mode setting
returns none.
destination bitmap or pixel map, using a bitmap or pixel map as a mask. The
transfer can be performed in any of the copy modes described in QuickDraw, with or without ditherCopy set.
The result is clipped to the mask region and the boundary rectangle of the
destination. The source and mask rectangles should be the same size. The mask
rectangle selects the portion of the mask pixel map to use as the mask. If you
don't want to clip to a mask region, pass NULL for the maskRgn parameter. The
dstRect and maskRgn coordinates are in the destination coordinate system; the
srcRect coordinates are in the source coordinate system; the maskRect
coordinates are in the mask coordinate system.
All three pixel maps may range from 1 to 32 in pixel depth. The pixel values
of the mask pixel map are applied as a filter between the source and destination
pixel maps. A black mask pixel value means that the copy operation is to take
the source pixel; a white value means that the copy operation is to take the
destination pixel. Intermediate values specify a weighted average, which is
calculated on a color component basis. For each pixel's color component the
calculation is
(1 - mask) * source + (mask) * destination
Thus high mask values for a pixel's color component reduce that component's
contribution from the source pixel map.
pictures, and do not print. The mask pixel map cannot come from the screen.