5.1 Conceptual Overview of Drawing With Color

This chapter describes the
:ink
drawing option and the simpler values that can be supplied for that option, such as colors.

To draw in color, you supply the
:ink
drawing option to CLIM's drawing functions (see Chapter 2, "Drawing Graphics in CLIM," for details).
:ink
can take as its value:

a color

the constant
+foreground-ink+

the constant
+background-ink+

a flipping ink

The drawing functions work by selecting a region of the drawing plane and painting it with color. The region is clipped by the current
:clipping-region
drawing option in effect, and is then transformed by the current
:transformation
drawing option (see Chapter 3, The CLIM Drawing Environment for the rules controlling these options). The shape can be a graphical area (such as a rectangle or an ellipse), a path (such as a line segment or the outline of an ellipse), or the letter forms of text. Any viewports or dataports attached to this drawing plane are updated accordingly. The
:ink
drawing option is never affected by the
:transformation
drawing option nor by the sheet transformation; this ensures that stipple patterns on adjacent sheets join seamlessly.

Along with its drawing plane, a medium has a
foreground and a
background. The foreground is the default ink when the
:ink
drawing option is not specified. The background is drawn all over the drawing plane before any output is drawn. You can erase by drawing the background over the region to be erased. You can change the foreground or background at any time. This changes the contents of the drawing plane. The effect is as if everything on the drawing plane is erased, the background is drawn on the entire drawing plane, and then everything that was ever drawn (provided it was saved in the output history) is redrawn using the new foreground and background.