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

# XDrawPoint(3)

draw points and points structure

## NAME

XDrawPoint, XDrawPoints, XPoint - draw points and points structure

## SYNTAX

int XDrawPoint(Display \**display*, Drawable *d*, GC *gc*, int *x*, int *y*);

int XDrawPoints(Display \**display*, Drawable *d*, GC *gc*, XPoint \**points*, int *npoints*, int *mode*);

## ARGUMENTS

- *d*

  Specifies the drawable.

- *display*

  Specifies the connection to the X server.

- *gc*

  Specifies the GC.

- *mode*

  Specifies the coordinate mode. You can pass **CoordModeOrigin** or **CoordModePrevious**.

- *npoints*

  Specifies the number of points in the array.

- *points*

  Specifies an array of points.

- *x*

  - *y*

  Specify the x and y coordinates where you want the point drawn.

## DESCRIPTION

The **XDrawPoint** function uses the foreground pixel and function components of the GC to draw a single point into the specified drawable; **XDrawPoints** draws multiple points this way. **CoordModeOrigin** treats all coordinates as relative to the origin, and **CoordModePrevious** treats all coordinates after the first as relative to the previous point. **XDrawPoints** draws the points in the order listed in the array.

Both functions use these GC components: function, plane-mask, foreground, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.

**XDrawPoint** can generate **BadDrawable**, **BadGC**, and **BadMatch** errors. **XDrawPoints** can generate **BadDrawable**, **BadGC**, **BadMatch**, and **BadValue** errors.

## STRUCTURES

The **XPoint** structure contains:

```
typedef struct {
        short x, y;
} XPoint;
```

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.

## DIAGNOSTICS

- **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.

- **BadValue**

  Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.

## SEE ALSO

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