---
name: "XIntersectRegion"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XIntersectRegion"
---

# XIntersectRegion(3)

region arithmetic

## NAME

XIntersectRegion, XUnionRegion, XUnionRectWithRegion, XSubtractRegion, XXorRegion, XOffsetRegion, XShrinkRegion - region arithmetic

## SYNTAX

int XIntersectRegion(Region *sra*, Region *srb*, Region *dr\_return*);

int XUnionRegion(Region *sra*, Region *srb*, Region *dr\_return*);

int XUnionRectWithRegion(XRectangle \**rectangle*, Region *src\_region*, Region *dest\_region\_return*);

int XSubtractRegion(Region *sra*, Region *srb*, Region *dr\_return*);

int XXorRegion(Region *sra*, Region *srb*, Region *dr\_return*);

int XOffsetRegion(Region *r*, int *dx*, int *dy*);

int XShrinkRegion(Region *r*, int *dx*, int *dy*);

## ARGUMENTS

- *dest\_region\_return*

  Returns the destination region.

- *dr\_return*

  Returns the result of the computation.

- *dx*

  - *dy*

  Specify the x and y coordinates, which define the amount you want to move or shrink the specified region.

- *r*

  Specifies the region.

- *rectangle*

  Specifies the rectangle.

- *sra*

  - *srb*

  Specify the two regions with which you want to perform the computation.

- *src\_region*

  Specifies the source region to be used.

## DESCRIPTION

The **XIntersectRegion** function computes the intersection of two regions.

The **XUnionRegion** function computes the union of two regions.

The **XUnionRectWithRegion** function updates the destination region from a union of the specified rectangle and the specified source region.

The **XSubtractRegion** function subtracts srb from sra and stores the results in dr\_return.

The **XXorRegion** function calculates the difference between the union and intersection of two regions.

The **XOffsetRegion** function moves the specified region by a specified amount.

The **XShrinkRegion** function reduces the specified region by a specified amount. Positive values shrink the size of the region, and negative values expand the region.

## SEE ALSO

[**XCreateRegion**(3)](/XCreateRegion/3.md), [**XDrawRectangle**(3)](/XDrawRectangle/3.md), [**XEmptyRegion**(3)](/XEmptyRegion/3.md)\
 *Xlib - C Language X Interface*
