update upstream sources
[clinton/guile-figl.git] / doc / low-level-glu.texi
index d6d4f7b..46a3412 100644 (file)
@@ -9,12 +9,12 @@ The functions from this section may be had by loading the module:
 
 @copying 
 This section of the manual was derived from the upstream OpenGL
-documentation. Each function's documentation has its own copyright
-statement; for full details, see the upstream documentation. The
+documentation.  Each function's documentation has its own copyright
+statement; for full details, see the upstream documentation.  The
 copyright notices and licenses present in this section are as follows.
 
-Copyright @copyright{} 1991-2006 Silicon Graphics, Inc. This document is
-licensed under the SGI Free Software B License. For details, see
+Copyright @copyright{} 1991-2006 Silicon Graphics, Inc.  This document
+is licensed under the SGI Free Software B License.  For details, see
 @uref{http://oss.sgi.com/projects/FreeB/,http://oss.sgi.com/projects/FreeB/}.
 
 @end copying
@@ -30,15 +30,15 @@ Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 @end table
 
 Use @code{gluBeginCurve} to mark the beginning of a NURBS curve
-definition. After calling @code{gluBeginCurve}, make one or more calls
-to @code{gluNurbsCurve} to define the attributes of the curve. Exactly
+definition.  After calling @code{gluBeginCurve}, make one or more calls
+to @code{gluNurbsCurve} to define the attributes of the curve.  Exactly
 one of the calls to @code{gluNurbsCurve} must have a curve type of
-@code{GLU_MAP1_VERTEX_3} or @code{GLU_MAP1_VERTEX_4}. To mark the end of
-the NURBS curve definition, call @code{gluEndCurve}.
+@code{GLU_MAP1_VERTEX_3} or @code{GLU_MAP1_VERTEX_4}.  To mark the end
+of the NURBS curve definition, call @code{gluEndCurve}.
 
 GL evaluators are used to render the NURBS curve as a series of line
-segments. Evaluator state is preserved during rendering with
-@code{glPushAttrib}(@code{GLU_EVAL_BIT}) and @code{glPopAttrib}(). See
+segments.  Evaluator state is preserved during rendering with
+@code{glPushAttrib}(@code{GLU_EVAL_BIT}) and @code{glPopAttrib}().  See
 the @code{glPushAttrib} reference page for details on exactly what state
 these calls preserve.
 
@@ -55,15 +55,15 @@ Specifies the tessellation object (created with @code{gluNewTess}).
 @end table
 
 @code{gluBeginPolygon} and @code{gluEndPolygon} delimit the definition
-of a nonconvex polygon. To define such a polygon, first call
-@code{gluBeginPolygon}. Then define the contours of the polygon by
+of a nonconvex polygon.  To define such a polygon, first call
+@code{gluBeginPolygon}.  Then define the contours of the polygon by
 calling @code{gluTessVertex} for each vertex and @code{gluNextContour}
-to start each new contour. Finally, call @code{gluEndPolygon} to signal
-the end of the definition. See the @code{gluTessVertex} and
+to start each new contour.  Finally, call @code{gluEndPolygon} to signal
+the end of the definition.  See the @code{gluTessVertex} and
 @code{gluNextContour} reference pages for more details.
 
 Once @code{gluEndPolygon} is called, the polygon is tessellated, and the
-resulting triangles are described through callbacks. See
+resulting triangles are described through callbacks.  See
 @code{gluTessCallback} for descriptions of the callback functions.
 
 @end deftypefun
@@ -79,20 +79,20 @@ Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 @end table
 
 Use @code{gluBeginSurface} to mark the beginning of a NURBS surface
-definition. After calling @code{gluBeginSurface}, make one or more calls
-to @code{gluNurbsSurface} to define the attributes of the surface.
+definition.  After calling @code{gluBeginSurface}, make one or more
+calls to @code{gluNurbsSurface} to define the attributes of the surface.
 Exactly one of these calls to @code{gluNurbsSurface} must have a surface
-type of @code{GLU_MAP2_VERTEX_3} or @code{GLU_MAP2_VERTEX_4}. To mark
+type of @code{GLU_MAP2_VERTEX_3} or @code{GLU_MAP2_VERTEX_4}.  To mark
 the end of the NURBS surface definition, call @code{gluEndSurface}.
 
 Trimming of NURBS surfaces is supported with @code{gluBeginTrim},
-@code{gluPwlCurve}, @code{gluNurbsCurve}, and @code{gluEndTrim}. See the
-@code{gluBeginTrim} reference page for details.
+@code{gluPwlCurve}, @code{gluNurbsCurve}, and @code{gluEndTrim}.  See
+the @code{gluBeginTrim} reference page for details.
 
 GL evaluators are used to render the NURBS surface as a set of polygons.
 Evaluator state is preserved during rendering with
-@code{glPushAttrib}(@code{GLU_EVAL_BIT}) and @code{glPopAttrib}. See the
-@code{glPushAttrib} reference page for details on exactly what state
+@code{glPushAttrib}(@code{GLU_EVAL_BIT}) and @code{glPopAttrib}.  See
+the @code{glPushAttrib} reference page for details on exactly what state
 these calls preserve.
 
 @end deftypefun
@@ -108,31 +108,31 @@ Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 @end table
 
 Use @code{gluBeginTrim} to mark the beginning of a trimming loop and
-@code{gluEndTrim} to mark the end of a trimming loop. A trimming loop is
-a set of oriented curve segments (forming a closed curve) that define
-boundaries of a NURBS surface. You include these trimming loops in the
+@code{gluEndTrim} to mark the end of a trimming loop.  A trimming loop
+is a set of oriented curve segments (forming a closed curve) that define
+boundaries of a NURBS surface.  You include these trimming loops in the
 definition of a NURBS surface, between calls to @code{gluBeginSurface}
 and @code{gluEndSurface}.
 
-The definition for a NURBS surface can contain many trimming loops. For
+The definition for a NURBS surface can contain many trimming loops.  For
 example, if you wrote a definition for a NURBS surface that resembled a
 rectangle with a hole punched out, the definition would contain two
-trimming loops. One loop would define the outer edge of the rectangle;
-the other would define the hole punched out of the rectangle. The
+trimming loops.  One loop would define the outer edge of the rectangle;
+the other would define the hole punched out of the rectangle.  The
 definitions of each of these trimming loops would be bracketed by a
 @code{gluBeginTrim}/@code{gluEndTrim} pair.
 
 The definition of a single closed trimming loop can consist of multiple
 curve segments, each described as a piecewise linear curve (see
 @code{gluPwlCurve}) or as a single NURBS curve (see
-@code{gluNurbsCurve}), or as a combination of both in any order. The
+@code{gluNurbsCurve}), or as a combination of both in any order.  The
 only library calls that can appear in a trimming loop definition
 (between the calls to @code{gluBeginTrim} and @code{gluEndTrim}) are
 @code{gluPwlCurve} and @code{gluNurbsCurve}.
 
 The area of the NURBS surface that is displayed is the region in the
 domain to the left of the trimming curve as the curve parameter
-increases. Thus, the retained region of the NURBS surface is inside a
+increases.  Thus, the retained region of the NURBS surface is inside a
 counterclockwise trimming loop and outside a clockwise trimming loop.
 For the rectangle mentioned earlier, the trimming loop for the outer
 edge of the rectangle runs counterclockwise, while the trimming loop for
@@ -141,15 +141,15 @@ the punched-out hole runs clockwise.
 If you use more than one curve to define a single trimming loop, the
 curve segments must form a closed loop (that is, the endpoint of each
 curve must be the starting point of the next curve, and the endpoint of
-the final curve must be the starting point of the first curve). If the
+the final curve must be the starting point of the first curve).  If the
 endpoints of the curve are sufficiently close together but not exactly
-coincident, they will be coerced to match. If the endpoints are not
+coincident, they will be coerced to match.  If the endpoints are not
 sufficiently close, an error results (see @code{gluNurbsCallback}).
 
 If a trimming loop definition contains multiple curves, the direction of
 the curves must be consistent (that is, the inside must be to the left
-of all of the curves). Nested trimming loops are legal as long as the
-curve orientations alternate correctly. If trimming curves are
+of all of the curves).  Nested trimming loops are legal as long as the
+curve orientations alternate correctly.  If trimming curves are
 self-intersecting, or intersect one another, an error results.
 
 If no trimming information is given for a NURBS surface, the entire
@@ -162,17 +162,17 @@ Builds a subset of one-dimensional mipmap levels.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_1D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_1D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -190,18 +190,18 @@ constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_RGBA16}.
 
 @item @var{width}
-Specifies the width in pixels of the texture image. This should be a
+Specifies the width in pixels of the texture image.  This should be a
 power of 2.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of:
+Specifies the format of the pixel data.  Must be one of:
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of:
+Specifies the data type for @var{data}.  Must be one of:
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -235,19 +235,19 @@ A return value of zero indicates success, otherwise a GLU error code is
 returned (see @code{gluErrorString}).
 
 A series of mipmap levels from @var{base} to @var{max} is built by
-decimating @var{data} in half until size @r{1×1} is reached. At each
+decimating @var{data} in half until size @r{1×1} is reached.  At each
 level, each texel in the halved mipmap level is an average of the
-corresponding two texels in the larger mipmap level. @code{glTexImage1D}
-is called to load these mipmap levels from @var{base} to @var{max}. If
+corresponding two texels in the larger mipmap level.  @code{glTexImage1D}
+is called to load these mipmap levels from @var{base} to @var{max}.  If
 @var{max} is larger than the highest mipmap level for the texture of the
 specified size, then a GLU error code is returned (see
 @code{gluErrorString}) and nothing is loaded.
 
 For example, if @var{level} is 2 and @var{width} is 16, the following
-levels are possible: @r{16×1}, @r{8×1}, @r{4×1}, @r{2×1}, @r{1×1}. These
-correspond to levels 2 through 6 respectively. If @var{base} is 3 and
+levels are possible: @r{16×1}, @r{8×1}, @r{4×1}, @r{2×1}, @r{1×1}.  These
+correspond to levels 2 through 6 respectively.  If @var{base} is 3 and
 @var{max} is 5, then only mipmap levels @r{8×1}, @r{4×1} and @r{2×1} are
-loaded. However, if @var{max} is 7, then an error is returned and
+loaded.  However, if @var{max} is 7, then an error is returned and
 nothing is loaded since @var{max} is larger than the highest mipmap
 level which is, in this case, 6.
 
@@ -255,7 +255,7 @@ The highest mipmap level can be derived from the formula
 @r{@var{log}_2⁡(@var{width}×2^@var{level},)}.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for @var{type} parameter. See the @code{glDrawPixels}
+acceptable values for @var{type} parameter.  See the @code{glDrawPixels}
 reference page for a description of the acceptable values for
 @var{level} parameter.
 
@@ -302,17 +302,17 @@ Builds a one-dimensional mipmap.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_1D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_1D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -333,14 +333,14 @@ constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 Specifies the width, in pixels, of the texture image.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of
+Specifies the format of the pixel data.  Must be one of
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of
+Specifies the data type for @var{data}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -358,39 +358,39 @@ Specifies a pointer to the image data in memory.
 @end table
 
 @code{gluBuild1DMipmaps} builds a series of prefiltered one-dimensional
-texture maps of decreasing resolutions called a mipmap. This is used for
-the antialiasing of texture mapped primitives.
+texture maps of decreasing resolutions called a mipmap.  This is used
+for the antialiasing of texture mapped primitives.
 
 A return value of zero indicates success, otherwise a GLU error code is
 returned (see @code{gluErrorString}).
 
 Initially, the @var{width} of @var{data} is checked to see if it is a
-power of 2. If not, a copy of @var{data} is scaled up or down to the
-nearest power of 2. (If @var{width} is exactly between powers of 2, then
-the copy of @var{data} will scale upwards.) This copy will be used for
-subsequent mipmapping operations described below. For example, if
+power of 2.  If not, a copy of @var{data} is scaled up or down to the
+nearest power of 2.  (If @var{width} is exactly between powers of 2,
+then the copy of @var{data} will scale upwards.) This copy will be used
+for subsequent mipmapping operations described below.  For example, if
 @var{width} is 57, then a copy of @var{data} will scale up to 64 before
 mipmapping takes place.
 
 Then, proxy textures (see @code{glTexImage1D}) are used to determine if
-the implementation can fit the requested texture. If not, @var{width} is
-continually halved until it fits.
+the implementation can fit the requested texture.  If not, @var{width}
+is continually halved until it fits.
 
 Next, a series of mipmap levels is built by decimating a copy of
-@var{data} in half until size @r{1×1} is reached. At each level, each
+@var{data} in half until size @r{1×1} is reached.  At each level, each
 texel in the halved mipmap level is an average of the corresponding two
 texels in the larger mipmap level.
 
-@code{glTexImage1D} is called to load each of these mipmap levels. Level
-0 is a copy of @var{data}. The highest level is
-@r{@var{log}_2,⁡(@var{width},)}. For example, if @var{width} is 64 and
+@code{glTexImage1D} is called to load each of these mipmap levels.  Level
+0 is a copy of @var{data}.  The highest level is
+@r{@var{log}_2,⁡(@var{width},)}.  For example, if @var{width} is 64 and
 the implementation can store a texture of this size, the following
 mipmap levels are built: @r{64×1}, @r{32×1}, @r{16×1}, @r{8×1}, @r{4×1},
