The actual width of non-antialiased lines is determined by rounding
the supplied width to the nearest integer,
then clamping it to the implementation-dependent
maximum non-antialiased line width.
Though this implementation-dependent value cannot be queried,
it must be no less than the implementation-dependent maximum antialiased
line width, rounded to the nearest integer value,
and in any event no less than **1**.
If rounding the specified width results in the value **0**,
then it is as if the value were **1**.

Non-antialiased
line segments of width other than one are rasterized by offsetting them in
the minor direction (for an **x**-major line, the minor direction is **y**,
and for a **y**-major line, the minor direction is **x**)
and replicating fragments in the
minor direction (see Figure 3.5).

**Figure 3.5:** Rasterization of non-antialiased wide lines.
x-major line segments are shown.
The heavy line segment is the one specified to be rasterized;
the light segment is the offset segment used for rasterization.
x marks indicate the fragment centers produced by rasterization.

Let **w** be the width rounded to the nearest integer (if **w=0**,
then it is as if **w=1**).
If the line segment has endpoints given by and
in window coordinates,
the segment with endpoints and
is rasterized,
but instead of a single fragment,
a column of fragments of height **w**
(a row of fragments of length **w** for a **y**-major segment)
is produced at each **x** (**y** for **y**-major) location.
The lowest fragment of this column is the fragment that would be produced by
rasterizing the segment of width 1 with the modified coordinates.
The whole column is not produced if the stipple bit for the column's
**x** location is zero;
otherwise,
the whole column is produced.

Sat Mar 29 02:23:21 PST 1997