6.3 Regions

An X region is an arbitrary set of pixels on the screen. But usually a region is either a rectangular area, several overlapping or adjacent rectangular areas, or a general polygon. Regions are chiefly used to set the clip_mask member of the GC. XSetRegion() sets the clip_mask to a region so that output will occur only within the region. Using XSetRegion() is a lot easier than defining a single-plane pixmap with the desired size and shape and then using that bitmap to set the clip_mask with XSetClipMask(), and it is more flexible than the clip_mask you can set with XSetClipRectangles().

The most common use of setting the clip_mask to a region is to combine the rectangle from each of multiple contiguous Expose events on a single window into a single region and clip the redrawing to that region. This provides a performance improvement in some situations. See 3.2.13.1 Repainting the Window for more information and an example.

A region has an x and y offset, which is used internally when making calculations with regions (offsets for all regions have a common origin). The offset has an effect if the region is used as a clip_mask. When making a graphics request with the clip_mask of the GC set with XSetRegion(), the offset of the region is added to clip_x_origin and clip_y_origin to determine the placement of the region relative to the destination drawable.

Regions can be created with XCreateRegion() or XPolygonRegion(). XCreateRegion() creates an empty region to which rectangles ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.