---
name: "glLineStipple"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glLineStipple"
---

# glLineStipple(3x)

specify the line stipple pattern

## NAME

**glLineStipple** - specify the line stipple pattern

## C SPECIFICATION

void **glLineStipple**( GLint *factor*,

```
	GLushort pattern )
```

delim $$

## PARAMETERS

- *factor*

  Specifies a multiplier for each bit in the line stipple pattern. If *factor* is 3, for example, each bit in the pattern is used three times before the next bit in the pattern is used. *factor* is clamped to the range \[1, 256\] and defaults to 1.

- *pattern*

  Specifies a 16-bit integer whose bit pattern determines which fragments of a line will be drawn when the line is rasterized. Bit zero is used first; the default pattern is all 1's.

## DESCRIPTION

Line stippling masks out certain fragments produced by rasterization; those fragments will not be drawn. The masking is achieved by using three parameters: the 16-bit line stipple pattern *pattern*, the repeat count *factor*, and an integer stipple counter $s$.

Counter $s$ is reset to 0 whenever **glBegin** is called, and before each line segment of a **glBegin**(**GL\_LINES**)/**glEnd** sequence is generated. It is incremented after each fragment of a unit width aliased line segment is generated, or after each $i$ fragments of an $i$ width line segment are generated. The $i$ fragments associated with count $s$ are masked out if

*pattern* bit $(s ~/~ "factor") ~roman mod~ 16$

is 0, otherwise these fragments are sent to the frame buffer. Bit zero of *pattern* is the least significant bit.

Antialiased lines are treated as a sequence of $1 times width$ rectangles for purposes of stippling. Whether rectangle $s$ is rasterized or not depends on the fragment rule described for aliased lines, counting rectangles rather than groups of fragments.

To enable and disable line stippling, call **glEnable** and **glDisable** with argument **GL\_LINE\_STIPPLE**. When enabled, the line stipple pattern is applied as described above. When disabled, it is as if the pattern were all 1's. Initially, line stippling is disabled.

## ERRORS

**GL\_INVALID\_OPERATION** is generated if **glLineStipple** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_LINE\_STIPPLE\_PATTERN**\
 **glGet** with argument **GL\_LINE\_STIPPLE\_REPEAT**\
 **glIsEnabled** with argument **GL\_LINE\_STIPPLE**

## SEE ALSO

**glLineWidth(3G)**, **glPolygonStipple(3G)**
