xenocara/doc/gl-docs/GL/gl/linestipple.3gl
2006-11-29 17:00:35 +00:00

88 lines
2.7 KiB
Plaintext

.\" $XFree86$
'\" e
'\"! eqn | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 24 September 1999
.ds Re Release 1.2.1
.ds Dp Jan 14 18:30
.ds Dm 01 linestipp
.ds Xs 10486 5 linestipple.gl
.TH GLLINESTIPPLE 3G
.SH NAME
.B "glLineStipple
\- specify the line stipple pattern
.SH C SPECIFICATION
void \f3glLineStipple\fP(
GLint \fIfactor\fP,
.nf
.ta \w'\f3void \fPglLineStipple( 'u
GLushort \fIpattern\fP )
.fi
.EQ
delim $$
.EN
.SH PARAMETERS
.TP \w'\fIpattern\fP\ \ 'u
\f2factor\fP
Specifies a multiplier for each bit in the line stipple pattern.
If \f2factor\fP is 3,
for example,
each bit in the pattern is used three times
before the next bit in the pattern is used.
\f2factor\fP is clamped to the range [1, 256] and defaults to 1.
.TP
\f2pattern\fP
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.
.SH 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 \f2pattern\fP,
the repeat count \f2factor\fP,
and an integer stipple counter $s$.
.P
Counter $s$ is reset to 0 whenever \%\f3glBegin\fP is called,
and before each line segment of a \%\f3glBegin\fP(\%\f3GL_LINES\fP)/\%\f3glEnd\fP
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
.sp
.ce
\f2pattern\fP bit $(s ~/~ "factor") ~roman mod~ 16$
.sp
is 0, otherwise these fragments are sent to the frame buffer.
Bit zero of \f2pattern\fP is the least significant bit.
.P
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.
.P
To enable and disable line stippling, call \%\f3glEnable\fP and \%\f3glDisable\fP
with argument \%\f3GL_LINE_STIPPLE\fP.
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.
.SH ERRORS
\%\f3GL_INVALID_OPERATION\fP is generated if \%\f3glLineStipple\fP
is executed between the execution of \%\f3glBegin\fP
and the corresponding execution of \%\f3glEnd\fP.
.SH ASSOCIATED GETS
\%\f3glGet\fP with argument \%\f3GL_LINE_STIPPLE_PATTERN\fP
.br
\%\f3glGet\fP with argument \%\f3GL_LINE_STIPPLE_REPEAT\fP
.br
\%\f3glIsEnabled\fP with argument \%\f3GL_LINE_STIPPLE\fP
.SH SEE ALSO
\%\f3glLineWidth(3G)\fP,
\%\f3glPolygonStipple(3G)\fP