OpenGL man pages
glLineWidth - specify the width of rasterized lines
void glLineWidth( GLfloat width )
width Specifies the width of rasterized lines. The default is 1.0.
glLineWidth specifies the rasterized width of both aliased and antialiased
lines. Using a line width other than 1.0 has different effects, depending
on whether line antialiasing is enabled. Line antialiasing is controlled
by calling glEnable and glDisable with argument GL_LINE_SMOOTH.
If line antialiasing is disabled, the actual width is determined by
rounding the supplied width to the nearest integer. (If the rounding
results in the value 0, it is as if the line width were 1.) If |dx| >= |dy|,
i pixels are filled in each column that is rasterized, where i is the
rounded value of width. Otherwise, i pixels are filled in each row that is
If antialiasing is enabled, line rasterization produces a fragment for each
pixel square that intersects the region lying within the rectangle having
width equal to the current line width, length equal to the actual length of
the line, and centered on the mathematical line segment. The coverage
value for each fragment is the window coordinate area of the intersection
of the rectangular region with the corresponding pixel square. This value
is saved and used in the final rasterization step.
Not all widths can be supported when line antialiasing is enabled. If an
unsupported width is requested, the nearest supported width is used. Only
width 1.0 is guaranteed to be supported; others depend on the
implementation. The range of supported widths and the size difference
between supported widths within the range can be queried by calling glGet
with arguments GL_LINE_WIDTH_RANGE and GL_LINE_WIDTH_GRANULARITY.
The line width specified by glLineWidth is always returned when
GL_LINE_WIDTH is queried. Clamping and rounding for aliased and
antialiased lines have no effect on the specified value.
Non-antialiased line width may be clamped to an implementation-dependent
maximum. Although this maximum cannot be queried, it must be no less than
the maximum value for antialiased lines, rounded to the nearest integer
GL_INVALID_VALUE is generated if width is less than or equal to zero.
GL_INVALID_OPERATION is generated if glLineWidth is executed between the
execution of glBegin and the corresponding execution of glEnd.
glGet with argument GL_LINE_WIDTH
glGet with argument GL_LINE_WIDTH_RANGE
glGet with argument GL_LINE_WIDTH_GRANULARITY
glIsEnabled with argument GL_LINE_SMOOTH