A transform object which determines the coordinate transformation applying to the graphics port. The default value is the unit transform which leaves the port coordinates unchanged from those used by the host window system — origin at top left, X increasing to the right and Y increasing down the screen. Allowed values are anything returned by the transform functions, described in Graphics state transforms.
Determines the foreground color used in drawing functions. The value can be a converted color (result of convert-color), a color name symbol, a color name string or a color spec object. Using converted colors results in better performance, because it saves the system from doing the conversion each time it uses it. The default value is
:black. The value
:color_highlighttext is useful for drawing text with the system highlighting.
Determines the background color used in functions which draw text such as draw-string when block is true.
Determines the color combination used in the drawing primitives when the
:compatible. Valid values are 0 to 15, being the same logical values as the
arg to the Common Lisp function
boole. The default value is
boole-1. Combining pixels with :compatible drawing shows how to use
is a 1-bit pixmap ("bitmap") or
nil (which is the default value). The bitmap is used in conjunction with the
when drawing. Here,
nil means that all pixels are drawn in the
color. A stipple is not transformed by the
parameter. Its origin is assumed to coincide with the origin of the port. The
is tiled across the drawing.
is ignored if a
is given. If no
is given, or it is specified as
:solid, when a
is given, then
Determines how the drawing is done. The value should be one of
:tiled, :opaque-stippled or
:stippled. The default value
:solid means that the
is used everywhere.
:tiled means that the
is repeated over across the drawing.
Additionally on X11/Motif
:opaque-stippled means that the
bitmap is used with stipple 1s giving the
and 0s the
:stippled means that the
bitmap is used with
where there are 1s and where the are 0s, no drawing is done. If you specify a stipple but no
, or a
:solid, it defaults to
An image the same depth as the
nil. If non-nil,
is used as the source of color for drawing instead of the
parameters. A pattern is not transformed by the
is tiled across the drawing. When
is specified, the
value is ignored.The default value of
See Working with images for information on creating an image.
A number (defaulting to 1) specifying the thickness of lines drawn. If scale-thickness is non-nil, the value thickness is in port (transformed) coordinates, otherwise thickness is in pixels.
A boolean, defaulting to
t which means interpret the
parameter in transformed port coordinates. If
is interpreted in pixels.
A boolean, defaulting to
t then lines are drawn as a dashed line using
as the mark-space specifier.
A list of two or more integer, or
nil. A list of integers specifies the alternate mark and space sizes for dashed lines. These mark and space values are interpreted in pixels only. The default value of
The value should be one of
:projecting and specifies how to draw the ends of lines. The default value is
The value should be one of
:round and specifies how to draw the areas where the edges of polygons meet. The default value is
An integer specifying in window coordinates where in the port the X coordinate of the mask origin is to be considered to be. The default value is 0.
An integer specifying in window coordinates where in the port the Y coordinate of the mask origin is to be considered to be. The default value is 0.
A transform object which determines the coordinate transformation use for the mask in
A keyword controlling the mode of rendering text, most importantly anti-aliasing.
A keyword controlling the mode of drawing shapes (that is, anything except text).
Each graphics port has a
graphics-state object associated with it, providing the default values of graphics parameters for drawing operations. The drawing operations such as draw-ellipse, draw-rectangle and draw-string can override specific parameters by passing them as keyword arguments.
nil (the default), a list of the form (
), defining a rectangle inside which the drawing is done or a list of the form (
) specifying a path inside which the drawing is done. The mask is not tiled.
In the latter case
should be a path specification (see draw-path). The
specifies how overlapping regions are filled. Possible values are
will be transformed by the
is used only in
:quality. It is ignored in
:compatible. The default value is the unit transform, which can also be specified as
nil. Other allowed values include anything returned by the transform functions, described in Graphics state transforms. The other allowed value of
is the keyword
:dynamic which is replaced by the current value of the
graphics state parameter when the drawing operation uses the mask.
Fastest rendering. The same as
:plain except on Windows.
The system default (which is
:compatible, which causes text to be drawn the way it would be drawn if
:compatible. This makes a difference only on Microsoft Windows, because on other platforms the default
draws like the
compositing-mode is a keyword or an integer controlling the compositing mode, that is the way that a new drawing is combined with the existing value in the target of the drawing to generate the result.
Draw over the existing values. If the source is a solid color, then the result is simply the source. If the source has alpha value alpha , then it is blended with the destination, with the destination multiplied by the remainder of the alpha, that is (- 1 alpha ).
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.
On Cocoa 10.5 and later and GTK+ 2.8 or later, these additional keyword values of
:add. These correspond to the
CAIRO_OPERATOR_* operators in Cairo, which are documented in
CGBlendMode values which are documented in the CGContext Reference at
Both Cocoa and GTK+ also allow
to be an integer, which is simply passed through to the underlying system. This allows using modes that are not available via keywords, but it is not portable. For Cocoa, it is a
CGBlendMode as documented in the CGContext Reference. For GTK+ it is
cairo_operator_t, as documented in the entry for
cairo_t in the Gnome documentation for Cairo.
:quality. For more information about drawing-mode , see The drawing mode and anti-aliasing.
CAPI User Guide and Reference Manual (Macintosh version) - 3 Aug 2017