-@r{2×1}, and @r{1×1}. These correspond to levels 0 through 6,
+@r{2×1}, and @r{1×1}.  These correspond to levels 0 through 6,
 respectively.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for the @var{type} parameter. See the
+acceptable values for the @var{type} parameter.  See the
 @code{glDrawPixels} reference page for a description of the acceptable
 values for the @var{data} parameter.
 
@@ -433,17 +433,17 @@ Builds a subset of two-dimensional mipmap levels.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_2D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_2D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -463,17 +463,17 @@ constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @item @var{width}
 @itemx @var{height}
 Specifies the width and height, respectively, in pixels of the texture
-image. These should be a power of 2.
+image.  These should be a power of 2.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of
+Specifies the format of the pixel data.  Must be one of
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of
+Specifies the data type for @var{data}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -508,21 +508,21 @@ returned (see @code{gluErrorString}).
 
 A series of mipmap levels from @var{base} to @var{max} is built by
 decimating @var{data} in half along both dimensions until size @r{1×1}
-is reached. At each level, each texel in the halved mipmap level is an
-average of the corresponding four texels in the larger mipmap level. (In
+is reached.  At each level, each texel in the halved mipmap level is an
+average of the corresponding four texels in the larger mipmap level.  (In
 the case of rectangular images, the decimation will ultimately reach an
-@r{@var{N}×1} or @r{1×@var{N}} configuration. Here, two texels are
+@r{@var{N}×1} or @r{1×@var{N}} configuration.  Here, two texels are
 averaged instead.) @code{glTexImage2D} is called to load these mipmap
-levels from @var{base} to @var{max}. If @var{max} is larger than the
+levels from @var{base} to @var{max}.  If @var{max} is larger than the
 highest mipmap level for the texture of the specified size, then a GLU
 error code is returned (see @code{gluErrorString}) and nothing is
 loaded.
 
 For example, if @var{level} is 2 and @var{width} is 16 and @var{height}
 is 8, the following levels are possible: @r{16×8}, @r{8×4}, @r{4×2},
-@r{2×1}, @r{1×1}. These correspond to levels 2 through 6 respectively.
+@r{2×1}, @r{1×1}.  These correspond to levels 2 through 6 respectively.
 If @var{base} is 3 and @var{max} is 5, then only mipmap levels @r{8×4},
-@r{4×2}, and @r{2×1} are loaded. However, if @var{max} is 7, then an
+@r{4×2}, and @r{2×1} are loaded.  However, if @var{max} is 7, then an
 error is returned and nothing is loaded since @var{max} is larger than
 the highest mipmap level which is, in this case, 6.
 
@@ -530,7 +530,7 @@ The highest mipmap level can be derived from the formula
 @r{@var{log}_2⁡(@var{max}⁡(@var{width},@var{height})×2^@var{level},)}.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for @var{format} parameter. See the
+acceptable values for @var{format} parameter.  See the
 @code{glDrawPixels} reference page for a description of the acceptable
 values for @var{type} parameter.
 
@@ -578,17 +578,17 @@ Builds a two-dimensional mipmap.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_2D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_2D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -611,14 +611,14 @@ Specifies in pixels the width and height, respectively, of the texture
 image.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of
+Specifies the format of the pixel data.  Must be one of
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of
+Specifies the data type for @var{data}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -636,24 +636,24 @@ Specifies a pointer to the image data in memory.
 @end table
 
 @code{gluBuild2DMipmaps} builds a series of prefiltered two-dimensional
-texture maps of decreasing resolutions called a mipmap. This is used for
-the antialiasing of texture-mapped primitives.
+texture maps of decreasing resolutions called a mipmap.  This is used
+for the antialiasing of texture-mapped primitives.
 
 A return value of zero indicates success, otherwise a GLU error code is
 returned (see @code{gluErrorString}).
 
 Initially, the @var{width} and @var{height} of @var{data} are checked to
-see if they are a power of 2. If not, a copy of @var{data} (not
-@var{data}), is scaled up or down to the nearest power of 2. This copy
-will be used for subsequent mipmapping operations described below. (If
+see if they are a power of 2.  If not, a copy of @var{data} (not
+@var{data}), is scaled up or down to the nearest power of 2.  This copy
+will be used for subsequent mipmapping operations described below.  (If
 @var{width} or @var{height} is exactly between powers of 2, then the
 copy of @var{data} will scale upwards.) For example, if @var{width} is
 57 and @var{height} is 23, then a copy of @var{data} will scale up to 64
 in @var{width} and down to 16 in depth, before mipmapping takes place.
 
 Then, proxy textures (see @code{glTexImage2D}) are used to determine if
-the implementation can fit the requested texture. If not, both
-dimensions are continually halved until it fits. (If the OpenGL version
+the implementation can fit the requested texture.  If not, both
+dimensions are continually halved until it fits.  (If the OpenGL version
 is \(<= 1.0, both maximum texture dimensions are clamped to the value
 returned by @code{glGetIntegerv} with the argument
 @code{GLU_MAX_TEXTURE_SIZE}.)
@@ -661,21 +661,21 @@ returned by @code{glGetIntegerv} with the argument
 Next, a series of mipmap levels is built by decimating a copy of
 @var{data} in half along both dimensions until size @r{1×1} is reached.
 At each level, each texel in the halved mipmap level is an average of
-the corresponding four texels in the larger mipmap level. (In the case
+the corresponding four texels in the larger mipmap level.  (In the case
 of rectangular images, the decimation will ultimately reach an
-@r{@var{N}×1} or @r{1×@var{N}} configuration. Here, two texels are
+@r{@var{N}×1} or @r{1×@var{N}} configuration.  Here, two texels are
 averaged instead.)
 
-@code{glTexImage2D} is called to load each of these mipmap levels. Level
-0 is a copy of @var{data}. The highest level is
-@r{@var{log}_2,⁡(@var{max}⁡(@var{width},@var{height}),)}. For example,
+@code{glTexImage2D} is called to load each of these mipmap levels.  Level
+0 is a copy of @var{data}.  The highest level is
+@r{@var{log}_2,⁡(@var{max}⁡(@var{width},@var{height}),)}.  For example,
 if @var{width} is 64 and @var{height} is 16 and the implementation can
 store a texture of this size, the following mipmap levels are built:
 @r{64×16}, @r{32×8}, @r{16×4}, @r{8×2}, @r{4×1}, @r{2×1}, and @r{1×1}
 These correspond to levels 0 through 6, respectively.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for @var{format} parameter. See the
+acceptable values for @var{format} parameter.  See the
 @code{glDrawPixels} reference page for a description of the acceptable
 values for @var{type} parameter.
 
@@ -719,17 +719,17 @@ Builds a subset of three-dimensional mipmap levels.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_3D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_3D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -750,17 +750,17 @@ constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @itemx @var{height}
 @itemx @var{depth}
 Specifies in pixels the width, height and depth respectively, of the
-texture image. These should be a power of 2.
+texture image.  These should be a power of 2.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of
+Specifies the format of the pixel data.  Must be one of
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of
+Specifies the data type for @var{data}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -788,36 +788,36 @@ Specifies a pointer to the image data in memory.
 
 @code{gluBuild3DMipmapLevels} builds a subset of prefiltered
 three-dimensional texture maps of decreasing resolutions called a
-mipmap. This is used for the antialiasing of texture mapped primitives.
+mipmap.  This is used for the antialiasing of texture mapped primitives.
 
 A return value of zero indicates success, otherwise a GLU error code is
 returned (see @code{gluErrorString}).
 
 A series of mipmap levels from @var{base} to @var{max} is built by
 decimating @var{data} in half along both dimensions until size @r{1×1×1}
-is reached. At each level, each texel in the halved mipmap level is an
+is reached.  At each level, each texel in the halved mipmap level is an
 average of the corresponding eight texels in the larger mipmap level.
-(If exactly one of the dimensions is 1, four texels are averaged. If
+(If exactly one of the dimensions is 1, four texels are averaged.  If
 exactly two of the dimensions are 1, two texels are averaged.)
 @code{glTexImage3D} is called to load these mipmap levels from
-@var{base} to @var{max}. If @var{max} is larger than the highest mipmap
+@var{base} to @var{max}.  If @var{max} is larger than the highest mipmap
 level for the texture of the specified size, then a GLU error code is
 returned (see @code{gluErrorString}) and nothing is loaded.
 
 For example, if @var{level} is 2 and @var{width} is 16, @var{height} is
 8 and @var{depth} is 4, the following levels are possible: @r{16×8×4},
-@r{8×4×2}, @r{4×2×1}, @r{2×1×1}, @r{1×1×1}. These correspond to levels 2
-through 6 respectively. If @var{base} is 3 and @var{max} is 5, then only
-mipmap levels @r{8×4×2}, @r{4×2×1}, and @r{2×1×1} are loaded. However,
-if @var{max} is 7, then an error is returned and nothing is loaded,
-since @var{max} is larger than the highest mipmap level which is, in
-this case, 6.
+@r{8×4×2}, @r{4×2×1}, @r{2×1×1}, @r{1×1×1}.  These correspond to levels
+2 through 6 respectively.  If @var{base} is 3 and @var{max} is 5, then
+only mipmap levels @r{8×4×2}, @r{4×2×1}, and @r{2×1×1} are loaded.
+However, if @var{max} is 7, then an error is returned and nothing is
+loaded, since @var{max} is larger than the highest mipmap level which
+is, in this case, 6.
 
 The highest mipmap level can be derived from the formula
 @r{@var{log}_2⁡(@var{max}⁡(@var{width},@var{height}@var{depth})×2^@var{level},)}.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for @var{format} parameter. See the
+acceptable values for @var{format} parameter.  See the
 @code{glDrawPixels} reference page for a description of the acceptable
 values for @var{type} parameter.
 
@@ -865,17 +865,17 @@ Builds a three-dimensional mipmap.
 
 @table @asis
 @item @var{target}
-Specifies the target texture. Must be @code{GLU_TEXTURE_3D}.
+Specifies the target texture.  Must be @code{GLU_TEXTURE_3D}.
 
 @item @var{internalFormat}
-Requests the internal storage format of the texture image. The most
+Requests the internal storage format of the texture image.  The most
 current version of the SGI implementation of GLU does not check this
 value for validity before passing it on to the underlying OpenGL
-implementation. A value that is not accepted by the OpenGL
-implementation will lead to an OpenGL error. The benefit of not checking
-this value at the GLU level is that OpenGL extensions can add new
-internal texture formats without requiring a revision of the GLU
-implementation. Older implementations of GLU check this value and raise
+implementation.  A value that is not accepted by the OpenGL
+implementation will lead to an OpenGL error.  The benefit of not
+checking this value at the GLU level is that OpenGL extensions can add
+new internal texture formats without requiring a revision of the GLU
+implementation.  Older implementations of GLU check this value and raise
 a GLU error if it is not 1, 2, 3, or 4 or one of the following symbolic
 constants: @code{GLU_ALPHA}, @code{GLU_ALPHA4}, @code{GLU_ALPHA8},
 @code{GLU_ALPHA12}, @code{GLU_ALPHA16}, @code{GLU_LUMINANCE},
@@ -899,14 +899,14 @@ Specifies in pixels the width, height and depth respectively, in pixels
 of the texture image.
 
 @item @var{format}
-Specifies the format of the pixel data. Must be one of
+Specifies the format of the pixel data.  Must be one of
 @code{GLU_COLOR_INDEX}, @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED},
 @code{GLU_GREEN}, @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB},
 @code{GLU_RGBA}, @code{GLU_BGR}, @code{GLU_BGRA}, @code{GLU_LUMINANCE},
 or @code{GLU_LUMINANCE_ALPHA}.
 
 @item @var{type}
-Specifies the data type for @var{data}. Must be one of:
+Specifies the data type for @var{data}.  Must be one of:
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -925,43 +925,43 @@ Specifies a pointer to the image data in memory.
 
 @code{gluBuild3DMipmaps} builds a series of prefiltered
 three-dimensional texture maps of decreasing resolutions called a
-mipmap. This is used for the antialiasing of texture-mapped primitives.
+mipmap.  This is used for the antialiasing of texture-mapped primitives.
 
 A return value of zero indicates success, otherwise a GLU error code is
 returned (see @code{gluErrorString}).
 
 Initially, the @var{width}, @var{height} and @var{depth} of @var{data}
-are checked to see if they are a power of 2. If not, a copy of
-@var{data} is made and scaled up or down to the nearest power of 2. (If
+are checked to see if they are a power of 2.  If not, a copy of
+@var{data} is made and scaled up or down to the nearest power of 2.  (If
 @var{width}, @var{height}, or @var{depth} is exactly between powers of
 2, then the copy of @var{data} will scale upwards.) This copy will be
-used for subsequent mipmapping operations described below. For example,
+used for subsequent mipmapping operations described below.  For example,
 if @var{width} is 57, @var{height} is 23, and @var{depth} is 24, then a
 copy of @var{data} will scale up to 64 in width, down to 16 in height,
 and up to 32 in depth before mipmapping takes place.
 
 Then, proxy textures (see @code{glTexImage3D}) are used to determine if
-the implementation can fit the requested texture. If not, all three
+the implementation can fit the requested texture.  If not, all three
 dimensions are continually halved until it fits.
 
 Next, a series of mipmap levels is built by decimating a copy of
 @var{data} in half along all three dimensions until size @r{1×1×1} is
-reached. At each level, each texel in the halved mipmap level is an
+reached.  At each level, each texel in the halved mipmap level is an
 average of the corresponding eight texels in the larger mipmap level.
-(If exactly one of the dimensions is 1, four texels are averaged. If
+(If exactly one of the dimensions is 1, four texels are averaged.  If
 exactly two of the dimensions are 1, two texels are averaged.)
 
-@code{glTexImage3D} is called to load each of these mipmap levels. Level
-0 is a copy of @var{data}. The highest level is
-@r{@var{log}_2,⁡(@var{max}⁡(@var{width},@var{height}@var{depth}),)}. For
+@code{glTexImage3D} is called to load each of these mipmap levels.  Level
+0 is a copy of @var{data}.  The highest level is
+@r{@var{log}_2,⁡(@var{max}⁡(@var{width},@var{height}@var{depth}),)}.  For
 example, if @var{width} is 64, @var{height} is 16, and @var{depth} is
 32, and the implementation can store a texture of this size, the
 following mipmap levels are built: @r{64×16×32}, @r{32×8×16},
-@r{16×4×8}, @r{8×2×4}, @r{4×1×2}, @r{2×1×1}, and @r{1×1×1}. These
+@r{16×4×8}, @r{8×2×4}, @r{4×1×2}, @r{2×1×1}, and @r{1×1×1}.  These
 correspond to levels 0 through 6, respectively.
 
 See the @code{glTexImage1D} reference page for a description of the
-acceptable values for @var{format} parameter. See the
+acceptable values for @var{format} parameter.  See the
 @code{glDrawPixels} reference page for a description of the acceptable
 values for @var{type} parameter.
 
@@ -1047,16 +1047,17 @@ Specifies the number of subdivisions along the @var{z} axis.
 
 @end table
 
-@code{gluCylinder} draws a cylinder oriented along the @var{z} axis. The
+@code{gluCylinder} draws a cylinder oriented along the @var{z} axis.  The
 base of the cylinder is placed at @var{z} = 0 and the top at
-@r{@var{z}=@var{height}}. Like a sphere, a cylinder is subdivided around
-the @var{z} axis into slices and along the @var{z} axis into stacks.
+@r{@var{z}=@var{height}}.  Like a sphere, a cylinder is subdivided
+around the @var{z} axis into slices and along the @var{z} axis into
+stacks.
 
 Note that if @var{top} is set to 0.0, this routine generates a cone.
 
 If the orientation is set to @code{GLU_OUTSIDE} (with
 @code{gluQuadricOrientation}), then any generated normals point away
-from the @var{z} axis. Otherwise, they point toward the @var{z} axis.
+from the @var{z} axis.  Otherwise, they point toward the @var{z} axis.
 
 If texturing is turned on (with @code{gluQuadricTexture}), then texture
 coordinates are generated so that @var{t} ranges linearly from 0.0 at
@@ -1093,7 +1094,7 @@ Specifies the quadrics object to be destroyed.
 @end table
 
 @code{gluDeleteQuadric} destroys the quadrics object (created with
-@code{gluNewQuadric}) and frees any memory it uses. Once
+@code{gluNewQuadric}) and frees any memory it uses.  Once
 @code{gluDeleteQuadric} has been called, @var{quad} cannot be used
 again.
 
@@ -1135,18 +1136,18 @@ disk is subdivided.
 
 @end table
 
-@code{gluDisk} renders a disk on the @var{z} = 0 plane. The disk has a
+@code{gluDisk} renders a disk on the @var{z} = 0 plane.  The disk has a
 radius of @var{outer} and contains a concentric circular hole with a
-radius of @var{inner}. If @var{inner} is 0, then no hole is generated.
+radius of @var{inner}.  If @var{inner} is 0, then no hole is generated.
 The disk is subdivided around the @var{z} axis into slices (like pizza
 slices) and also about the @var{z} axis into rings (as specified by
 @var{slices} and @var{loops}, respectively).
 
 With respect to orientation, the +@var{z} side of the disk is considered
-to be ``outside'' (see @code{gluQuadricOrientation}). This means that if
-the orientation is set to @code{GLU_OUTSIDE}, then any normals generated
-point along the +@var{z} axis. Otherwise, they point along the \-@var{z}
-axis.
+to be ``outside'' (see @code{gluQuadricOrientation}).  This means that
+if the orientation is set to @code{GLU_OUTSIDE}, then any normals
+generated point along the +@var{z} axis.  Otherwise, they point along
+the \-@var{z} axis.
 
 If texturing has been turned on (with @code{gluQuadricTexture}), texture
 coordinates are generated linearly such that where
@@ -1166,13 +1167,13 @@ Specifies a GL or GLU error code.
 @end table
 
 @code{gluErrorString} produces an error string from a GL or GLU error
-code. The string is in ISO Latin 1 format. For example,
+code.  The string is in ISO Latin 1 format.  For example,
 @code{gluErrorString}(@code{GLU_OUT_OF_MEMORY}) returns the string
 @var{out of memory}.
 
 The standard GLU error codes are @code{GLU_INVALID_ENUM},
-@code{GLU_INVALID_VALUE}, and @code{GLU_OUT_OF_MEMORY}. Certain other
-GLU functions can return specialized error codes through callbacks. See
+@code{GLU_INVALID_VALUE}, and @code{GLU_OUT_OF_MEMORY}.  Certain other
+GLU functions can return specialized error codes through callbacks.  See
 the @code{glGetError} reference page for the list of GL error codes.
 
 @code{NULL} is returned if @var{error} is not a valid GL or GLU error
@@ -1188,7 +1189,7 @@ Get a NURBS property.
 Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 
 @item @var{property}
-Specifies the property whose value is to be fetched. Valid values are
+Specifies the property whose value is to be fetched.  Valid values are
 @code{GLU_CULLING}, @code{GLU_SAMPLING_TOLERANCE},
 @code{GLU_DISPLAY_MODE}, @code{GLU_AUTO_LOAD_MATRIX},
 @code{GLU_PARAMETRIC_TOLERANCE}, @code{GLU_SAMPLING_METHOD},
@@ -1201,8 +1202,8 @@ property is written.
 @end table
 
 @code{gluGetNurbsProperty} retrieves properties stored in a NURBS
-object. These properties affect the way that NURBS curves and surfaces
-are rendered. See the @code{gluNurbsProperty} reference page for
+object.  These properties affect the way that NURBS curves and surfaces
+are rendered.  See the @code{gluNurbsProperty} reference page for
 information about what the properties are and what they do.
 
 @end deftypefun
@@ -1228,14 +1229,14 @@ The version string is of the following form:
 
 @var{version number<space>vendor-specific information}
 
-Vendor-specific information is optional. Its format and contents depend
+Vendor-specific information is optional.  Its format and contents depend
 on the implementation.
 
-The standard GLU contains a basic set of features and capabilities. If a
-company or group of companies wish to support other features, these may
-be included as extensions to the GLU. If @var{name} is
+The standard GLU contains a basic set of features and capabilities.  If
+a company or group of companies wish to support other features, these
+may be included as extensions to the GLU.  If @var{name} is
 @code{GLU_EXTENSIONS}, then @code{gluGetString} returns a
-space-separated list of names of supported GLU extensions. (Extension
+space-separated list of names of supported GLU extensions.  (Extension
 names never contain spaces.)
 
 All strings are null-terminated.
@@ -1255,7 +1256,7 @@ Get a tessellation object property.
 Specifies the tessellation object (created with @code{gluNewTess}).
 
 @item @var{which}
-Specifies the property whose value is to be fetched. Valid values are
+Specifies the property whose value is to be fetched.  Valid values are
 @code{GLU_TESS_WINDING_RULE}, @code{GLU_TESS_BOUNDARY_ONLY}, and
 @code{GLU_TESS_TOLERANCE}.
 
@@ -1266,8 +1267,8 @@ property is written.
 @end table
 
 @code{gluGetTessProperty} retrieves properties stored in a tessellation
-object. These properties affect the way that tessellation objects are
-interpreted and rendered. See the @code{gluTessProperty} reference page
+object.  These properties affect the way that tessellation objects are
+interpreted and rendered.  See the @code{gluTessProperty} reference page
 for information about the properties and what they do.
 
 @end deftypefun
@@ -1292,17 +1293,17 @@ Specifies a viewport (as from a @code{glGetIntegerv} call).
 
 @code{gluLoadSamplingMatrices} uses @var{model}, @var{perspective}, and
 @var{view} to recompute the sampling and culling matrices stored in
-@var{nurb}. The sampling matrix determines how finely a NURBS curve or
+@var{nurb}.  The sampling matrix determines how finely a NURBS curve or
 surface must be tessellated to satisfy the sampling tolerance (as
-determined by the @code{GLU_SAMPLING_TOLERANCE} property). The culling
+determined by the @code{GLU_SAMPLING_TOLERANCE} property).  The culling
 matrix is used in deciding if a NURBS curve or surface should be culled
 before rendering (when the @code{GLU_CULLING} property is turned on).
 
 @code{gluLoadSamplingMatrices} is necessary only if the
 @code{GLU_AUTO_LOAD_MATRIX} property is turned off (see
-@code{gluNurbsProperty}). Although it can be convenient to leave the
+@code{gluNurbsProperty}).  Although it can be convenient to leave the
 @code{GLU_AUTO_LOAD_MATRIX} property turned on, there can be a
-performance penalty for doing so. (A round trip to the GL server is
+performance penalty for doing so.  (A round trip to the GL server is
 needed to fetch the current values of the modelview matrix, projection
 matrix, and viewport.)
 
@@ -1334,11 +1335,11 @@ reference point indicating the center of the scene, and an @var{UP}
 vector.
 
 The matrix maps the reference point to the negative @var{z} axis and the
-eye point to the origin. When a typical projection matrix is used, the
+eye point to the origin.  When a typical projection matrix is used, the
 center of the scene therefore maps to the center of the viewport.
 Similarly, the direction described by the @var{UP} vector projected onto
 the viewing plane is mapped to the positive @var{y} axis so that it
-points upward in the viewport. The @var{UP} vector must not be parallel
+points upward in the viewport.  The @var{UP} vector must not be parallel
 to the line of sight from the eye point to the reference point.
 
 Let
@@ -1379,9 +1380,9 @@ glTranslated(-eyex, -eyey, -eyez);
 Create a NURBS object.
 
 @code{gluNewNurbsRenderer} creates and returns a pointer to a new NURBS
-object. This object must be referred to when calling NURBS rendering and
-control functions. A return value of 0 means that there is not enough
-memory to allocate the object.
+object.  This object must be referred to when calling NURBS rendering
+and control functions.  A return value of 0 means that there is not
+enough memory to allocate the object.
 
 @end deftypefun
 
@@ -1389,8 +1390,8 @@ memory to allocate the object.
 Create a quadrics object.
 
 @code{gluNewQuadric} creates and returns a pointer to a new quadrics
-object. This object must be referred to when calling quadrics rendering
-and control functions. A return value of 0 means that there is not
+object.  This object must be referred to when calling quadrics rendering
+and control functions.  A return value of 0 means that there is not
 enough memory to allocate the object.
 
 @end deftypefun
@@ -1399,8 +1400,8 @@ enough memory to allocate the object.
 Create a tessellation object.
 
 @code{gluNewTess} creates and returns a pointer to a new tessellation
-object. This object must be referred to when calling tessellation
-functions. A return value of 0 means that there is not enough memory to
+object.  This object must be referred to when calling tessellation
+functions.  A return value of 0 means that there is not enough memory to
 allocate the object.
 
 @end deftypefun
@@ -1413,22 +1414,22 @@ Mark the beginning of another contour.
 Specifies the tessellation object (created with @code{gluNewTess}).
 
 @item @var{type}
-Specifies the type of the contour being defined. Valid values are
+Specifies the type of the contour being defined.  Valid values are
 @code{GLU_EXTERIOR}, @code{GLU_INTERIOR}, @code{GLU_UNKNOWN},
 @code{GLU_CCW}, and @code{GLU_CW}.
 
 @end table
 
 @code{gluNextContour} is used in describing polygons with multiple
-contours. After the first contour has been described through a series of
-@code{gluTessVertex} calls, a @code{gluNextContour} call indicates that
-the previous contour is complete and that the next contour is about to
-begin. Another series of @code{gluTessVertex} calls is then used to
-describe the new contour. This process can be repeated until all
+contours.  After the first contour has been described through a series
+of @code{gluTessVertex} calls, a @code{gluNextContour} call indicates
+that the previous contour is complete and that the next contour is about
+to begin.  Another series of @code{gluTessVertex} calls is then used to
+describe the new contour.  This process can be repeated until all
 contours have been described.
 
-@var{type} defines what type of contour follows. The legal contour types
-are as follows:
+@var{type} defines what type of contour follows.  The legal contour
+types are as follows:
 
 @table @asis
 @item @code{GLU_EXTERIOR}
@@ -1445,9 +1446,9 @@ interior or exterior.
 @item @code{GLU_CCW}, 
 @item @code{GLU_CW}
 The first @code{GLU_CCW} or @code{GLU_CW} contour defined is considered
-to be exterior. All other contours are considered to be exterior if they
-are oriented in the same direction (clockwise or counterclockwise) as
-the first contour, and interior if they are not.
+to be exterior.  All other contours are considered to be exterior if
+they are oriented in the same direction (clockwise or counterclockwise)
+as the first contour, and interior if they are not.
 
 @end table
 
@@ -1460,12 +1461,12 @@ Note that there is no real difference between the @code{GLU_CCW} and
 @code{GLU_CW} contour types.
 
 Before the first contour is described, @code{gluNextContour} can be
-called to define the type of the first contour. If @code{gluNextContour}
-is not called before the first contour, then the first contour is marked
-@code{GLU_EXTERIOR}.
+called to define the type of the first contour.  If
+@code{gluNextContour} is not called before the first contour, then the
+first contour is marked @code{GLU_EXTERIOR}.
 
 This command is obsolete and is provided for backward compatibility
-only. Calls to @code{gluNextContour} are mapped to
+only.  Calls to @code{gluNextContour} are mapped to
 @code{gluTessEndContour} followed by @code{gluTessBeginContour}.
 
 @end deftypefun
@@ -1483,7 +1484,7 @@ Specifies a pointer to the user's data.
 @end table
 
 @code{gluNurbsCallbackDataEXT} is used to pass a pointer to the
-application's data to NURBS tessellator. A copy of this pointer will be
+application's data to NURBS tessellator.  A copy of this pointer will be
 passed by the tessellator in the NURBS callback functions (set by
 @code{gluNurbsCallback}).
 
@@ -1502,7 +1503,7 @@ Specifies a pointer to the user's data.
 @end table
 
 @code{gluNurbsCallbackData} is used to pass a pointer to the
-application's data to NURBS tessellator. A copy of this pointer will be
+application's data to NURBS tessellator.  A copy of this pointer will be
 passed by the tessellator in the NURBS callback functions (set by
 @code{gluNurbsCallback}).
 
@@ -1516,7 +1517,7 @@ Define a callback for a NURBS object.
 Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 
 @item @var{which}
-Specifies the callback being defined. Valid values are
+Specifies the callback being defined.  Valid values are
 @code{GLU_NURBS_BEGIN}, @code{GLU_NURBS_VERTEX},
 @code{GLU_NURBS_NORMAL}, @code{GLU_NURBS_COLOR},
 @code{GLU_NURBS_TEXTURE_COORD}, @code{GLU_NURBS_END},
@@ -1531,21 +1532,21 @@ Specifies the function that the callback calls.
 @end table
 
 @code{gluNurbsCallback} is used to define a callback to be used by a
-NURBS object. If the specified callback is already defined, then it is
-replaced. If @var{CallBackFunc} is NULL, then this callback will not get
-invoked and the related data, if any, will be lost.
+NURBS object.  If the specified callback is already defined, then it is
+replaced.  If @var{CallBackFunc} is NULL, then this callback will not
+get invoked and the related data, if any, will be lost.
 
 Except the error callback, these callbacks are used by NURBS tessellator
 (when @code{GLU_NURBS_MODE} is set to be @code{GLU_NURBS_TESSELLATOR})
 to return back the OpenGL polygon primitives resulting from the
-tessellation. Note that there are two versions of each callback: one
-with a user data pointer and one without. If both versions for a
+tessellation.  Note that there are two versions of each callback: one
+with a user data pointer and one without.  If both versions for a
 particular callback are specified then the callback with the user data
-pointer will be used. Note that ``userData'' is a copy of the pointer
+pointer will be used.  Note that ``userData'' is a copy of the pointer
 that was specified at the last call to @code{gluNurbsCallbackData}.
 
 The error callback function is effective no matter which value that
-@code{GLU_NURBS_MODE} is set to. All other callback functions are
+@code{GLU_NURBS_MODE} is set to.  All other callback functions are
 effective only when @code{GLU_NURBS_MODE} is set to
 @code{GLU_NURBS_TESSELLATOR}.
 
@@ -1555,130 +1556,130 @@ The legal callbacks are as follows:
 @item @code{GLU_NURBS_BEGIN}
 
 
-The begin callback indicates the start of a primitive. The function
+The begin callback indicates the start of a primitive.  The function
 takes a single argument of type GLenum, which can be one of
 @code{GLU_LINES}, @code{GLU_LINE_STRIP}, @code{GLU_TRIANGLE_FAN},
 @code{GLU_TRIANGLE_STRIP}, @code{GLU_TRIANGLES}, or
-@code{GLU_QUAD_STRIP}. The default begin callback function is NULL. The
+@code{GLU_QUAD_STRIP}.  The default begin callback function is NULL.  The
 function prototype for this callback looks like:
 
 @item @code{GLU_NURBS_BEGIN_DATA}
 
 
 The same as the @code{GLU_NURBS_BEGIN} callback except that it takes an
-additional pointer argument. This pointer is a copy of the pointer that
-was specified at the last call to @code{gluNurbsCallbackData}. The
-default callback function is NULL. The function prototype for this
+additional pointer argument.  This pointer is a copy of the pointer that
+was specified at the last call to @code{gluNurbsCallbackData}.  The
+default callback function is NULL.  The function prototype for this
 callback function looks like:
 
 @item @code{GLU_NURBS_VERTEX}
 
 
-The vertex callback indicates a vertex of the primitive. The coordinates
-of the vertex are stored in the parameter ``vertex''. All the generated
-vertices have dimension 3; that is, homogeneous coordinates have been
-transformed into affine coordinates. The default vertex callback
-function is NULL. The function prototype for this callback function
-looks like:
+The vertex callback indicates a vertex of the primitive.  The
+coordinates of the vertex are stored in the parameter ``vertex''.  All
+the generated vertices have dimension 3; that is, homogeneous
+coordinates have been transformed into affine coordinates.  The default
+vertex callback function is NULL.  The function prototype for this
+callback function looks like:
 
 @item @code{GLU_NURBS_VERTEX_DATA}
 
 
 This is the same as the @code{GLU_NURBS_VERTEX} callback, except that it
-takes an additional pointer argument. This pointer is a copy of the
+takes an additional pointer argument.  This pointer is a copy of the
 pointer that was specified at the last call to
-@code{gluNurbsCallbackData}. The default callback function is NULL. The
+@code{gluNurbsCallbackData}.  The default callback function is NULL.  The
 function prototype for this callback function looks like:
 
 @item @code{GLU_NURBS_NORMAL}
 
 
-The normal callback is invoked as the vertex normal is generated. The
+The normal callback is invoked as the vertex normal is generated.  The
 components of the normal are stored in the parameter ``normal.'' In the
 case of a NURBS curve, the callback function is effective only when the
-user provides a normal map (@code{GLU_MAP1_NORMAL}). In the case of a
+user provides a normal map (@code{GLU_MAP1_NORMAL}).  In the case of a
 NURBS surface, if a normal map (@code{GLU_MAP2_NORMAL}) is provided,
-then the generated normal is computed from the normal map. If a normal
+then the generated normal is computed from the normal map.  If a normal
 map is not provided, then a surface normal is computed in a manner
 similar to that described for evaluators when @code{GLU_AUTO_NORMAL} is
-enabled. The default normal callback function is NULL. The function
+enabled.  The default normal callback function is NULL.  The function
 prototype for this callback function looks like:
 
 @item @code{GLU_NURBS_NORMAL_DATA}
 
 
 The same as the @code{GLU_NURBS_NORMAL} callback except that it takes an
-additional pointer argument. This pointer is a copy of the pointer that
-was specified at the last call to @code{gluNurbsCallbackData}. The
-default callback function is NULL. The function prototype for this
+additional pointer argument.  This pointer is a copy of the pointer that
+was specified at the last call to @code{gluNurbsCallbackData}.  The
+default callback function is NULL.  The function prototype for this
 callback function looks like:
 
 @item @code{GLU_NURBS_COLOR}
 
 
-The color callback is invoked as the color of a vertex is generated. The
+The color callback is invoked as the color of a vertex is generated.  The
 components of the color are stored in the parameter ``color.'' This
 callback is effective only when the user provides a color map
-(@code{GLU_MAP1_COLOR_4} or @code{GLU_MAP2_COLOR_4}). ``color'' contains
-four components: R, G, B, A. The default color callback function is
-NULL. The prototype for this callback function looks like:
+(@code{GLU_MAP1_COLOR_4} or @code{GLU_MAP2_COLOR_4}).  ``color''
+contains four components: R, G, B, A.  The default color callback
+function is NULL.  The prototype for this callback function looks like:
 
 @item @code{GLU_NURBS_COLOR_DATA}
 
 
 The same as the @code{GLU_NURBS_COLOR} callback except that it takes an
-additional pointer argument. This pointer is a copy of the pointer that
-was specified at the last call to @code{gluNurbsCallbackData}. The
-default callback function is NULL. The function prototype for this
+additional pointer argument.  This pointer is a copy of the pointer that
+was specified at the last call to @code{gluNurbsCallbackData}.  The
+default callback function is NULL.  The function prototype for this
 callback function looks like:
 
 @item @code{GLU_NURBS_TEXTURE_COORD}
 
 
 The texture callback is invoked as the texture coordinates of a vertex
-are generated. These coordinates are stored in the parameter
+are generated.  These coordinates are stored in the parameter
 ``texCoord.'' The number of texture coordinates can be 1, 2, 3, or 4
 depending on which type of texture map is specified
 (@code{GLU_MAP1_TEXTURE_COORD_1}, @code{GLU_MAP1_TEXTURE_COORD_2},
 @code{GLU_MAP1_TEXTURE_COORD_3}, @code{GLU_MAP1_TEXTURE_COORD_4},
 @code{GLU_MAP2_TEXTURE_COORD_1}, @code{GLU_MAP2_TEXTURE_COORD_2},
-@code{GLU_MAP2_TEXTURE_COORD_3}, @code{GLU_MAP2_TEXTURE_COORD_4}). If no
-texture map is specified, this callback function will not be called. The
-default texture callback function is NULL. The function prototype for
-this callback function looks like:
+@code{GLU_MAP2_TEXTURE_COORD_3}, @code{GLU_MAP2_TEXTURE_COORD_4}).  If
+no texture map is specified, this callback function will not be called.
+The default texture callback function is NULL.  The function prototype
+for this callback function looks like:
 
 @item @code{GLU_NURBS_TEXTURE_COORD_DATA}
 
 
 This is the same as the @code{GLU_NURBS_TEXTURE_COORD} callback, except
-that it takes an additional pointer argument. This pointer is a copy of
+that it takes an additional pointer argument.  This pointer is a copy of
 the pointer that was specified at the last call to
-@code{gluNurbsCallbackData}. The default callback function is NULL. The
+@code{gluNurbsCallbackData}.  The default callback function is NULL.  The
 function prototype for this callback function looks like:
 
 @item @code{GLU_NURBS_END}
 
 
-The end callback is invoked at the end of a primitive. The default end
-callback function is NULL. The function prototype for this callback
+The end callback is invoked at the end of a primitive.  The default end
+callback function is NULL.  The function prototype for this callback
 function looks like:
 
 @item @code{GLU_NURBS_END_DATA}
 
 
 This is the same as the @code{GLU_NURBS_END} callback, except that it
-takes an additional pointer argument. This pointer is a copy of the
+takes an additional pointer argument.  This pointer is a copy of the
 pointer that was specified at the last call to
-@code{gluNurbsCallbackData}. The default callback function is NULL. The
+@code{gluNurbsCallbackData}.  The default callback function is NULL.  The
 function prototype for this callback function looks like:
 
 @item @code{GLU_NURBS_ERROR}
 
 
-The error function is called when an error is encountered. Its single
+The error function is called when an error is encountered.  Its single
 argument is of type GLenum, and it indicates the specific error that
-occurred. There are 37 errors unique to NURBS, named
-@code{GLU_NURBS_ERROR1} through @code{GLU_NURBS_ERROR37}. Character
+occurred.  There are 37 errors unique to NURBS, named
+@code{GLU_NURBS_ERROR1} through @code{GLU_NURBS_ERROR37}.  Character
 strings describing these errors can be retrieved with
 @code{gluErrorString}.
 
@@ -1754,8 +1755,8 @@ Define the shape of a NURBS curve.
 Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 
 @item @var{knotCount}
-Specifies the number of knots in @var{knots}. @var{knotCount} equals the
-number of control points plus the order.
+Specifies the number of knots in @var{knots}.  @var{knotCount} equals
+the number of control points plus the order.
 
 @item @var{knots}
 Specifies an array of @var{knotCount} nondecreasing knot values.
@@ -1765,18 +1766,18 @@ Specifies the offset (as a number of single-precision floating-point
 values) between successive curve control points.
 
 @item @var{control}
-Specifies a pointer to an array of control points. The coordinates must
+Specifies a pointer to an array of control points.  The coordinates must
 agree with @var{type}, specified below.
 
 @item @var{order}
-Specifies the order of the NURBS curve. @var{order} equals degree + 1,
+Specifies the order of the NURBS curve.  @var{order} equals degree + 1,
 hence a cubic curve has an order of 4.
 
 @item @var{type}
-Specifies the type of the curve. If this curve is defined within a
+Specifies the type of the curve.  If this curve is defined within a
 @code{gluBeginCurve}/@code{gluEndCurve} pair, then the type can be any
 of the valid one-dimensional evaluator types (such as
-@code{GLU_MAP1_VERTEX_3} or @code{GLU_MAP1_COLOR_4}). Between a
+@code{GLU_MAP1_VERTEX_3} or @code{GLU_MAP1_COLOR_4}).  Between a
 @code{gluBeginTrim}/@code{gluEndTrim} pair, the only valid types are
 @code{GLU_MAP1_TRIM_2} and @code{GLU_MAP1_TRIM_3}.
 
@@ -1786,21 +1787,22 @@ Use @code{gluNurbsCurve} to describe a NURBS curve.
 
 When @code{gluNurbsCurve} appears between a
 @code{gluBeginCurve}/@code{gluEndCurve} pair, it is used to describe a
-curve to be rendered. Positional, texture, and color coordinates are
+curve to be rendered.  Positional, texture, and color coordinates are
 associated by presenting each as a separate @code{gluNurbsCurve} between
-a @code{gluBeginCurve}/@code{gluEndCurve} pair. No more than one call to
-@code{gluNurbsCurve} for each of color, position, and texture data can
-be made within a single @code{gluBeginCurve}/@code{gluEndCurve} pair.
-Exactly one call must be made to describe the position of the curve (a
-@var{type} of @code{GLU_MAP1_VERTEX_3} or @code{GLU_MAP1_VERTEX_4}).
+a @code{gluBeginCurve}/@code{gluEndCurve} pair.  No more than one call
+to @code{gluNurbsCurve} for each of color, position, and texture data
+can be made within a single @code{gluBeginCurve}/@code{gluEndCurve}
+pair.  Exactly one call must be made to describe the position of the
+curve (a @var{type} of @code{GLU_MAP1_VERTEX_3} or
+@code{GLU_MAP1_VERTEX_4}).
 
 When @code{gluNurbsCurve} appears between a
 @code{gluBeginTrim}/@code{gluEndTrim} pair, it is used to describe a
-trimming curve on a NURBS surface. If @var{type} is
+trimming curve on a NURBS surface.  If @var{type} is
 @code{GLU_MAP1_TRIM_2}, then it describes a curve in two-dimensional
-(@var{u} and @var{v}) parameter space. If it is @code{GLU_MAP1_TRIM_3},
+(@var{u} and @var{v}) parameter space.  If it is @code{GLU_MAP1_TRIM_3},
 then it describes a curve in two-dimensional homogeneous (@var{u},
-@var{v}, and @var{w}) parameter space. See the @code{gluBeginTrim}
+@var{v}, and @var{w}) parameter space.  See the @code{gluBeginTrim}
 reference page for more discussion about trimming curves.
 
 @end deftypefun
@@ -1813,15 +1815,15 @@ Set a NURBS property.
 Specifies the NURBS object (created with @code{gluNewNurbsRenderer}).
 
 @item @var{property}
-Specifies the property to be set. Valid values are
+Specifies the property to be set.  Valid values are
 @code{GLU_SAMPLING_TOLERANCE}, @code{GLU_DISPLAY_MODE},
 @code{GLU_CULLING}, @code{GLU_AUTO_LOAD_MATRIX},
 @code{GLU_PARAMETRIC_TOLERANCE}, @code{GLU_SAMPLING_METHOD},
 @code{GLU_U_STEP}, @code{GLU_V_STEP}, or @code{GLU_NURBS_MODE}.
 
 @item @var{value}
-Specifies the value of the indicated property. It may be a numeric value
-or one of @code{GLU_OUTLINE_POLYGON}, @code{GLU_FILL},
+Specifies the value of the indicated property.  It may be a numeric
+value or one of @code{GLU_OUTLINE_POLYGON}, @code{GLU_FILL},
 @code{GLU_OUTLINE_PATCH}, @code{GLU_TRUE}, @code{GLU_FALSE},
 @code{GLU_PATH_LENGTH}, @code{GLU_PARAMETRIC_ERROR},
 @code{GLU_DOMAIN_DISTANCE}, @code{GLU_NURBS_RENDERER}, or
@@ -1830,26 +1832,26 @@ or one of @code{GLU_OUTLINE_POLYGON}, @code{GLU_FILL},
 @end table
 
 @code{gluNurbsProperty} is used to control properties stored in a NURBS
-object. These properties affect the way that a NURBS curve is rendered.
+object.  These properties affect the way that a NURBS curve is rendered.
 The accepted values for @var{property} are as follows:
 
 @table @asis
 @item @code{GLU_NURBS_MODE}
 @var{value} should be set to be either @code{GLU_NURBS_RENDERER} or
-@code{GLU_NURBS_TESSELLATOR}. When set to @code{GLU_NURBS_RENDERER},
+@code{GLU_NURBS_TESSELLATOR}.  When set to @code{GLU_NURBS_RENDERER},
 NURBS objects are tessellated into OpenGL primitives and sent to the
-pipeline for rendering. When set to @code{GLU_NURBS_TESSELLATOR}, NURBS
+pipeline for rendering.  When set to @code{GLU_NURBS_TESSELLATOR}, NURBS
 objects are tessellated into OpenGL primitives but the vertices,
 normals, colors, and/or textures are retrieved back through a callback
-interface (see @code{gluNurbsCallback}). This allows the user to cache
-the tessellated results for further processing. The initial value is
+interface (see @code{gluNurbsCallback}).  This allows the user to cache
+the tessellated results for further processing.  The initial value is
 @code{GLU_NURBS_RENDERER}.
 
 @item @code{GLU_SAMPLING_METHOD}
-Specifies how a NURBS surface should be tessellated. @var{value} may be
+Specifies how a NURBS surface should be tessellated.  @var{value} may be
 one of @code{GLU_PATH_LENGTH}, @code{GLU_PARAMETRIC_ERROR},
 @code{GLU_DOMAIN_DISTANCE}, @code{GLU_OBJECT_PATH_LENGTH}, or
-@code{GLU_OBJECT_PARAMETRIC_ERROR}. When set to @code{GLU_PATH_LENGTH},
+@code{GLU_OBJECT_PARAMETRIC_ERROR}.  When set to @code{GLU_PATH_LENGTH},
 the surface is rendered so that the maximum length, in pixels, of the
 edges of the tessellation polygons is no greater than what is specified
 by @code{GLU_SAMPLING_TOLERANCE}.
@@ -1882,44 +1884,44 @@ The initial value of @code{GLU_SAMPLING_METHOD} is
 @item @code{GLU_SAMPLING_TOLERANCE}
 Specifies the maximum length, in pixels or in object space length unit,
 to use when the sampling method is set to @code{GLU_PATH_LENGTH} or
-@code{GLU_OBJECT_PATH_LENGTH}. The NURBS code is conservative when
+@code{GLU_OBJECT_PATH_LENGTH}.  The NURBS code is conservative when
 rendering a curve or surface, so the actual length can be somewhat
-shorter. The initial value is 50.0 pixels.
+shorter.  The initial value is 50.0 pixels.
 
 @item @code{GLU_PARAMETRIC_TOLERANCE}
 Specifies the maximum distance, in pixels or in object space length
 unit, to use when the sampling method is @code{GLU_PARAMETRIC_ERROR} or
-@code{GLU_OBJECT_PARAMETRIC_ERROR}. The initial value is 0.5.
+@code{GLU_OBJECT_PARAMETRIC_ERROR}.  The initial value is 0.5.
 
 @item @code{GLU_U_STEP}
 Specifies the number of sample points per unit length taken along the
-@var{u} axis in parametric coordinates. It is needed when
-@code{GLU_SAMPLING_METHOD} is set to @code{GLU_DOMAIN_DISTANCE}. The
+@var{u} axis in parametric coordinates.  It is needed when
+@code{GLU_SAMPLING_METHOD} is set to @code{GLU_DOMAIN_DISTANCE}.  The
 initial value is 100.
 
 @item @code{GLU_V_STEP}
 Specifies the number of sample points per unit length taken along the
-@var{v} axis in parametric coordinate. It is needed when
-@code{GLU_SAMPLING_METHOD} is set to @code{GLU_DOMAIN_DISTANCE}. The
+@var{v} axis in parametric coordinate.  It is needed when
+@code{GLU_SAMPLING_METHOD} is set to @code{GLU_DOMAIN_DISTANCE}.  The
 initial value is 100.
 
 @item @code{GLU_DISPLAY_MODE}
 @var{value} can be set to @code{GLU_OUTLINE_POLYGON}, @code{GLU_FILL},
-or @code{GLU_OUTLINE_PATCH}. When @code{GLU_NURBS_MODE} is set to be
+or @code{GLU_OUTLINE_PATCH}.  When @code{GLU_NURBS_MODE} is set to be
 @code{GLU_NURBS_RENDERER}, @var{value} defines how a NURBS surface
-should be rendered. When @var{value} is set to @code{GLU_FILL}, the
-surface is rendered as a set of polygons. When @var{value} is set to
+should be rendered.  When @var{value} is set to @code{GLU_FILL}, the
+surface is rendered as a set of polygons.  When @var{value} is set to
 @code{GLU_OUTLINE_POLYGON}, the NURBS library draws only the outlines of
-the polygons created by tessellation. When @var{value} is set to
+the polygons created by tessellation.  When @var{value} is set to
 @code{GLU_OUTLINE_PATCH} just the outlines of patches and trim curves
 defined by the user are drawn.
 
 When @code{GLU_NURBS_MODE} is set to be @code{GLU_NURBS_TESSELLATOR},
-@var{value} defines how a NURBS surface should be tessellated. When
+@var{value} defines how a NURBS surface should be tessellated.  When
 @code{GLU_DISPLAY_MODE} is set to @code{GLU_FILL} or
 @code{GLU_OUTLINE_POLYGON}, the NURBS surface is tessellated into OpenGL
 triangle primitives that can be retrieved back through callback
-functions. If @code{GLU_DISPLAY_MODE} is set to
+functions.  If @code{GLU_DISPLAY_MODE} is set to
 @code{GLU_OUTLINE_PATCH}, only the outlines of the patches and trim
 curves are generated as a sequence of line strips that can be retrieved
 back through callback functions.
@@ -1929,25 +1931,25 @@ The initial value is @code{GLU_FILL}.
 @item @code{GLU_CULLING}
 @var{value} is a boolean value that, when set to @code{GLU_TRUE},
 indicates that a NURBS curve should be discarded prior to tessellation
-if its control points lie outside the current viewport. The initial
+if its control points lie outside the current viewport.  The initial
 value is @code{GLU_FALSE}.
 
 @item @code{GLU_AUTO_LOAD_MATRIX}
-@var{value} is a boolean value. When set to @code{GLU_TRUE}, the NURBS
+@var{value} is a boolean value.  When set to @code{GLU_TRUE}, the NURBS
 code downloads the projection matrix, the modelview matrix, and the
 viewport from the GL server to compute sampling and culling matrices for
-each NURBS curve that is rendered. Sampling and culling matrices are
+each NURBS curve that is rendered.  Sampling and culling matrices are
 required to determine the tessellation of a NURBS surface into line
 segments or polygons and to cull a NURBS surface if it lies outside the
 viewport.
 
 If this mode is set to @code{GLU_FALSE}, then the program needs to
 provide a projection matrix, a modelview matrix, and a viewport for the
-NURBS renderer to use to construct sampling and culling matrices. This
-can be done with the @code{gluLoadSamplingMatrices} function. This mode
-is initially set to @code{GLU_TRUE}. Changing it from @code{GLU_TRUE} to
-@code{GLU_FALSE} does not affect the sampling and culling matrices until
-@code{gluLoadSamplingMatrices} is called.
+NURBS renderer to use to construct sampling and culling matrices.  This
+can be done with the @code{gluLoadSamplingMatrices} function.  This mode
+is initially set to @code{GLU_TRUE}.  Changing it from @code{GLU_TRUE}
+to @code{GLU_FALSE} does not affect the sampling and culling matrices
+until @code{gluLoadSamplingMatrices} is called.
 
 @end table
 
@@ -1985,22 +1987,22 @@ successive control points in the parametric @var{v} direction in
 @var{control}.
 
 @item @var{control}
-Specifies an array containing control points for the NURBS surface. The
+Specifies an array containing control points for the NURBS surface.  The
 offsets between successive control points in the parametric @var{u} and
 @var{v} directions are given by @var{sStride} and @var{tStride}.
 
 @item @var{sOrder}
 Specifies the order of the NURBS surface in the parametric @var{u}
-direction. The order is one more than the degree, hence a surface that
+direction.  The order is one more than the degree, hence a surface that
 is cubic in @var{u} has a @var{u} order of 4.
 
 @item @var{tOrder}
 Specifies the order of the NURBS surface in the parametric @var{v}
-direction. The order is one more than the degree, hence a surface that
+direction.  The order is one more than the degree, hence a surface that
 is cubic in @var{v} has a @var{v} order of 4.
 
 @item @var{type}
-Specifies type of the surface. @var{type} can be any of the valid
+Specifies type of the surface.  @var{type} can be any of the valid
 two-dimensional evaluator types (such as @code{GLU_MAP2_VERTEX_3} or
 @code{GLU_MAP2_COLOR_4}).
 
@@ -2008,17 +2010,17 @@ two-dimensional evaluator types (such as @code{GLU_MAP2_VERTEX_3} or
 
 Use @code{gluNurbsSurface} within a NURBS (Non-Uniform Rational
 B-Spline) surface definition to describe the shape of a NURBS surface
-(before any trimming). To mark the beginning of a NURBS surface
-definition, use the @code{gluBeginSurface} command. To mark the end of a
-NURBS surface definition, use the @code{gluEndSurface} command. Call
+(before any trimming).  To mark the beginning of a NURBS surface
+definition, use the @code{gluBeginSurface} command.  To mark the end of
+a NURBS surface definition, use the @code{gluEndSurface} command.  Call
 @code{gluNurbsSurface} within a NURBS surface definition only.
 
 Positional, texture, and color coordinates are associated with a surface
 by presenting each as a separate @code{gluNurbsSurface} between a
-@code{gluBeginSurface}/@code{gluEndSurface} pair. No more than one call
+@code{gluBeginSurface}/@code{gluEndSurface} pair.  No more than one call
 to @code{gluNurbsSurface} for each of color, position, and texture data
 can be made within a single @code{gluBeginSurface}/@code{gluEndSurface}
-pair. Exactly one call must be made to describe the position of the
+pair.  Exactly one call must be made to describe the position of the
 surface (a @var{type} of @code{GLU_MAP2_VERTEX_3} or
 @code{GLU_MAP2_VERTEX_4}).
 
@@ -2091,16 +2093,16 @@ the disk from @var{start} through @var{start} + @var{sweep} is included
 along the \-@var{x} axis).
 
 The partial disk has a radius of @var{outer} and contains a concentric
-circular hole with a radius of @var{inner}. If @var{inner} is 0, then no
-hole is generated. The partial disk is subdivided around the @var{z}
+circular hole with a radius of @var{inner}.  If @var{inner} is 0, then
+no hole is generated.  The partial disk is subdivided around the @var{z}
 axis into slices (like pizza slices) and also about the @var{z} axis
 into rings (as specified by @var{slices} and @var{loops}, respectively).
 
 With respect to orientation, the +@var{z} side of the partial disk is
-considered to be outside (see @code{gluQuadricOrientation}). This means
+considered to be outside (see @code{gluQuadricOrientation}).  This means
 that if the orientation is set to @code{GLU_OUTSIDE}, then any normals
-generated point along the +@var{z} axis. Otherwise, they point along the
-\-@var{z} axis.
+generated point along the +@var{z} axis.  Otherwise, they point along
+the \-@var{z} axis.
 
 If texturing is turned on (with @code{gluQuadricTexture}), texture
 coordinates are generated linearly such that where
@@ -2119,7 +2121,7 @@ Specifies the field of view angle, in degrees, in the @var{y} direction.
 
 @item @var{aspect}
 Specifies the aspect ratio that determines the field of view in the
-@var{x} direction. The aspect ratio is the ratio of @var{x} (width) to
+@var{x} direction.  The aspect ratio is the ratio of @var{x} (width) to
 @var{y} (height).
 
 @item @var{zNear}
@@ -2133,17 +2135,18 @@ positive).
 @end table
 
 @code{gluPerspective} specifies a viewing frustum into the world
-coordinate system. In general, the aspect ratio in @code{gluPerspective}
-should match the aspect ratio of the associated viewport. For example,
-@r{@var{aspect}=2.0} means the viewer's angle of view is twice as wide
-in @var{x} as it is in @var{y}. If the viewport is twice as wide as it
-is tall, it displays the image without distortion.
+coordinate system.  In general, the aspect ratio in
+@code{gluPerspective} should match the aspect ratio of the associated
+viewport.  For example, @r{@var{aspect}=2.0} means the viewer's angle of
+view is twice as wide in @var{x} as it is in @var{y}.  If the viewport
+is twice as wide as it is tall, it displays the image without
+distortion.
 
 The matrix generated by @code{gluPerspective} is multipled by the
 current matrix, just as if @code{glMultMatrix} were called with the
-generated matrix. To load the perspective matrix onto the current matrix
-stack instead, precede the call to @code{gluPerspective} with a call to
-@code{glLoadIdentity}.
+generated matrix.  To load the perspective matrix onto the current
+matrix stack instead, precede the call to @code{gluPerspective} with a
+call to @code{glLoadIdentity}.
 
 Given @var{f} defined as follows:
 
@@ -2174,23 +2177,23 @@ Specifies the current viewport (as from a @code{glGetIntegerv} call).
 @end table
 
 @code{gluPickMatrix} creates a projection matrix that can be used to
-restrict drawing to a small region of the viewport. This is typically
-useful to determine what objects are being drawn near the cursor. Use
+restrict drawing to a small region of the viewport.  This is typically
+useful to determine what objects are being drawn near the cursor.  Use
 @code{gluPickMatrix} to restrict drawing to a small region around the
-cursor. Then, enter selection mode (with @code{glRenderMode}) and
-rerender the scene. All primitives that would have been drawn near the
+cursor.  Then, enter selection mode (with @code{glRenderMode}) and
+rerender the scene.  All primitives that would have been drawn near the
 cursor are identified and stored in the selection buffer.
 
 The matrix created by @code{gluPickMatrix} is multiplied by the current
 matrix just as if @code{glMultMatrix} is called with the generated
-matrix. To effectively use the generated pick matrix for picking, first
+matrix.  To effectively use the generated pick matrix for picking, first
 call @code{glLoadIdentity} to load an identity matrix onto the
-perspective matrix stack. Then call @code{gluPickMatrix}, and, finally,
+perspective matrix stack.  Then call @code{gluPickMatrix}, and, finally,
 call a command (such as @code{gluPerspective}) to multiply the
 perspective matrix by the pick matrix.
 
 When using @code{gluPickMatrix} to pick NURBS, be careful to turn off
-the NURBS property @code{GLU_AUTO_LOAD_MATRIX}. If
+the NURBS property @code{GLU_AUTO_LOAD_MATRIX}.  If
 @code{GLU_AUTO_LOAD_MATRIX} is not turned off, then any NURBS surface
 rendered is subdivided differently with the pick matrix than the way it
 was subdivided without the pick matrix.
@@ -2225,14 +2228,14 @@ Return the computed window coordinates.
 @end table
 
 @code{gluProject} transforms the specified object coordinates into
-window coordinates using @var{model}, @var{proj}, and @var{view}. The
-result is stored in @var{winX}, @var{winY}, and @var{winZ}. A return
+window coordinates using @var{model}, @var{proj}, and @var{view}.  The
+result is stored in @var{winX}, @var{winY}, and @var{winZ}.  A return
 value of @code{GLU_TRUE} indicates success, a return value of
 @code{GLU_FALSE} indicates failure.
 
 To compute the coordinates, let
 @r{@var{v}=(@var{objX},@var{objY}@var{objZ}1.0)} represented as a matrix
-with 4 rows and 1 column. Then @code{gluProject} computes @r{@var{v}^″}
+with 4 rows and 1 column.  Then @code{gluProject} computes @r{@var{v}^″}
 as follows:
 
 @r{@var{v}^″=@var{P}×@var{M}×@var{v}}
@@ -2268,23 +2271,23 @@ Specifies the offset (a number of single-precision floating-point
 values) between points on the curve.
 
 @item @var{type}
-Specifies the type of curve. Must be either @code{GLU_MAP1_TRIM_2} or
+Specifies the type of curve.  Must be either @code{GLU_MAP1_TRIM_2} or
 @code{GLU_MAP1_TRIM_3}.
 
 @end table
 
 @code{gluPwlCurve} describes a piecewise linear trimming curve for a
-NURBS surface. A piecewise linear curve consists of a list of
+NURBS surface.  A piecewise linear curve consists of a list of
 coordinates of points in the parameter space for the NURBS surface to be
-trimmed. These points are connected with line segments to form a curve.
+trimmed.  These points are connected with line segments to form a curve.
 If the curve is an approximation to a curve that is not piecewise
 linear, the points should be close enough in parameter space that the
 resulting path appears curved at the resolution used in the application.
 
 If @var{type} is @code{GLU_MAP1_TRIM_2}, then it describes a curve in
-two-dimensional (@var{u} and @var{v}) parameter space. If it is
+two-dimensional (@var{u} and @var{v}) parameter space.  If it is
 @code{GLU_MAP1_TRIM_3}, then it describes a curve in two-dimensional
-homogeneous (@var{u}, @var{v}, and @var{w}) parameter space. See the
+homogeneous (@var{u}, @var{v}, and @var{w}) parameter space.  See the
 @code{gluBeginTrim} reference page for more information about trimming
 curves.
 
@@ -2298,7 +2301,7 @@ Define a callback for a quadrics object.
 Specifies the quadrics object (created with @code{gluNewQuadric}).
 
 @item @var{which}
-Specifies the callback being defined. The only valid value is
+Specifies the callback being defined.  The only valid value is
 @code{GLU_ERROR}.
 
 @item @var{CallBackFunc}
@@ -2307,18 +2310,18 @@ Specifies the function to be called.
 @end table
 
 @code{gluQuadricCallback} is used to define a new callback to be used by
-a quadrics object. If the specified callback is already defined, then it
-is replaced. If @var{CallBackFunc} is NULL, then any existing callback
-is erased.
+a quadrics object.  If the specified callback is already defined, then
+it is replaced.  If @var{CallBackFunc} is NULL, then any existing
+callback is erased.
 
 The one legal callback is @code{GLU_ERROR}:
 
 @table @asis
 @item @code{GLU_ERROR}
-The function is called when an error is encountered. Its single argument
-is of type GLenum, and it indicates the specific error that occurred.
-Character strings describing these errors can be retrieved with the
-@code{gluErrorString} call.
+The function is called when an error is encountered.  Its single
+argument is of type GLenum, and it indicates the specific error that
+occurred.  Character strings describing these errors can be retrieved
+with the @code{gluErrorString} call.
 
 @end table
 
@@ -2332,18 +2335,18 @@ Specify the draw style desired for quadrics.
 Specifies the quadrics object (created with @code{gluNewQuadric}).
 
 @item @var{draw}
-Specifies the desired draw style. Valid values are @code{GLU_FILL},
+Specifies the desired draw style.  Valid values are @code{GLU_FILL},
 @code{GLU_LINE}, @code{GLU_SILHOUETTE}, and @code{GLU_POINT}.
 
 @end table
 
 @code{gluQuadricDrawStyle} specifies the draw style for quadrics
-rendered with @var{quad}. The legal values are as follows:
+rendered with @var{quad}.  The legal values are as follows:
 
 @table @asis
 @item @code{GLU_FILL}
-Quadrics are rendered with polygon primitives. The polygons are drawn in
-a counterclockwise fashion with respect to their normals (as defined
+Quadrics are rendered with polygon primitives.  The polygons are drawn
+in a counterclockwise fashion with respect to their normals (as defined
 with @code{gluQuadricOrientation}).
 
 @item @code{GLU_LINE}
@@ -2368,13 +2371,13 @@ Specify what kind of normals are desired for quadrics.
 Specifies the quadrics object (created with @code{gluNewQuadric}).
 
 @item @var{normal}
-Specifies the desired type of normals. Valid values are @code{GLU_NONE},
-@code{GLU_FLAT}, and @code{GLU_SMOOTH}.
+Specifies the desired type of normals.  Valid values are
+@code{GLU_NONE}, @code{GLU_FLAT}, and @code{GLU_SMOOTH}.
 
 @end table
 
 @code{gluQuadricNormals} specifies what kind of normals are desired for
-quadrics rendered with @var{quad}. The legal values are as follows:
+quadrics rendered with @var{quad}.  The legal values are as follows:
 
 @table @asis
 @item @code{GLU_NONE}
@@ -2384,7 +2387,7 @@ No normals are generated.
 One normal is generated for every facet of a quadric.
 
 @item @code{GLU_SMOOTH}
-One normal is generated for every vertex of a quadric. This is the
+One normal is generated for every vertex of a quadric.  This is the
 initial value.
 
 @end table
@@ -2399,13 +2402,13 @@ Specify inside/outside orientation for quadrics.
 Specifies the quadrics object (created with @code{gluNewQuadric}).
 
 @item @var{orientation}
-Specifies the desired orientation. Valid values are @code{GLU_OUTSIDE}
+Specifies the desired orientation.  Valid values are @code{GLU_OUTSIDE}
 and @code{GLU_INSIDE}.
 
 @end table
 
 @code{gluQuadricOrientation} specifies what kind of orientation is
-desired for quadrics rendered with @var{quad}. The @var{orientation}
+desired for quadrics rendered with @var{quad}.  The @var{orientation}
 values are as follows:
 
 @table @asis
@@ -2435,9 +2438,9 @@ Specifies a flag indicating if texture coordinates should be generated.
 @end table
 
 @code{gluQuadricTexture} specifies if texture coordinates should be
-generated for quadrics rendered with @var{quad}. If the value of
+generated for quadrics rendered with @var{quad}.  If the value of
 @var{texture} is @code{GLU_TRUE}, then texture coordinates are
-generated, and if @var{texture} is @code{GLU_FALSE}, they are not. The
+generated, and if @var{texture} is @code{GLU_FALSE}, they are not.  The
 initial value is @code{GLU_FALSE}.
 
 The manner in which texture coordinates are generated depends upon the
@@ -2450,7 +2453,7 @@ Scale an image to an arbitrary size.
 
 @table @asis
 @item @var{format}
-Specifies the format of the pixel data. The following symbolic values
+Specifies the format of the pixel data.  The following symbolic values
 are valid: @code{GLU_COLOR_INDEX}, @code{GLU_STENCIL_INDEX},
 @code{GLU_DEPTH_COMPONENT}, @code{GLU_RED}, @code{GLU_GREEN},
 @code{GLU_BLUE}, @code{GLU_ALPHA}, @code{GLU_RGB}, @code{GLU_RGBA},
@@ -2463,7 +2466,7 @@ Specify in pixels the width and height, respectively, of the source
 image.
 
 @item @var{typeIn}
-Specifies the data type for @var{dataIn}. Must be one of
+Specifies the data type for @var{dataIn}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -2484,7 +2487,7 @@ Specify the width and height, respectively, in pixels of the destination
 image.
 
 @item @var{typeOut}
-Specifies the data type for @var{dataOut}. Must be one of
+Specifies the data type for @var{dataOut}.  Must be one of
 @code{GLU_UNSIGNED_BYTE}, @code{GLU_BYTE}, @code{GLU_BITMAP},
 @code{GLU_UNSIGNED_SHORT}, @code{GLU_SHORT}, @code{GLU_UNSIGNED_INT},
 @code{GLU_INT}, @code{GLU_FLOAT}, @code{GLU_UNSIGNED_BYTE_3_3_2},
@@ -2576,13 +2579,13 @@ lines of latitude).
 @end table
 
 @code{gluSphere} draws a sphere of the given radius centered around the
-origin. The sphere is subdivided around the @var{z} axis into slices and
-along the @var{z} axis into stacks (similar to lines of longitude and
-latitude).
+origin.  The sphere is subdivided around the @var{z} axis into slices
+and along the @var{z} axis into stacks (similar to lines of longitude
+and latitude).
 
 If the orientation is set to @code{GLU_OUTSIDE} (with
 @code{gluQuadricOrientation}), then any normals generated point away
-from the center of the sphere. Otherwise, they point toward the center
+from the center of the sphere.  Otherwise, they point toward the center
 of the sphere.
 
 If texturing is turned on (with @code{gluQuadricTexture}), then texture
@@ -2606,12 +2609,12 @@ Specifies the tessellation object (created with @code{gluNewTess}).
 @end table
 
 @code{gluTessBeginContour} and @code{gluTessEndContour} delimit the
-definition of a polygon contour. Within each
+definition of a polygon contour.  Within each
 @code{gluTessBeginContour}/@code{gluTessEndContour} pair, there can be
-zero or more calls to @code{gluTessVertex}. The vertices specify a
+zero or more calls to @code{gluTessVertex}.  The vertices specify a
 closed contour (the last vertex of each contour is automatically linked
-to the first). See the @code{gluTessVertex} reference page for more
-details. @code{gluTessBeginContour} can only be called between
+to the first).  See the @code{gluTessVertex} reference page for more
+details.  @code{gluTessBeginContour} can only be called between
 @code{gluTessBeginPolygon} and @code{gluTessEndPolygon}.
 
 @end deftypefun
