Documentation de Gambas - /comp/gb.opengl/gl/linestipple

/comp/gb.opengl/gl/linestipple

# Gl.LineStipple (gb.opengl)

Static Sub LineStipple ( Factor As Integer, Pattern As Integer )

Specify the line stipple pattern.

### 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 /wiki/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 Gl.Begin is called and before each line segment of a Gl.Begin(Gl.LINES)/Gl.End 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 % 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 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 Gl.Enable and Gl.Disable 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 Gl.LineStipple is executed between the execution of Gl.Begin and the corresponding execution of Gl.End.

### Associated Gets

Gl.Get with argument Gl.LINE_STIPPLE_PATTERN

Gl.Get with argument Gl.LINE_STIPPLE_REPEAT

Gl.IsEnabled with argument Gl.LINE_STIPPLE

### See also

- Gl.LineWidth,

Gl.PolygonStipple

See original documentation on OpenGL website