XDrawSegments()XDrawSegments()NameXDrawSegments – draw multiple disjoint lines.
Synopsis
XDrawSegments(display, drawable, gc, segments, nsegments)
Display *display;
Drawable drawable;
GC gc;
XSegment *segments;
int nsegments;
Arguments
display Specifies a connection to an X server; returned from
XOpenDisplay().
drawable Specifies the drawable.
gc Specifies the graphics context.
segments Specifies a pointer to an array of line segments.
nsegments Specifies the number of segments in the array.
DescriptionXDrawSegments() draws multiple line segments into the specified draw‐
able. Each line is specified by a pair of points, so the line may be
connected or disjoint.
For each segment, XDrawSegments() draws a line between (x1, y1) and
(x2, y2). The lines are drawn in the order listed in segments. For
any given line, no pixel is drawn more than once. If lines intersect,
pixels will be drawn multiple times. The lines will be drawn sepa‐
rately, without regard to the join_style.
In R4 and earlier there is a limit to the number of rectangles that can
be drawn in a single XDrawSegments() call, based on the maximum request
size, which varies according to the server. In R5, Xlib chops your
call into as many protocol requests as required. To determine how many
rectangles you can draw in a single call in R4, find out your server's
maximum request size using XMaxRequestSize(). Subtract three and
divide by two. This is the maximum number of segments you can draw in
a single XDrawSegments() call.
XDrawSegments() uses these graphics context components: function,
plane_mask, line_width, line_style, cap_style, fill_style, subwin‐
dow_mode, clip_ x_origin, clip_y_origin, and clip_mask. XDrawSeg‐
ments() also uses these graphics context mode-dependent components:
foreground, background, tile, stipple, ts_x_origin, ts_y_origin,
dash_offset, and dashes.
For more information, see Volume One, Chapter 6, Drawing Graphics and
Text, and Chapter 5, The Graphics Context.
Structures
typedef struct {
short x1, y1, x2, y2;
} XSegment;
Errors
BadDrawable
Specified drawable is invalid.
BadGC Specified GC is invalid, or does not match the depth of draw‐
able.
BadMatch Specified drawable is an InputOnly window.
See AlsoXClearArea(), XClearWindow(), XCopyArea(), XCopyPlane(), XDraw,
XDrawArc(), XDrawArcs(), XDrawFilled(), XDrawLine(), XDrawLines(),
XDrawPoint(), XDrawPoints(), XDrawRectangle(), XDrawRectangles(), XFil‐
lArc(), XFillArcs(), XFillPolygon(), XFillRectangle(), XFillRectan‐
gles().
Xlib - Drawing Primitives XDrawSegments()