@@ -2629,23 +2632,23 @@ Specifies a pointer to user polygon data.
 @end table
 
 @code{gluTessBeginPolygon} and @code{gluTessEndPolygon} delimit the
-definition of a convex, concave or self-intersecting polygon. Within
+definition of a convex, concave or self-intersecting polygon.  Within
 each @code{gluTessBeginPolygon}/@code{gluTessEndPolygon} pair, there
 must be one or more calls to
-@code{gluTessBeginContour}/@code{gluTessEndContour}. Within each
-contour, there are zero or more calls to @code{gluTessVertex}. The
+@code{gluTessBeginContour}/@code{gluTessEndContour}.  Within each
+contour, there are zero or more calls to @code{gluTessVertex}.  The
 vertices specify a closed contour (the last vertex of each contour is
-automatically linked to the first). See the @code{gluTessVertex},
+automatically linked to the first).  See the @code{gluTessVertex},
 @code{gluTessBeginContour}, and @code{gluTessEndContour} reference pages
 for more details.
 
-@var{data} is a pointer to a user-defined data structure. If the
+@var{data} is a pointer to a user-defined data structure.  If the
 appropriate callback(s) are specified (see @code{gluTessCallback}), then
-this pointer is returned to the callback function(s). Thus, it is a
+this pointer is returned to the callback function(s).  Thus, it is a
 convenient way to store per-polygon information.
 
 Once @code{gluTessEndPolygon} is called, the polygon is tessellated, and
