Details
Note: Degenerate segments and sub-paths are treated specially and
provide a useful result. These can result in two different
situations:
1. Zero-length "on" segments set in cairoSetDash
. If the cap
style is CAIRO_LINE_CAP_ROUND
or CAIRO_LINE_CAP_SQUARE
then these
segments will be drawn as circular dots or squares respectively. In
the case of CAIRO_LINE_CAP_SQUARE
, the orientation of the squares
is determined by the direction of the underlying path.
2. A sub-path created by cairoMoveTo
followed by either a
cairoClosePath
or one or more calls to cairoLineTo
to the
same coordinate as the cairoMoveTo
. If the cap style is
CAIRO_LINE_CAP_ROUND
then these sub-paths will be drawn as circular
dots. Note that in the case of CAIRO_LINE_CAP_SQUARE
a degenerate
sub-path will not be drawn at all, (since the correct orientation
is indeterminate).
In no case will a cap style of CAIRO_LINE_CAP_BUTT
cause anything
to be drawn in the case of either degenerate segments or sub-paths.