A drawing operator that strokes the current path according to
the current line width, line join, line cap, and dash settings.
After stroke(), the current path will be cleared from
the cairo context. See setLineWidth(),
setLineJoin(), setLineCap(), setDash(),
and strokePreserve().
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 cairo_set_dash(). 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 moveTo() followed by either a
closePath() or one or more calls to lineTo() to
the same coordinate as the moveTo(). 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.
A drawing operator that strokes the current path according to the current line width, line join, line cap, and dash settings. After stroke(), the current path will be cleared from the cairo context. See setLineWidth(), setLineJoin(), setLineCap(), setDash(), and strokePreserve().
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 cairo_set_dash(). 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 moveTo() followed by either a closePath() or one or more calls to lineTo() to the same coordinate as the moveTo(). 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.