-the resulting triangles are described through callbacks. See
+the resulting triangles are described through callbacks.  See
 @code{gluTessCallback} for descriptions of the callback functions.
 
 @end deftypefun
@@ -2658,7 +2661,7 @@ Define a callback for a tessellation object.
 Specifies the tessellation object (created with @code{gluNewTess}).
 
 @item @var{which}
-Specifies the callback being defined. The following values are valid:
+Specifies the callback being defined.  The following values are valid:
 @code{GLU_TESS_BEGIN}, @code{GLU_TESS_BEGIN_DATA},
 @code{GLU_TESS_EDGE_FLAG}, @code{GLU_TESS_EDGE_FLAG_DATA},
 @code{GLU_TESS_VERTEX}, @code{GLU_TESS_VERTEX_DATA},
@@ -2672,101 +2675,101 @@ Specifies the function to be called.
 @end table
 
 @code{gluTessCallback} is used to indicate a callback to be used by a
-tessellation object. If the specified callback is already defined, then
-it is replaced. If @var{CallBackFunc} is NULL, then the existing
+tessellation object.  If the specified callback is already defined, then
+it is replaced.  If @var{CallBackFunc} is NULL, then the existing
 callback becomes undefined.
 
 These callbacks are used by the tessellation object to describe how a
-polygon specified by the user is broken into triangles. Note that there
+polygon specified by the user is broken into triangles.  Note that there
 are two versions of each callback: one with user-specified polygon data
