13.7 Flipping Ink

make-flipping-ink  design1 design2 [Function]
          

Returns a design that interchanges occurrences of the two designs design1 and design2. Drawing the resulting design over a background (either by drawing or with compose-over) is defined to change the color in the background that would have been drawn by design1 at that point into the color that would have been drawn by design2 at that point, and vice versa. The effect on any color other than the colors determined by those two designs is unspecified; however, drawing the same figure twice using the same flipping ink is guaranteed to be an "identity" operation. If either design1 or design2 is not solid, the consequences are unspecified. The purpose of flipping is to allow the use of "XOR hacks" for temporary changes to the display. [annotate]

The opacity of a flipping ink is zero at points where the opacity of either design1 or design2 is zero. Otherwise the opacity of a flipping ink is 1. If design1 or design2 is translucent, the consequences are unspecified. If compose-in or compose-out is used to make a flipping ink translucent, the consequences are unspecified. [annotate]

If design1 and design2 are equivalent, the result can be +nowhere+. [annotate]

In Release 2, make-flipping-ink might require design1 and design2 to be colors. [annotate]

[annotate]

+flipping-ink+   [Constant]
          

A flipping ink that flips +foreground-ink+ and +background-ink+. [annotate]

[annotate]