NAME

glLineStipple - specify the line stipple pattern

C SPECIFICATION

void ggllLLiinneeSSttiippppllee( GLint _f_a_c_t_o_r,
                    GLushort _p_a_t_t_e_r_n )

delim $$

PARAMETERS

_f_a_c_t_o_r
Specifies a multiplier for each bit in the line stipple pattern. If _f_a_c_t_o_r is 3, for example, each bit in the pattern is used three times before the next bit in the pattern is used. _f_a_c_t_o_r is clamped to the range [1, 256] and defaults to 1.
_p_a_t_t_e_r_n
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 _p_a_t_t_e_r_n, the repeat count _f_a_c_t_o_r, and an integer stipple counter $s$.

Counter $s$ is reset to 0 whenever ggllBBeeggiinn is called, and before each line segment of a ggllBBeeggiinn(GGLL__LLIINNEESS)/ggllEEnndd 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

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

is 0, otherwise these fragments are sent to the frame buffer. Bit zero of _p_a_t_t_e_r_n 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 ggllEEnnaabbllee and ggllDDiissaabbllee with argument GGLL__LLIINNEE__SSTTIIPPPPLLEE. 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

GGLL__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is generated if ggllLLiinneeSSttiippppllee is executed between the execution of ggllBBeeggiinn and the corresponding execution of ggllEEnndd.

ASSOCIATED GETS

ggllGGeett with argument GGLL__LLIINNEE__SSTTIIPPPPLLEE__PPAATTTTEERRNN
ggllGGeett with argument GGLL__LLIINNEE__SSTTIIPPPPLLEE__RREEPPEEAATT
ggllIIssEEnnaabblleedd with argument GGLL__LLIINNEE__SSTTIIPPPPLLEE

SEE ALSO

ggllLLiinneeWWiiddtthh((33GG)), ggllPPoollyyggoonnSSttiippppllee((33GG))