-and one without. If both versions of a particular callback are
+and one without.  If both versions of a particular callback are
 specified, then the callback with user-specified polygon data will be
-used. Note that the @var{polygon_data} parameter used by some of the
+used.  Note that the @var{polygon_data} parameter used by some of the
 functions is a copy of the pointer that was specified when
-@code{gluTessBeginPolygon} was called. The legal callbacks are as
+@code{gluTessBeginPolygon} was called.  The legal callbacks are as
 follows:
 
 @table @asis
 @item @code{GLU_TESS_BEGIN}
 The begin callback is invoked like @code{glBegin} to indicate the start
-of a (triangle) primitive. The function takes a single argument of type
-GLenum. If the @code{GLU_TESS_BOUNDARY_ONLY} property is set to
+of a (triangle) primitive.  The function takes a single argument of type
+GLenum.  If the @code{GLU_TESS_BOUNDARY_ONLY} property is set to
 @code{GLU_FALSE}, then the argument is set to either
 @code{GLU_TRIANGLE_FAN}, @code{GLU_TRIANGLE_STRIP}, or
-@code{GLU_TRIANGLES}. If the @code{GLU_TESS_BOUNDARY_ONLY} property is
+@code{GLU_TRIANGLES}.  If the @code{GLU_TESS_BOUNDARY_ONLY} property is
 set to @code{GLU_TRUE}, then the argument will be set to
