The XDrawRectangle and XDrawRectangles functions
draw the outlines of the specified rectangle or 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 rectangle or rectangles,
these functions do 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.

All x and y members are signed integers. The width and height members are
16-bit unsigned integers. You should be careful not to generate coordinates
and sizes out of the 16-bit ranges, because the protocol only has 16-bit
fields for these values.