XDrawRectangles(display, d, gc, rectangles, nrectangles)
      Display *display;
      Drawable d;
      GC gc;
      XRectangle rectangles[];
      int nrectangles;


display Specifies the connection to the X server.
d Specifies the drawable.
gc Specifies the GC.
rectangles Specifies an array of rectangles.
nrectangles Specifies the number of rectangles in the array.


The XDrawRectangles() functions draw the outlines of the specified rectangles as if a five-point PolyLine protocol request were specified for each rectangle:

[x,y] [x+width,y] [x+width,y+height] [x,y+height] [x,y]

For the specified rectangles, this function does not draw a pixel more than once. XDrawRectangles() draws the rectangles in the order listed in the array. If rectangles intersect, the intersecting pixels are drawn multiple times.

This function uses these GC components: function, plane-mask, line-width, line-style, cap-style, join-style, fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask. It also uses these GC mode-dependent components: foreground, background, tile, stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-offset, and dash-list.

XDrawRectangle() can generate BadDrawable , BadGC , and BadMatch errors.


BadDrawable A value for a Drawable argument does not name a defined Window or Pixmap.
BadGC A value for a GContext argument does not name a defined GContext.
BadMatch An InputOnly window is used as a Drawable.
BadMatch Some argument or pair of arguments has the correct type and range but fails to match in some other way required by the request.

See also

XDrawArc(), XDrawRectangle(), XDrawPoint(), "Drawing Single and Multiple Rectangles".
Christophe Tronche, [email protected]