-@code{GLU_LINE_LOOP}. The function prototype for this callback is:
+@code{GLU_LINE_LOOP}.  The function prototype for this callback is:
 
 @item @code{GLU_TESS_BEGIN_DATA}
 The same as the @code{GLU_TESS_BEGIN} callback except that it takes an
-additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @item @code{GLU_TESS_EDGE_FLAG}
-The edge flag callback is similar to @code{glEdgeFlag}. The function
+The edge flag callback is similar to @code{glEdgeFlag}.  The function
 takes a single boolean flag that indicates which edges lie on the
-polygon boundary. If the flag is @code{GLU_TRUE}, then each vertex that
+polygon boundary.  If the flag is @code{GLU_TRUE}, then each vertex that
 follows begins an edge that lies on the polygon boundary, that is, an
-edge that separates an interior region from an exterior one. If the flag
-is @code{GLU_FALSE}, then each vertex that follows begins an edge that
-lies in the polygon interior. The edge flag callback (if defined) is
-invoked before the first vertex callback.
+edge that separates an interior region from an exterior one.  If the
+flag is @code{GLU_FALSE}, then each vertex that follows begins an edge
+that lies in the polygon interior.  The edge flag callback (if defined)
+is invoked before the first vertex callback.
 
 Since triangle fans and triangle strips do not support edge flags, the
 begin callback is not called with @code{GLU_TRIANGLE_FAN} or
 @code{GLU_TRIANGLE_STRIP} if a non-NULL edge flag callback is provided.
 (If the callback is initialized to NULL, there is no impact on
-performance). Instead, the fans and strips are converted to independent
-triangles. The function prototype for this callback is:
+performance).  Instead, the fans and strips are converted to independent
+triangles.  The function prototype for this callback is:
 
 @item @code{GLU_TESS_EDGE_FLAG_DATA}
 The same as the @code{GLU_TESS_EDGE_FLAG} callback except that it takes
