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
RgnHandle maskRgn; handle to mask region
returns none.
The CopyDeepMask procedure copies the source bitmap or pixel map to a
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.
As with the CopyMask procedure, CopyDeepMask calls are not recorded in
pictures, and do not print. The mask pixel map cannot come from the screen.
Returns: none