glLineStipple
Prev | GL | Next

## Name

glLineStipple — specify the line stipple pattern

## C Specification

`void `glLineStipple`` | `(` | `GLint `factor`, GLushort `pattern`);`

## Python Specification

``glLineStipple`` | `(` | ``factor`, `pattern`) → `None``

## 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 ) 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 × width rectangles for purposes of stippling. Whether rectagle 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, glPolygonStipple

Prev | Up | Next
glLightModel | Home | glLineWidth