-an additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+an additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @item @code{GLU_TESS_VERTEX}
-The vertex callback is invoked between the begin and end callbacks. It
+The vertex callback is invoked between the begin and end callbacks.  It
 is similar to @code{glVertex}, and it defines the vertices of the
-triangles created by the tessellation process. The function takes a
-pointer as its only argument. This pointer is identical to the opaque
+triangles created by the tessellation process.  The function takes a
+pointer as its only argument.  This pointer is identical to the opaque
 pointer provided by the user when the vertex was described (see
-@code{gluTessVertex}). The function prototype for this callback is:
+@code{gluTessVertex}).  The function prototype for this callback is:
 
 @item @code{GLU_TESS_VERTEX_DATA}
 The same as the @code{GLU_TESS_VERTEX} callback except that it takes an
-additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @item @code{GLU_TESS_END}
-The end callback serves the same purpose as @code{glEnd}. It indicates
-the end of a primitive and it takes no arguments. The function prototype
-for this callback is:
+The end callback serves the same purpose as @code{glEnd}.  It indicates
+the end of a primitive and it takes no arguments.  The function
+prototype for this callback is:
 
 @item @code{GLU_TESS_END_DATA}
 The same as the @code{GLU_TESS_END} callback except that it takes an
-additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @item @code{GLU_TESS_COMBINE}
 The combine callback is called to create a new vertex when the
-tessellation detects an intersection or wishes to merge features. The
+tessellation detects an intersection or wishes to merge features.  The
 function takes four arguments: an array of three elements each of type
 GLdouble, an array of four pointers, an array of four elements each of
-type GLfloat, and a pointer to a pointer. The prototype is:
+type GLfloat, and a pointer to a pointer.  The prototype is:
 
 The vertex is defined as a linear combination of up to four existing
-vertices, stored in @var{vertex_data}. The coefficients of the linear
+vertices, stored in @var{vertex_data}.  The coefficients of the linear
 combination are given by @var{weight}; these weights always add up to 1.
 All vertex pointers are valid even when some of the weights are 0.
 @var{coords} gives the location of the new vertex.
 
 The user must allocate another vertex, interpolate parameters using
 @var{vertex_data} and @var{weight}, and return the new vertex pointer in
-@var{outData}. This handle is supplied during rendering callbacks. The
+@var{outData}.  This handle is supplied during rendering callbacks.  The
 user is responsible for freeing the memory some time after
 @code{gluTessEndPolygon} is called.
 
@@ -2777,17 +2780,17 @@ callback might look like this:
 If the tessellation detects an intersection, then the
 @code{GLU_TESS_COMBINE} or @code{GLU_TESS_COMBINE_DATA} callback (see
 below) must be defined, and it must write a non-NULL pointer into
