




This section describes how new drawings are combined with the existing pixel values in the target of the drawing to generate the result, according to graphics state parameters compositing-mode or operation.
Note: The full set of graphics state parameters is described under graphics-state.
When the port's 
drawing-mode
 is :compatible the graphics state parameter 
operation
 determines how the colors are combined, and 
compositing-mode 
is ignored.
The allowed values of 
operation
 are the values of the Common Lisp constants boole-1, boole-and and so on. These are the allowed values of the first argument to the Common Lisp function boole.See the specification of boole in the ANSI Common Lisp standard for the full list of operations.
The color combination corresponds to the logical operation defined there, as if by calling
(boole 
operation
 
new-pixel
 
screen-pixel
)
For example, passing :operation boole-andc2 provides a graphics-state where graphics ports drawing functions draw with the bitwise AND of the 
foreground
 color and the complement of the existing color of each pixel.
Note: Graphics State operation is not supported by Cocoa/Core Graphics so this parameter is ignored on Cocoa.
When the port's 
drawing-mode
 is :quality the graphics state parameter  
compositing-mode 
determines how the colors are combined, and 
operation
 is ignored.
compositing-mode
 :over means draw over the existing values, blending alpha values if they exist.
compositing-mode
 :copy means that the source is written to the destination ignoring the existing values. If the source has alpha and the target does not, that has the effect of converting semi-transparent source to solid. :copy is especially useful for creating transparent and semi-transparent pixmap ports, which can be displayed directly or converted to images by make-image-from-port.
Further compositing-mode values are supported on later versions of Cocoa and GTK+.
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017