-@var{dataOut}. Otherwise the @code{GLU_TESS_NEED_COMBINE_CALLBACK} error
-occurs, and no output is generated.
+@var{dataOut}.  Otherwise the @code{GLU_TESS_NEED_COMBINE_CALLBACK}
+error occurs, and no output is generated.
 
 @item @code{GLU_TESS_COMBINE_DATA}
 The same as the @code{GLU_TESS_COMBINE} callback except that it takes an
-additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @item @code{GLU_TESS_ERROR}
-The error callback is called when an error is encountered. The one
+The error callback is called when an error is encountered.  The one
 argument is of type GLenum; it indicates the specific error that
 occurred and will be set to one of
 @code{GLU_TESS_MISSING_BEGIN_POLYGON},
@@ -2796,24 +2799,25 @@ occurred and will be set to one of
 @code{GLU_TESS_MISSING_END_CONTOUR}, @code{GLU_TESS_COORD_TOO_LARGE},
 @code{GLU_TESS_NEED_COMBINE_CALLBACK}, or @code{GLU_OUT_OF_MEMORY}.
 Character strings describing these errors can be retrieved with the
-@code{gluErrorString} call. The function prototype for this callback is:
+@code{gluErrorString} call.  The function prototype for this callback
+is:
 
 The GLU library will recover from the first four errors by inserting the
-missing call(s). @code{GLU_TESS_COORD_TOO_LARGE} indicates that some
+missing call(s).  @code{GLU_TESS_COORD_TOO_LARGE} indicates that some
 vertex coordinate exceeded the predefined constant
 @code{GLU_TESS_MAX_COORD} in absolute value, and that the value has been
-clamped. (Coordinate values must be small enough so that two can be
+clamped.  (Coordinate values must be small enough so that two can be
 multiplied together without overflow.)
 @code{GLU_TESS_NEED_COMBINE_CALLBACK} indicates that the tessellation
 detected an intersection between two edges in the input data, and the
 @code{GLU_TESS_COMBINE} or @code{GLU_TESS_COMBINE_DATA} callback was not
-provided. No output is generated. @code{GLU_OUT_OF_MEMORY} indicates
+provided.  No output is generated.  @code{GLU_OUT_OF_MEMORY} indicates
 that there is not enough memory so no output is generated.
 
 @item @code{GLU_TESS_ERROR_DATA}
 The same as the @code{GLU_TESS_ERROR} callback except that it takes an
-additional pointer argument. This pointer is identical to the opaque
-pointer provided when @code{gluTessBeginPolygon} was called. The
+additional pointer argument.  This pointer is identical to the opaque
+pointer provided when @code{gluTessBeginPolygon} was called.  The
 function prototype for this callback is:
 
 @end table
@@ -2911,18 +2915,18 @@ Specifies the tessellation object (created with @code{gluNewTess}).
 @end table
 
 @code{gluTessBeginPolygon} and @code{gluTessEndPolygon} delimit the
-definition of a convex, concave, or self-intersecting polygon. Within
+definition of a convex, concave, or self-intersecting polygon.  Within
 each @code{gluTessBeginPolygon}/@code{gluTessEndPolygon} pair, there
 must be one or more calls to
-@code{gluTessBeginContour}/@code{gluTessEndContour}. Within each
-contour, there are zero or more calls to @code{gluTessVertex}. The
+@code{gluTessBeginContour}/@code{gluTessEndContour}.  Within each
+contour, there are zero or more calls to @code{gluTessVertex}.  The
 vertices specify a closed contour (the last vertex of each contour is
-automatically linked to the first). See the @code{gluTessVertex},
+automatically linked to the first).  See the @code{gluTessVertex},
 @code{gluTessBeginContour}, and @code{gluTessEndContour} reference pages
 for more details.
 
 Once @code{gluTessEndPolygon} is called, the polygon is tessellated, and
-the resulting triangles are described through callbacks. See
+the resulting triangles are described through callbacks.  See
 @code{gluTessCallback} for descriptions of the callback functions.
 
 @end deftypefun
@@ -2946,20 +2950,20 @@ Specifies the third component of the normal.
 @end table
 
 @code{gluTessNormal} describes a normal for a polygon that the program
-is defining. All input data will be projected onto a plane perpendicular
-to one of the three coordinate axes before tessellation and all output
-triangles will be oriented CCW with respect to the normal (CW
-orientation can be obtained by reversing the sign of the supplied
-normal). For example, if you know that all polygons lie in the x-y
+is defining.  All input data will be projected onto a plane
+perpendicular to one of the three coordinate axes before tessellation
+and all output triangles will be oriented CCW with respect to the normal
+(CW orientation can be obtained by reversing the sign of the supplied
+normal).  For example, if you know that all polygons lie in the x-y
 plane, call @code{gluTessNormal}(tess, 0.0, 0.0, 1.0) before rendering
 any polygons.
 
 If the supplied normal is (0.0, 0.0, 0.0) (the initial value), the
-normal is determined as follows. The direction of the normal, up to its
+normal is determined as follows.  The direction of the normal, up to its
 sign, is found by fitting a plane to the vertices, without regard to how
-the vertices are connected. It is expected that the input data lies
+the vertices are connected.  It is expected that the input data lies
 approximately in the plane; otherwise, projection perpendicular to one
-of the three coordinate axes may substantially change the geometry. The
+of the three coordinate axes may substantially change the geometry.  The
 sign of the normal is chosen so that the sum of the signed areas of all
 input contours is nonnegative (where a CCW contour has positive area).
 
@@ -2976,7 +2980,7 @@ Set a tessellation object property.
 Specifies the tessellation object (created with @code{gluNewTess}).
 
 @item @var{which}
-Specifies the property to be set. Valid values are
+Specifies the property to be set.  Valid values are
 @code{GLU_TESS_WINDING_RULE}, @code{GLU_TESS_BOUNDARY_ONLY}, and
 @code{GLU_TESS_TOLERANCE}.
 
@@ -2986,8 +2990,8 @@ Specifies the value of the indicated property.
 @end table
 
 @code{gluTessProperty} is used to control properties stored in a
-tessellation object. These properties affect the way that the polygons
-are interpreted and rendered. The legal values for @var{which} are as
+tessellation object.  These properties affect the way that the polygons
+are interpreted and rendered.  The legal values for @var{which} are as
 follows:
 
 @table @asis
@@ -2999,50 +3003,50 @@ Determines which parts of the polygon are on the ``interior''.
 @code{GLU_TESS_WINDING_ABS_GEQ_TWO}.
 
 To understand how the winding rule works, consider that the input
-contours partition the plane into regions. The winding rule determines
+contours partition the plane into regions.  The winding rule determines
 which of these regions are inside the polygon.
 
 For a single contour C, the winding number of a point x is simply the
 signed number of revolutions we make around x as we travel once around C
-(where CCW is positive). When there are several contours, the individual
-winding numbers are summed. This procedure associates a signed integer
-value with each point x in the plane. Note that the winding number is
-the same for all points in a single region.
+(where CCW is positive).  When there are several contours, the
+individual winding numbers are summed.  This procedure associates a
+signed integer value with each point x in the plane.  Note that the
+winding number is the same for all points in a single region.
 
 The winding rule classifies a region as ``inside'' if its winding number
 belongs to the chosen category (odd, nonzero, positive, negative, or
-absolute value of at least two). The previous GLU tessellator (prior to
-GLU 1.2) used the ``odd'' rule. The ``nonzero'' rule is another common
-way to define the interior. The other three rules are useful for polygon
-CSG operations.
+absolute value of at least two).  The previous GLU tessellator (prior to
+GLU 1.2) used the ``odd'' rule.  The ``nonzero'' rule is another common
+way to define the interior.  The other three rules are useful for
+polygon CSG operations.
 
 @item @code{GLU_TESS_BOUNDARY_ONLY}
 Is a boolean value (``value'' should be set to GL_TRUE or GL_FALSE).
 When set to GL_TRUE, a set of closed contours separating the polygon
-interior and exterior are returned instead of a tessellation. Exterior
+interior and exterior are returned instead of a tessellation.  Exterior
 contours are oriented CCW with respect to the normal; interior contours
-are oriented CW. The @code{GLU_TESS_BEGIN} and
+are oriented CW.  The @code{GLU_TESS_BEGIN} and
 @code{GLU_TESS_BEGIN_DATA} callbacks use the type GL_LINE_LOOP for each
 contour.
 
 @item @code{GLU_TESS_TOLERANCE}
 Specifies a tolerance for merging features to reduce the size of the
-output. For example, two vertices that are very close to each other
-might be replaced by a single vertex. The tolerance is multiplied by the
-largest coordinate magnitude of any input vertex; this specifies the
+output.  For example, two vertices that are very close to each other
+might be replaced by a single vertex.  The tolerance is multiplied by
+the largest coordinate magnitude of any input vertex; this specifies the
 maximum distance that any feature can move as the result of a single
-merge operation. If a single feature takes part in several merge
+merge operation.  If a single feature takes part in several merge
 operations, the total distance moved could be larger.
 
 Feature merging is completely optional; the tolerance is only a hint.
 The implementation is free to merge in some cases and not in others, or
-to never merge features at all. The initial tolerance is 0.
+to never merge features at all.  The initial tolerance is 0.
 
 The current implementation merges vertices only if they are exactly
-coincident, regardless of the current tolerance. A vertex is spliced
+coincident, regardless of the current tolerance.  A vertex is spliced
 into an edge only if the implementation is unable to distinguish which
-side of the edge the vertex lies on. Two edges are merged only when both
-endpoints are identical.
+side of the edge the vertex lies on.  Two edges are merged only when
+both endpoints are identical.
 
 @end table
 
@@ -3065,14 +3069,14 @@ callback (as specified by @code{gluTessCallback}).
 @end table
 
 @code{gluTessVertex} describes a vertex on a polygon that the program
-defines. Successive @code{gluTessVertex} calls describe a closed
-contour. For example, to describe a quadrilateral, @code{gluTessVertex}
-should be called four times. @code{gluTessVertex} can only be called
+defines.  Successive @code{gluTessVertex} calls describe a closed
+contour.  For example, to describe a quadrilateral, @code{gluTessVertex}
+should be called four times.  @code{gluTessVertex} can only be called
 between @code{gluTessBeginContour} and @code{gluTessEndContour}.
 
 @var{data} normally points to a structure containing the vertex
 location, as well as other per-vertex attributes such as color and
-normal. This pointer is passed back to the user through the
+normal.  This pointer is passed back to the user through the
 @code{GLU_TESS_VERTEX} or @code{GLU_TESS_VERTEX_DATA} callback after
 tessellation (see the @code{gluTessCallback} reference page).
 
@@ -3114,11 +3118,11 @@ Returns the computed object coordinates.
 @code{gluUnProject4} maps the specified window coordinatesi: @var{winX},
 @var{winY}, and @var{winZ} and its clip w coordinate @var{clipW} into
 object coordinates @r{(@var{objX},@var{objY}@var{objZ}@var{objW})} using
-@var{model}, @var{proj}, and @var{view}. @var{clipW} can be other than 1
-as for vertices in @code{glFeedbackBuffer} when data type
-@code{GLU_4D_COLOR_TEXTURE} is returned. This also handles the case
+@var{model}, @var{proj}, and @var{view}.  @var{clipW} can be other than
+as for vertices in @code{glFeedbackBuffer} when data type
+@code{GLU_4D_COLOR_TEXTURE} is returned.  This also handles the case
 where the @var{nearVal} and @var{farVal} planes are different from the
-default, 0 and 1, respectively. A return value of @code{GLU_TRUE}
+default, 0 and 1, respectively.  A return value of @code{GLU_TRUE}
 indicates success; a return value of @code{GLU_FALSE} indicates failure.
 
 To compute the coordinates
@@ -3165,8 +3169,8 @@ Returns the computed object coordinates.
 @end table
 
 @code{gluUnProject} maps the specified window coordinates into object
-coordinates using @var{model}, @var{proj}, and @var{view}. The result is
-stored in @var{objX}, @var{objY}, and @var{objZ}. A return value of
+coordinates using @var{model}, @var{proj}, and @var{view}.  The result
+is stored in @var{objX}, @var{objY}, and @var{objZ}.  A return value of
 @code{GLU_TRUE} indicates success; a return value of @code{GLU_FALSE}
 indicates failure.
 
@@ -3177,7 +3181,7 @@ inverse of @var{model} * @var{proj} as follows:
 @r{((@var{objX}), (@var{objY}), (@var{objZ}),
 (@var{W}),)=@var{INV}⁡(@var{P}⁢@var{M},)⁢((2⁡(@var{winX}-@var{view}⁡[0,],),/@var{view}⁡[2,],-1),
 (2⁡(@var{winY}-@var{view}⁡[1,],),/@var{view}⁡[3,],-1),
-(2⁡(@var{winZ},)-1), (1),)}@r{@var{INV}} denotes matrix inversion. W is
+(2⁡(@var{winZ},)-1), (1),)}@r{@var{INV}} denotes matrix inversion.  W is
 an unused variable, included for consistent matrix notation.
 
 @end deftypefun