update low-level docs
[clinton/guile-figl.git] / doc / low-level-gl.texi
index 6a20b82..1212551 100644 (file)
@@ -1,6 +1,12 @@
 
 @c %start of fragment
 
+The functions from this section may be had by loading the module:
+
+@example 
+(use-modules (figl gl low-level)
+@end example
+
 @copying 
 This section of the manual was derived from the upstream OpenGL
 documentation. Each function's documentation has its own copyright
@@ -28,15 +34,9 @@ Publication License, v 1.0, 8 June 1999.
 
 @end copying
 
-The functions from this section may be had by loading the module:
+@deftypefun void glAccum op value
+Operate on the accumulation buffer.
 
-@example 
-(use-modules (figl low-level gl))
-@end example
-
-@defun glAccum 
-@heading operate on the accumulation buffer
-@heading Parameters
 @table @asis
 @item @var{op}
 Specifies the accumulation buffer operation. Symbolic constants
@@ -49,7 +49,6 @@ operation. @var{op} determines how @var{value} is used.
 
 @end table
 
-@heading Description
 The accumulation buffer is an extended-range color buffer. Images are
 not rendered into it. Rather, images rendered into one of the color
 buffers are added to the contents of the accumulation buffer after
@@ -64,7 +63,7 @@ calling @code{glGetIntegerv} four times, with arguments
 @code{GL_ACCUM_RED_BITS}, @code{GL_ACCUM_GREEN_BITS},
 @code{GL_ACCUM_BLUE_BITS}, and @code{GL_ACCUM_ALPHA_BITS}. Regardless of
 the number of bits per component, the range of values stored by each
-component is @math{[-1,1]}. The accumulation buffer pixels are mapped
+component is @r{[-1,1]}. The accumulation buffer pixels are mapped
 one-to-one with frame buffer pixels.
 
 @code{glAccum} operates on the accumulation buffer. The first argument,
@@ -77,7 +76,7 @@ to be used in that operation. Five operations are specified:
 All accumulation buffer operations are limited to the area of the
 current scissor box and applied identically to the red, green, blue, and
 alpha components of each pixel. If a @code{glAccum} operation results in
-a value outside the range @math{[-1,1]}, the contents of an accumulation
+a value outside the range @r{[-1,1]}, the contents of an accumulation
 buffer pixel component are undefined.
 
 The operations are as follows:
@@ -86,9 +85,9 @@ The operations are as follows:
 @item @code{GL_ACCUM}
 Obtains R, G, B, and A values from the buffer currently selected for
 reading (see @code{glReadBuffer}). Each component value is divided by
-@math{2^@var{n}-1}, where @math{@var{n}} is the number of bits allocated
-to each color component in the currently selected buffer. The result is
-a floating-point value in the range @math{[0,1]}, which is multiplied by
+@r{2^@var{n}-1}, where @r{@var{n}} is the number of bits allocated to
+each color component in the currently selected buffer. The result is a
+floating-point value in the range @r{[0,1]}, which is multiplied by
 @var{value} and added to the corresponding pixel component in the
 accumulation buffer, thereby updating the accumulation buffer.
 
@@ -96,7 +95,7 @@ accumulation buffer, thereby updating the accumulation buffer.
 Similar to @code{GL_ACCUM}, except that the current value in the
 accumulation buffer is not used in the calculation of the new value.
 That is, the R, G, B, and A values from the currently selected buffer
-are divided by @math{2^@var{n}-1}, multiplied by @var{value}, and then
+are divided by @r{2^@var{n}-1}, multiplied by @var{value}, and then
 stored in the corresponding accumulation buffer cell, overwriting the
 current value.
 
@@ -111,11 +110,11 @@ buffer location.
 @item @code{GL_RETURN}
 Transfers accumulation buffer values to the color buffer or buffers
 currently selected for writing. Each R, G, B, and A component is
-multiplied by @var{value}, then multiplied by @math{2^@var{n}-1},
-clamped to the range @math{[0,2^@var{n}-1]}, and stored in the
-corresponding display buffer cell. The only fragment operations that are
-applied to this transfer are pixel ownership, scissor, dithering, and
-color writemasks.
+multiplied by @var{value}, then multiplied by @r{2^@var{n}-1}, clamped
+to the range @r{[0,2^@var{n}-1]}, and stored in the corresponding
+display buffer cell. The only fragment operations that are applied to
+this transfer are pixel ownership, scissor, dithering, and color
+writemasks.
 
 @end table
 
@@ -123,7 +122,6 @@ To clear the accumulation buffer, call @code{glClearAccum} with R, G, B,
 and A values to set it to, then call @code{glClear} with the
 accumulation buffer enabled.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{op} is not an accepted
 value.
 
@@ -134,23 +132,22 @@ buffer.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glActiveTexture texture
+Select active texture unit.
 
-@defun glActiveTexture 
-@heading select active texture unit
-@heading Parameters
 @table @asis
 @item @var{texture}
 Specifies which texture unit to make active. The number of texture units
 is implementation dependent, but must be at least two. @var{texture}
-must be one of @code{GL_TEXTURE}@math{@var{i}}, where i ranges from 0 to
+must be one of @code{GL_TEXTURE}@r{@var{i}}, where i ranges from 0 to
 the larger of (@code{GL_MAX_TEXTURE_COORDS} - 1) and
 (@code{GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS} - 1). The initial value is
 @code{GL_TEXTURE0}.
 
 @end table
 
-@heading Description
 @code{glActiveTexture} selects which texture unit subsequent texture
 state calls will affect. The number of texture units an implementation
 supports is implementation dependent, but must be at least 2.
@@ -158,17 +155,16 @@ supports is implementation dependent, but must be at least 2.
 Vertex arrays are client-side GL resources, which are selected by the
 @code{glClientActiveTexture} routine.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{texture} is not one of
-@code{GL_TEXTURE}@math{@var{i}}, where i ranges from 0 to the larger of
+@code{GL_TEXTURE}@r{@var{i}}, where i ranges from 0 to the larger of
 (@code{GL_MAX_TEXTURE_COORDS} - 1) and
 (@code{GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS} - 1).
 
-@end defun
+@end deftypefun
+
+@deftypefun void glAlphaFunc func ref
+Specify the alpha test function.
 
-@defun glAlphaFunc 
-@heading specify the alpha test function
-@heading Parameters
 @table @asis
 @item @var{func}
 Specifies the alpha comparison function. Symbolic constants
@@ -178,13 +174,12 @@ Specifies the alpha comparison function. Symbolic constants
 
 @item @var{ref}
 Specifies the reference value that incoming alpha values are compared
-to. This value is clamped to the range @math{[0,1]}, where 0 represents
-the lowest possible alpha value and 1 the highest possible value. The
+to. This value is clamped to the range @r{[0,1]}, where 0 represents the
+lowest possible alpha value and 1 the highest possible value. The
 initial reference value is 0.
 
 @end table
 
-@heading Description
 The alpha test discards fragments depending on the outcome of a
 comparison between an incoming fragment's alpha value and a constant
 reference value. @code{glAlphaFunc} specifies the reference value and
@@ -234,7 +229,6 @@ those resulting from the scan conversion of points, lines, polygons, and
 bitmaps, and from pixel draw and copy operations. @code{glAlphaFunc}
 does not affect screen clear operations.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{func} is not an accepted
 value.
 
@@ -242,11 +236,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glAreTexturesResident n textures residences
+Determine if textures are loaded in texture memory.
 
-@defun glAreTexturesResident 
-@heading determine if textures are loaded in texture memory
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of textures to be queried.
@@ -261,7 +255,6 @@ is returned in the corresponding element of @var{residences}.
 
 @end table
 
-@heading Description
 GL establishes a ``working set'' of textures that are resident in
 texture memory. These textures can be bound to a texture target much
 more efficiently than textures that are not resident.
@@ -282,7 +275,6 @@ the target to which the texture is bound, and the @var{pname} argument
 set to @code{GL_TEXTURE_RESIDENT}. This is the only way that the
 residence status of a default texture can be queried.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_VALUE} is generated if any element in @var{textures} is
@@ -293,18 +285,17 @@ residence status of a default texture can be queried.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glArrayElement i
+Render a vertex using the specified vertex array element.
 
-@defun glArrayElement 
-@heading render a vertex using the specified vertex array element
-@heading Parameters
 @table @asis
 @item @var{i}
 Specifies an index into the enabled vertex data arrays.
 
 @end table
 
-@heading Description
 @code{glArrayElement} commands are used within
 @code{glBegin}/@code{glEnd} pairs to specify vertex and attribute data
 for point, line, and polygon primitives. If @code{GL_VERTEX_ARRAY} is
@@ -328,18 +319,17 @@ call to @code{glArrayElement} that precedes a change to array data may
 access the changed data, and a call that follows a change to array data
 may access original data.
 
-@heading Errors
 @code{GL_INVALID_VALUE} may be generated if @var{i} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if a non-zero buffer object
 name is bound to an enabled array and the buffer object's data store is
 currently mapped.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glAttachShader program shader
+Attaches a shader object to a program object.
 
-@defun glAttachShader 
-@heading Attaches a shader object to a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to which a shader object will be attached.
@@ -349,7 +339,6 @@ Specifies the shader object that is to be attached.
 
 @end table
 
-@heading Description
 In order to create an executable, there must be a way to specify the
 list of things that will be linked together. Program objects provide
 this mechanism. Shaders that are to be linked together in a program
@@ -371,7 +360,6 @@ to a program object, it will be flagged for deletion, and deletion will
 not occur until @code{glDetachShader} is called to detach it from all
 program objects to which it is attached.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if either @var{program} or
 @var{shader} is not a value generated by OpenGL.
 
@@ -388,11 +376,12 @@ attached to @var{program}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBeginQuery target id
+@deftypefunx void glEndQuery target
+Delimit the boundaries of a query object.
 
-@defun glBeginQuery 
-@heading delimit the boundaries of a query object
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target type of query object established between
@@ -404,7 +393,6 @@ Specifies the name of a query object.
 
 @end table
 
-@heading Description
 @code{glBeginQuery} and @code{glEndQuery} delimit the boundaries of a
 query object. If a query object with name @var{id} does not yet exist it
 is created.
@@ -422,7 +410,6 @@ result is available. @code{GL_QUERY_RESULT_AVAILABLE} can be queried to
 determine if the result is immediately available or if the rendering is
 not yet complete.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_SAMPLES_PASSED}.
 
@@ -442,11 +429,12 @@ already active query object.
 @code{glEndQuery} is executed between the execution of @code{glBegin}
 and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBegin mode
+@deftypefunx void glEnd 
+Delimit the vertices of a primitive or a group of like primitives.
 
-@defun glBegin 
-@heading delimit the vertices of a primitive or a group of like primitives
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies the primitive or primitives that will be created from vertices
@@ -458,72 +446,70 @@ symbolic constants are accepted: @code{GL_POINTS}, @code{GL_LINES},
 
 @end table
 
-@heading Description
 @code{glBegin} and @code{glEnd} delimit the vertices that define a
 primitive or a group of like primitives. @code{glBegin} accepts a single
 argument that specifies in which of ten ways the vertices are
-interpreted. Taking @math{@var{n}} as an integer count starting at one,
-and @math{@var{N}} as the total number of vertices specified, the
+interpreted. Taking @r{@var{n}} as an integer count starting at one, and
+@r{@var{N}} as the total number of vertices specified, the
 interpretations are as follows:
 
 @table @asis
 @item @code{GL_POINTS}
-Treats each vertex as a single point. Vertex @math{@var{n}} defines
-point @math{@var{n}}. @math{@var{N}} points are drawn.
+Treats each vertex as a single point. Vertex @r{@var{n}} defines point
+@r{@var{n}}. @r{@var{N}} points are drawn.
 
 @item @code{GL_LINES}
 Treats each pair of vertices as an independent line segment. Vertices
-@math{2⁢@var{n}-1} and @math{2⁢@var{n}} define line @math{@var{n}}.
-@math{@var{N}/2} lines are drawn.
+@r{2⁢@var{n}-1} and @r{2⁢@var{n}} define line @r{@var{n}}. @r{@var{N}/2}
+lines are drawn.
 
 @item @code{GL_LINE_STRIP}
 Draws a connected group of line segments from the first vertex to the
-last. Vertices @math{@var{n}} and @math{@var{n}+1} define line
-@math{@var{n}}. @math{@var{N}-1} lines are drawn.
+last. Vertices @r{@var{n}} and @r{@var{n}+1} define line @r{@var{n}}.
+@r{@var{N}-1} lines are drawn.
 
 @item @code{GL_LINE_LOOP}
 Draws a connected group of line segments from the first vertex to the
-last, then back to the first. Vertices @math{@var{n}} and
-@math{@var{n}+1} define line @math{@var{n}}. The last line, however, is
-defined by vertices @math{@var{N}} and @math{1}. @math{@var{N}} lines
-are drawn.
+last, then back to the first. Vertices @r{@var{n}} and @r{@var{n}+1}
+define line @r{@var{n}}. The last line, however, is defined by vertices
+@r{@var{N}} and @r{1}. @r{@var{N}} lines are drawn.
 
 @item @code{GL_TRIANGLES}
 Treats each triplet of vertices as an independent triangle. Vertices
-@math{3⁢@var{n}-2}, @math{3⁢@var{n}-1}, and @math{3⁢@var{n}} define
-triangle @math{@var{n}}. @math{@var{N}/3} triangles are drawn.
+@r{3⁢@var{n}-2}, @r{3⁢@var{n}-1}, and @r{3⁢@var{n}} define triangle
+@r{@var{n}}. @r{@var{N}/3} triangles are drawn.
 
 @item @code{GL_TRIANGLE_STRIP}
 Draws a connected group of triangles. One triangle is defined for each
-vertex presented after the first two vertices. For odd @math{@var{n}},
-vertices @math{@var{n}}, @math{@var{n}+1}, and @math{@var{n}+2} define
-triangle @math{@var{n}}. For even @math{@var{n}}, vertices
-@math{@var{n}+1}, @math{@var{n}}, and @math{@var{n}+2} define triangle
-@math{@var{n}}. @math{@var{N}-2} triangles are drawn.
+vertex presented after the first two vertices. For odd @r{@var{n}},
+vertices @r{@var{n}}, @r{@var{n}+1}, and @r{@var{n}+2} define triangle
+@r{@var{n}}. For even @r{@var{n}}, vertices @r{@var{n}+1}, @r{@var{n}},
+and @r{@var{n}+2} define triangle @r{@var{n}}. @r{@var{N}-2} triangles
+are drawn.
 
 @item @code{GL_TRIANGLE_FAN}
 Draws a connected group of triangles. One triangle is defined for each
-vertex presented after the first two vertices. Vertices @math{1},
-@math{@var{n}+1}, and @math{@var{n}+2} define triangle @math{@var{n}}.
-@math{@var{N}-2} triangles are drawn.
+vertex presented after the first two vertices. Vertices @r{1},
+@r{@var{n}+1}, and @r{@var{n}+2} define triangle @r{@var{n}}.
+@r{@var{N}-2} triangles are drawn.
 
 @item @code{GL_QUADS}
 Treats each group of four vertices as an independent quadrilateral.
-Vertices @math{4⁢@var{n}-3}, @math{4⁢@var{n}-2}, @math{4⁢@var{n}-1}, and
-@math{4⁢@var{n}} define quadrilateral @math{@var{n}}. @math{@var{N}/4}
+Vertices @r{4⁢@var{n}-3}, @r{4⁢@var{n}-2}, @r{4⁢@var{n}-1}, and
+@r{4⁢@var{n}} define quadrilateral @r{@var{n}}. @r{@var{N}/4}
 quadrilaterals are drawn.
 
 @item @code{GL_QUAD_STRIP}
 Draws a connected group of quadrilaterals. One quadrilateral is defined
 for each pair of vertices presented after the first pair. Vertices
-@math{2⁢@var{n}-1}, @math{2⁢@var{n}}, @math{2⁢@var{n}+2}, and
-@math{2⁢@var{n}+1} define quadrilateral @math{@var{n}}.
-@math{@var{N}/2-1} quadrilaterals are drawn. Note that the order in
-which vertices are used to construct a quadrilateral from strip data is
-different from that used with independent data.
+@r{2⁢@var{n}-1}, @r{2⁢@var{n}}, @r{2⁢@var{n}+2}, and @r{2⁢@var{n}+1}
+define quadrilateral @r{@var{n}}. @r{@var{N}/2-1} quadrilaterals are
+drawn. Note that the order in which vertices are used to construct a
+quadrilateral from strip data is different from that used with
+independent data.
 
 @item @code{GL_POLYGON}
-Draws a single, convex polygon. Vertices @math{1} through @math{@var{N}}
+Draws a single, convex polygon. Vertices @r{1} through @r{@var{N}}
 define this polygon.
 
 @end table
@@ -553,7 +539,6 @@ and 3 for a polygon. Modes that require a certain multiple of vertices
 are @code{GL_LINES} (2), @code{GL_TRIANGLES} (3), @code{GL_QUADS} (4),
 and @code{GL_QUAD_STRIP} (2).
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is set to an
 unaccepted value.
 
@@ -583,11 +568,12 @@ Execution of @code{glEnableClientState}, @code{glDisableClientState},
 before the corresponding call to @code{glEnd}, but an error may or may
 not be generated.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBindAttribLocation program index name
+Associates a generic vertex attribute index with a named attribute
+variable.
 
-@defun glBindAttribLocation 
-@heading Associates a generic vertex attribute index with a named attribute variable
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the handle of the program object in which the association is
@@ -602,7 +588,6 @@ shader attribute variable to which @var{index} is to be bound.
 
 @end table
 
-@heading Description
 @code{glBindAttribLocation} is used to associate a user-defined
 attribute variable in the program object specified by @var{program} with
 a generic vertex attribute index. The name of the user-defined attribute
@@ -643,7 +628,6 @@ needed. Any attribute binding that occurs after the program object has
 been linked will not take effect until the next time the program object
 is linked.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
@@ -660,11 +644,11 @@ program object.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBindBuffer target buffer
+Bind a named buffer object.
 
-@defun glBindBuffer 
-@heading bind a named buffer object
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target to which the buffer object is bound. The symbolic
@@ -676,7 +660,6 @@ Specifies the name of a buffer object.
 
 @end table
 
-@heading Description
 @code{glBindBuffer} lets you create or use a named buffer object.
 Calling @code{glBindBuffer} with @var{target} set to
 @code{GL_ARRAY_BUFFER}, @code{GL_ELEMENT_ARRAY_BUFFER},
@@ -760,7 +743,6 @@ often as needed. However, the GL implementation may make choices about
 how to optimize the storage of a buffer object based on its initial
 binding target.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -768,11 +750,11 @@ allowable values.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBindTexture target texture
+Bind a named texture to a texturing target.
 
-@defun glBindTexture 
-@heading bind a named texture to a texturing target
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target to which the texture is bound. Must be either
@@ -784,7 +766,6 @@ Specifies the name of a texture.
 
 @end table
 
-@heading Description
 @code{glBindTexture} lets you create or use a named texture. Calling
 @code{glBindTexture} with @var{target} set to @code{GL_TEXTURE_1D},
 @code{GL_TEXTURE_2D}, @code{GL_TEXTURE_3D} or @code{GL_TEXTURE_CUBE_MAP}
@@ -833,7 +814,6 @@ additional control over performance, use @code{glPrioritizeTextures}.
 
 @code{glBindTexture} is included in display lists.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -844,11 +824,11 @@ created with a target that doesn't match that of @var{target}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBitmap width height xorig yorig xmove ymove bitmap
+Draw a bitmap.
 
-@defun glBitmap 
-@heading draw a bitmap
-@heading Parameters
 @table @asis
 @item @var{width}
 @itemx @var{height}
@@ -870,7 +850,6 @@ Specifies the address of the bitmap image.
 
 @end table
 
-@heading Description
 A bitmap is a binary image. When drawn, the bitmap is positioned
 relative to the current raster position, and frame buffer pixels
 corresponding to 1's in the bitmap are written using the current raster
@@ -901,26 +880,24 @@ If the current raster position is invalid, @code{glBitmap} is ignored.
 Otherwise, the lower left corner of the bitmap image is positioned at
 the window coordinates
 
-@math{@var{x}_@var{w}=⌊@var{x}_@var{r}-@var{x}_@var{o},⌋}
+@r{@var{x}_@var{w}=⌊@var{x}_@var{r}-@var{x}_@var{o},⌋}
 
-@math{@var{y}_@var{w}=⌊@var{y}_@var{r}-@var{y}_@var{o},⌋}
+@r{@var{y}_@var{w}=⌊@var{y}_@var{r}-@var{y}_@var{o},⌋}
 
-where @math{(@var{x}_@var{r},@var{y}_@var{r})} is the raster position
-and @math{(@var{x}_@var{o},@var{y}_@var{o})} is the bitmap origin.
-Fragments are then generated for each pixel corresponding to a 1 (one)
-in the bitmap image. These fragments are generated using the current
-raster @var{z} coordinate, color or color index, and current raster
-texture coordinates. They are then treated just as if they had been
-generated by a point, line, or polygon, including texture mapping,
-fogging, and all per-fragment operations such as alpha and depth
-testing.
+where @r{(@var{x}_@var{r},@var{y}_@var{r})} is the raster position and
+@r{(@var{x}_@var{o},@var{y}_@var{o})} is the bitmap origin. Fragments
+are then generated for each pixel corresponding to a 1 (one) in the
+bitmap image. These fragments are generated using the current raster
+@var{z} coordinate, color or color index, and current raster texture
+coordinates. They are then treated just as if they had been generated by
+a point, line, or polygon, including texture mapping, fogging, and all
+per-fragment operations such as alpha and depth testing.
 
 After the bitmap has been drawn, the @var{x} and @var{y} coordinates of
 the current raster position are offset by @var{xmove} and @var{ymove}.
 No change is made to the @var{z} coordinate of the current raster
 position, or to the current raster color, texture coordinates, or index.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{width} or @var{height} is
 negative.
 
@@ -937,11 +914,11 @@ required would exceed the data store size.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBlendColor red green blue alpha
+Set the blend color.
 
-@defun glBlendColor 
-@heading set the blend color
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -951,25 +928,23 @@ specify the components of @code{GL_BLEND_COLOR}
 
 @end table
 
-@heading Description
 The @code{GL_BLEND_COLOR} may be used to calculate the source and
 destination blending factors. The color components are clamped to the
-range @math{[0,1]} before being stored. See @code{glBlendFunc} for a
+range @r{[0,1]} before being stored. See @code{glBlendFunc} for a
 complete description of the blending operations. Initially the
 @code{GL_BLEND_COLOR} is set to (0, 0, 0, 0).
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glBlendColor} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
 
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBlendEquationSeparate modeRGB modeAlpha
+Set the RGB blend equation and the alpha blend equation separately.
 
-@defun glBlendEquationSeparate 
-@heading set the RGB blend equation and the alpha blend equation separately
-@heading Parameters
 @table @asis
 @item @var{modeRGB}
 specifies the RGB blend equation, how the red, green, and blue
@@ -985,7 +960,6 @@ source and destination colors are combined. It must be
 
 @end table
 
-@heading Description
 The blend equations determines how a new pixel (the ''source'' color) is
 combined with a pixel already in the framebuffer (the ''destination''
 color). This function specifies one blend equation for the RGB-color
@@ -998,45 +972,43 @@ of the various blend factors.
 
 In the equations that follow, source and destination color components
 are referred to as
-@math{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})}
-and
-@math{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})},
+@r{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})} and
+@r{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})},
 respectively. The result color is referred to as
-@math{(@var{R}_@var{r},@var{G}_@var{r}@var{B}_@var{r}@var{A}_@var{r})}.
-The source and destination blend factors are denoted
-@math{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})}
-and
-@math{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})},
+@r{(@var{R}_@var{r},@var{G}_@var{r}@var{B}_@var{r}@var{A}_@var{r})}. The
+source and destination blend factors are denoted
+@r{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})} and
+@r{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})},
 respectively. For these equations all color components are understood to
-have values in the range @math{[0,1]}.
+have values in the range @r{[0,1]}.
 
 @table @asis
 @item @strong{Mode}
 @strong{RGB Components}, @strong{Alpha Component}
 
 @item @code{GL_FUNC_ADD}
-@math{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R}}@math{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G}}@math{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R}}@r{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G}}@r{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A}}
 
 @item @code{GL_FUNC_SUBTRACT}
-@math{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}-@var{R}_@var{d}⁢@var{d}_@var{R}}@math{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}-@var{G}_@var{d}⁢@var{d}_@var{G}}@math{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}-@var{B}_@var{d}⁢@var{d}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}-@var{A}_@var{d}⁢@var{d}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}-@var{R}_@var{d}⁢@var{d}_@var{R}}@r{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}-@var{G}_@var{d}⁢@var{d}_@var{G}}@r{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}-@var{B}_@var{d}⁢@var{d}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}-@var{A}_@var{d}⁢@var{d}_@var{A}}
 
 @item @code{GL_FUNC_REVERSE_SUBTRACT}
-@math{@var{Rr}=@var{R}_@var{d}⁢@var{d}_@var{R}-@var{R}_@var{s}⁢@var{s}_@var{R}}@math{@var{Gr}=@var{G}_@var{d}⁢@var{d}_@var{G}-@var{G}_@var{s}⁢@var{s}_@var{G}}@math{@var{Br}=@var{B}_@var{d}⁢@var{d}_@var{B}-@var{B}_@var{s}⁢@var{s}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{d}⁢@var{d}_@var{A}-@var{A}_@var{s}⁢@var{s}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{d}⁢@var{d}_@var{R}-@var{R}_@var{s}⁢@var{s}_@var{R}}@r{@var{Gr}=@var{G}_@var{d}⁢@var{d}_@var{G}-@var{G}_@var{s}⁢@var{s}_@var{G}}@r{@var{Br}=@var{B}_@var{d}⁢@var{d}_@var{B}-@var{B}_@var{s}⁢@var{s}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{d}⁢@var{d}_@var{A}-@var{A}_@var{s}⁢@var{s}_@var{A}}
 
 @item @code{GL_MIN}
-@math{@var{Rr}=@var{min}⁡(@var{R}_@var{s},@var{R}_@var{d})}@math{@var{Gr}=@var{min}⁡(@var{G}_@var{s},@var{G}_@var{d})}@math{@var{Br}=@var{min}⁡(@var{B}_@var{s},@var{B}_@var{d})},
-@math{@var{Ar}=@var{min}⁡(@var{A}_@var{s},@var{A}_@var{d})}
+@r{@var{Rr}=@var{min}⁡(@var{R}_@var{s},@var{R}_@var{d})}@r{@var{Gr}=@var{min}⁡(@var{G}_@var{s},@var{G}_@var{d})}@r{@var{Br}=@var{min}⁡(@var{B}_@var{s},@var{B}_@var{d})},
+@r{@var{Ar}=@var{min}⁡(@var{A}_@var{s},@var{A}_@var{d})}
 
 @item @code{GL_MAX}
-@math{@var{Rr}=@var{max}⁡(@var{R}_@var{s},@var{R}_@var{d})}@math{@var{Gr}=@var{max}⁡(@var{G}_@var{s},@var{G}_@var{d})}@math{@var{Br}=@var{max}⁡(@var{B}_@var{s},@var{B}_@var{d})},
-@math{@var{Ar}=@var{max}⁡(@var{A}_@var{s},@var{A}_@var{d})}
+@r{@var{Rr}=@var{max}⁡(@var{R}_@var{s},@var{R}_@var{d})}@r{@var{Gr}=@var{max}⁡(@var{G}_@var{s},@var{G}_@var{d})}@r{@var{Br}=@var{max}⁡(@var{B}_@var{s},@var{B}_@var{d})},
+@r{@var{Ar}=@var{max}⁡(@var{A}_@var{s},@var{A}_@var{d})}
 
 @end table
 
-The results of these equations are clamped to the range @math{[0,1]}.
+The results of these equations are clamped to the range @r{[0,1]}.
 
 The @code{GL_MIN} and @code{GL_MAX} equations are useful for
 applications that analyze image data (image thresholding against a
@@ -1048,7 +1020,6 @@ set to @code{GL_FUNC_ADD}.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{modeRGB} or
 @var{modeAlpha} is not one of @code{GL_FUNC_ADD},
 @code{GL_FUNC_SUBTRACT}, @code{GL_FUNC_REVERSE_SUBTRACT}, @code{GL_MAX},
@@ -1058,11 +1029,12 @@ or @code{GL_MIN}.
 @code{glBlendEquationSeparate} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBlendEquation mode
+Specify the equation used for both the RGB blend equation and the Alpha
+blend equation.
 
-@defun glBlendEquation 
-@heading specify the equation used for both the RGB blend equation and the Alpha blend equation
-@heading Parameters
 @table @asis
 @item @var{mode}
 specifies how source and destination colors are combined. It must be
@@ -1071,7 +1043,6 @@ specifies how source and destination colors are combined. It must be
 
 @end table
 
-@heading Description
 The blend equations determine how a new pixel (the ''source'' color) is
 combined with a pixel already in the framebuffer (the ''destination''
 color). This function sets both the RGB blend equation and the alpha
@@ -1084,45 +1055,43 @@ the various blend factors.
 
 In the equations that follow, source and destination color components
 are referred to as
-@math{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})}
-and
-@math{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})},
+@r{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})} and
+@r{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})},
 respectively. The result color is referred to as
-@math{(@var{R}_@var{r},@var{G}_@var{r}@var{B}_@var{r}@var{A}_@var{r})}.
-The source and destination blend factors are denoted
-@math{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})}
-and
-@math{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})},
+@r{(@var{R}_@var{r},@var{G}_@var{r}@var{B}_@var{r}@var{A}_@var{r})}. The
+source and destination blend factors are denoted
+@r{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})} and
+@r{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})},
 respectively. For these equations all color components are understood to
-have values in the range @math{[0,1]}.
+have values in the range @r{[0,1]}.
 
 @table @asis
 @item @strong{Mode}
 @strong{RGB Components}, @strong{Alpha Component}
 
 @item @code{GL_FUNC_ADD}
-@math{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R}}@math{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G}}@math{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R}}@r{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G}}@r{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A}}
 
 @item @code{GL_FUNC_SUBTRACT}
-@math{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}-@var{R}_@var{d}⁢@var{d}_@var{R}}@math{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}-@var{G}_@var{d}⁢@var{d}_@var{G}}@math{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}-@var{B}_@var{d}⁢@var{d}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}-@var{A}_@var{d}⁢@var{d}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{s}⁢@var{s}_@var{R}-@var{R}_@var{d}⁢@var{d}_@var{R}}@r{@var{Gr}=@var{G}_@var{s}⁢@var{s}_@var{G}-@var{G}_@var{d}⁢@var{d}_@var{G}}@r{@var{Br}=@var{B}_@var{s}⁢@var{s}_@var{B}-@var{B}_@var{d}⁢@var{d}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{s}⁢@var{s}_@var{A}-@var{A}_@var{d}⁢@var{d}_@var{A}}
 
 @item @code{GL_FUNC_REVERSE_SUBTRACT}
-@math{@var{Rr}=@var{R}_@var{d}⁢@var{d}_@var{R}-@var{R}_@var{s}⁢@var{s}_@var{R}}@math{@var{Gr}=@var{G}_@var{d}⁢@var{d}_@var{G}-@var{G}_@var{s}⁢@var{s}_@var{G}}@math{@var{Br}=@var{B}_@var{d}⁢@var{d}_@var{B}-@var{B}_@var{s}⁢@var{s}_@var{B}},
-@math{@var{Ar}=@var{A}_@var{d}⁢@var{d}_@var{A}-@var{A}_@var{s}⁢@var{s}_@var{A}}
+@r{@var{Rr}=@var{R}_@var{d}⁢@var{d}_@var{R}-@var{R}_@var{s}⁢@var{s}_@var{R}}@r{@var{Gr}=@var{G}_@var{d}⁢@var{d}_@var{G}-@var{G}_@var{s}⁢@var{s}_@var{G}}@r{@var{Br}=@var{B}_@var{d}⁢@var{d}_@var{B}-@var{B}_@var{s}⁢@var{s}_@var{B}},
+@r{@var{Ar}=@var{A}_@var{d}⁢@var{d}_@var{A}-@var{A}_@var{s}⁢@var{s}_@var{A}}
 
 @item @code{GL_MIN}
-@math{@var{Rr}=@var{min}⁡(@var{R}_@var{s},@var{R}_@var{d})}@math{@var{Gr}=@var{min}⁡(@var{G}_@var{s},@var{G}_@var{d})}@math{@var{Br}=@var{min}⁡(@var{B}_@var{s},@var{B}_@var{d})},
-@math{@var{Ar}=@var{min}⁡(@var{A}_@var{s},@var{A}_@var{d})}
+@r{@var{Rr}=@var{min}⁡(@var{R}_@var{s},@var{R}_@var{d})}@r{@var{Gr}=@var{min}⁡(@var{G}_@var{s},@var{G}_@var{d})}@r{@var{Br}=@var{min}⁡(@var{B}_@var{s},@var{B}_@var{d})},
+@r{@var{Ar}=@var{min}⁡(@var{A}_@var{s},@var{A}_@var{d})}
 
 @item @code{GL_MAX}
-@math{@var{Rr}=@var{max}⁡(@var{R}_@var{s},@var{R}_@var{d})}@math{@var{Gr}=@var{max}⁡(@var{G}_@var{s},@var{G}_@var{d})}@math{@var{Br}=@var{max}⁡(@var{B}_@var{s},@var{B}_@var{d})},
-@math{@var{Ar}=@var{max}⁡(@var{A}_@var{s},@var{A}_@var{d})}
+@r{@var{Rr}=@var{max}⁡(@var{R}_@var{s},@var{R}_@var{d})}@r{@var{Gr}=@var{max}⁡(@var{G}_@var{s},@var{G}_@var{d})}@r{@var{Br}=@var{max}⁡(@var{B}_@var{s},@var{B}_@var{d})},
+@r{@var{Ar}=@var{max}⁡(@var{A}_@var{s},@var{A}_@var{d})}
 
 @end table
 
-The results of these equations are clamped to the range @math{[0,1]}.
+The results of these equations are clamped to the range @r{[0,1]}.
 
 The @code{GL_MIN} and @code{GL_MAX} equations are useful for
 applications that analyze image data (image thresholding against a
@@ -1134,7 +1103,6 @@ set to @code{GL_FUNC_ADD}.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not one of
 @code{GL_FUNC_ADD}, @code{GL_FUNC_SUBTRACT},
 @code{GL_FUNC_REVERSE_SUBTRACT}, @code{GL_MAX}, or @code{GL_MIN}.
@@ -1143,11 +1111,11 @@ set to @code{GL_FUNC_ADD}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBlendFuncSeparate srcRGB dstRGB srcAlpha dstAlpha
+Specify pixel arithmetic for RGB and alpha components separately.
 
-@defun glBlendFuncSeparate 
-@heading specify pixel arithmetic for RGB and alpha components separately
-@heading Parameters
 @table @asis
 @item @var{srcRGB}
 Specifies how the red, green, and blue blending factors are computed.
@@ -1182,7 +1150,6 @@ value is @code{GL_ZERO}.
 
 @end table
 
-@heading Description
 In RGBA mode, pixels can be drawn using a function that blends the
 incoming (source) RGBA values with the RGBA values that are already in
 the frame buffer (the destination values). Blending is initially
@@ -1201,26 +1168,23 @@ for red, green, blue, and alpha.
 
 In the table and in subsequent equations, source and destination color
 components are referred to as
-@math{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})}
-and
-@math{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})}.
-The color specified by @code{glBlendColor} is referred to as
-@math{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}.
+@r{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})} and
+@r{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})}. The
+color specified by @code{glBlendColor} is referred to as
+@r{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}.
 They are understood to have integer values between 0 and
-@math{(@var{k}_@var{R},@var{k}_@var{G}@var{k}_@var{B}@var{k}_@var{A})},
+@r{(@var{k}_@var{R},@var{k}_@var{G}@var{k}_@var{B}@var{k}_@var{A})},
 where
 
-@math{@var{k}_@var{c}=2^@var{m}_@var{c},-1}
+@r{@var{k}_@var{c}=2^@var{m}_@var{c},-1}
 
-and
-@math{(@var{m}_@var{R},@var{m}_@var{G}@var{m}_@var{B}@var{m}_@var{A})}
+and @r{(@var{m}_@var{R},@var{m}_@var{G}@var{m}_@var{B}@var{m}_@var{A})}
 is the number of red, green, blue, and alpha bitplanes.
 
 Source and destination scale factors are referred to as
-@math{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})}
-and
-@math{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})}.
-All scale factors have range @math{[0,1]}.
+@r{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})} and
+@r{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})}. All
+scale factors have range @r{[0,1]}.
 
 
 
@@ -1229,72 +1193,72 @@ All scale factors have range @math{[0,1]}.
 @strong{RGB Factor}, @strong{Alpha Factor}
 
 @item @code{GL_ZERO}
-@math{(0,00)}, @math{0}
+@r{(0,00)}, @r{0}
 
 @item @code{GL_ONE}
-@math{(1,11)}, @math{1}
+@r{(1,11)}, @r{1}
 
 @item @code{GL_SRC_COLOR}
-@math{(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B})},
-@math{@var{A}_@var{s}/@var{k}_@var{A}}
+@r{(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B})},
+@r{@var{A}_@var{s}/@var{k}_@var{A}}
 
 @item @code{GL_ONE_MINUS_SRC_COLOR}
-@math{(1,111)-(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B})},
-@math{1-@var{A}_@var{s}/@var{k}_@var{A}}
+@r{(1,111)-(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B})},
+@r{1-@var{A}_@var{s}/@var{k}_@var{A}}
 
 @item @code{GL_DST_COLOR}
-@math{(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B})},
-@math{@var{A}_@var{d}/@var{k}_@var{A}}
+@r{(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B})},
+@r{@var{A}_@var{d}/@var{k}_@var{A}}
 
 @item @code{GL_ONE_MINUS_DST_COLOR}
-@math{(1,11)-(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B})},
-@math{1-@var{A}_@var{d}/@var{k}_@var{A}}
+@r{(1,11)-(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B})},
+@r{1-@var{A}_@var{d}/@var{k}_@var{A}}
 
 @item @code{GL_SRC_ALPHA}
-@math{(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})},
-@math{@var{A}_@var{s}/@var{k}_@var{A}}
+@r{(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})},
+@r{@var{A}_@var{s}/@var{k}_@var{A}}
 
 @item @code{GL_ONE_MINUS_SRC_ALPHA}
-@math{(1,11)-(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})},
-@math{1-@var{A}_@var{s}/@var{k}_@var{A}}
+@r{(1,11)-(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})},
+@r{1-@var{A}_@var{s}/@var{k}_@var{A}}
 
 @item @code{GL_DST_ALPHA}
-@math{(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})},
-@math{@var{A}_@var{d}/@var{k}_@var{A}}
+@r{(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})},
+@r{@var{A}_@var{d}/@var{k}_@var{A}}
 
 @item @code{GL_ONE_MINUS_DST_ALPHA}
-@math{(1,11)-(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})},
-@math{1-@var{A}_@var{d}/@var{k}_@var{A}}
+@r{(1,11)-(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})},
+@r{1-@var{A}_@var{d}/@var{k}_@var{A}}
 
 @item @code{GL_CONSTANT_COLOR}
-@math{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c})},
-@math{@var{A}_@var{c}}
+@r{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c})},
+@r{@var{A}_@var{c}}
 
 @item @code{GL_ONE_MINUS_CONSTANT_COLOR}
-@math{(1,11)-(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c})},
-@math{1-@var{A}_@var{c}}
+@r{(1,11)-(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c})},
+@r{1-@var{A}_@var{c}}
 
 @item @code{GL_CONSTANT_ALPHA}
-@math{(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c})},
-@math{@var{A}_@var{c}}
+@r{(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c})},
+@r{@var{A}_@var{c}}
 
 @item @code{GL_ONE_MINUS_CONSTANT_ALPHA}
-@math{(1,11)-(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c})},
-@math{1-@var{A}_@var{c}}
+@r{(1,11)-(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c})},
+@r{1-@var{A}_@var{c}}
 
 @item @code{GL_SRC_ALPHA_SATURATE}
-@math{(@var{i},@var{i}@var{i})}, @math{1}
+@r{(@var{i},@var{i}@var{i})}, @r{1}
 
 @end table
 
 In the table,
 
-@math{@var{i}=@var{min}⁡(@var{A}_@var{s},1-@var{A}_@var{d},)}
+@r{@var{i}=@var{min}⁡(@var{A}_@var{s},1-@var{A}_@var{d},)}
 
 To determine the blended RGBA values of a pixel when drawing in RGBA
 mode, the system uses the following equations:
 
-@math{@var{R}_@var{d}=@var{min}⁡(@var{k}_@var{R},@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R})}@math{@var{G}_@var{d}=@var{min}⁡(@var{k}_@var{G},@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G})}@math{@var{B}_@var{d}=@var{min}⁡(@var{k}_@var{B},@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B})}@math{@var{A}_@var{d}=@var{min}⁡(@var{k}_@var{A},@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A})}
+@r{@var{R}_@var{d}=@var{min}⁡(@var{k}_@var{R},@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R})}@r{@var{G}_@var{d}=@var{min}⁡(@var{k}_@var{G},@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G})}@r{@var{B}_@var{d}=@var{min}⁡(@var{k}_@var{B},@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B})}@r{@var{A}_@var{d}=@var{min}⁡(@var{k}_@var{A},@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A})}
 
 Despite the apparent precision of the above equations, blending
 arithmetic is not exactly specified, because blending operates with
@@ -1302,14 +1266,13 @@ imprecise integer color values. However, a blend factor that should be
 equal to 1 is guaranteed not to modify its multiplicand, and a blend
 factor equal to 0 reduces its multiplicand to 0. For example, when
 @var{srcRGB} is @code{GL_SRC_ALPHA}, @var{dstRGB} is
-@code{GL_ONE_MINUS_SRC_ALPHA}, and @math{@var{A}_@var{s}} is equal to
-@math{@var{k}_@var{A}}, the equations reduce to simple replacement:
+@code{GL_ONE_MINUS_SRC_ALPHA}, and @r{@var{A}_@var{s}} is equal to
+@r{@var{k}_@var{A}}, the equations reduce to simple replacement:
 
-@math{@var{R}_@var{d}=@var{R}_@var{s}}@math{@var{G}_@var{d}=@var{G}_@var{s}}@math{@var{B}_@var{d}=@var{B}_@var{s}}@math{@var{A}_@var{d}=@var{A}_@var{s}}
+@r{@var{R}_@var{d}=@var{R}_@var{s}}@r{@var{G}_@var{d}=@var{G}_@var{s}}@r{@var{B}_@var{d}=@var{B}_@var{s}}@r{@var{A}_@var{d}=@var{A}_@var{s}}
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{srcRGB} or
 @var{dstRGB} is not an accepted value.
 
@@ -1317,11 +1280,11 @@ factor equal to 0 reduces its multiplicand to 0. For example, when
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBlendFunc sfactor dfactor
+Specify pixel arithmetic.
 
-@defun glBlendFunc 
-@heading specify pixel arithmetic
-@heading Parameters
 @table @asis
 @item @var{sfactor}
 Specifies how the red, green, blue, and alpha source blending factors
@@ -1348,7 +1311,6 @@ factors are computed. The following symbolic constants are accepted:
 
 @end table
 
-@heading Description
 In RGBA mode, pixels can be drawn using a function that blends the
 incoming (source) RGBA values with the RGBA values that are already in
 the frame buffer (the destination values). Blending is initially
@@ -1362,91 +1324,88 @@ destination color components. The possible methods are described in the
 following table. Each method defines four scale factors, one each for
 red, green, blue, and alpha. In the table and in subsequent equations,
 source and destination color components are referred to as
-@math{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})}
-and
-@math{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})}.
-The color specified by @code{glBlendColor} is referred to as
-@math{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}.
+@r{(@var{R}_@var{s},@var{G}_@var{s}@var{B}_@var{s}@var{A}_@var{s})} and
+@r{(@var{R}_@var{d},@var{G}_@var{d}@var{B}_@var{d}@var{A}_@var{d})}. The
+color specified by @code{glBlendColor} is referred to as
+@r{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}.
 They are understood to have integer values between 0 and
-@math{(@var{k}_@var{R},@var{k}_@var{G}@var{k}_@var{B}@var{k}_@var{A})},
+@r{(@var{k}_@var{R},@var{k}_@var{G}@var{k}_@var{B}@var{k}_@var{A})},
 where
 
-@math{@var{k}_@var{c}=2^@var{m}_@var{c},-1}
+@r{@var{k}_@var{c}=2^@var{m}_@var{c},-1}
 
-and
-@math{(@var{m}_@var{R},@var{m}_@var{G}@var{m}_@var{B}@var{m}_@var{A})}
+and @r{(@var{m}_@var{R},@var{m}_@var{G}@var{m}_@var{B}@var{m}_@var{A})}
 is the number of red, green, blue, and alpha bitplanes.
 
 Source and destination scale factors are referred to as
-@math{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})}
-and
-@math{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})}.
-The scale factors described in the table, denoted
-@math{(@var{f}_@var{R},@var{f}_@var{G}@var{f}_@var{B}@var{f}_@var{A})},
+@r{(@var{s}_@var{R},@var{s}_@var{G}@var{s}_@var{B}@var{s}_@var{A})} and
+@r{(@var{d}_@var{R},@var{d}_@var{G}@var{d}_@var{B}@var{d}_@var{A})}. The
+scale factors described in the table, denoted
+@r{(@var{f}_@var{R},@var{f}_@var{G}@var{f}_@var{B}@var{f}_@var{A})},
 represent either source or destination factors. All scale factors have
-range @math{[0,1]}.
+range @r{[0,1]}.
 
 
 
 @table @asis
 @item @strong{Parameter}
-@strong{@math{(@var{f}_@var{R},@var{f}_@var{G}@var{f}_@var{B}@var{f}_@var{A})}}
+@strong{@r{(@var{f}_@var{R},@var{f}_@var{G}@var{f}_@var{B}@var{f}_@var{A})}}
 
 @item @code{GL_ZERO}
-@math{(0,000)}
+@r{(0,000)}
 
 @item @code{GL_ONE}
-@math{(1,111)}
+@r{(1,111)}
 
 @item @code{GL_SRC_COLOR}
-@math{(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B}@var{A}_@var{s}/@var{k}_@var{A})}
+@r{(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B}@var{A}_@var{s}/@var{k}_@var{A})}
 
 @item @code{GL_ONE_MINUS_SRC_COLOR}
-@math{(1,111)-(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B}@var{A}_@var{s}/@var{k}_@var{A})}
+@r{(1,111)-(@var{R}_@var{s}/@var{k}_@var{R},@var{G}_@var{s}/@var{k}_@var{G}@var{B}_@var{s}/@var{k}_@var{B}@var{A}_@var{s}/@var{k}_@var{A})}
 
 @item @code{GL_DST_COLOR}
-@math{(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B}@var{A}_@var{d}/@var{k}_@var{A})}
+@r{(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B}@var{A}_@var{d}/@var{k}_@var{A})}
 
 @item @code{GL_ONE_MINUS_DST_COLOR}
-@math{(1,111)-(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B}@var{A}_@var{d}/@var{k}_@var{A})}
+@r{(1,111)-(@var{R}_@var{d}/@var{k}_@var{R},@var{G}_@var{d}/@var{k}_@var{G}@var{B}_@var{d}/@var{k}_@var{B}@var{A}_@var{d}/@var{k}_@var{A})}
 
 @item @code{GL_SRC_ALPHA}
-@math{(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})}
+@r{(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})}
 
 @item @code{GL_ONE_MINUS_SRC_ALPHA}
-@math{(1,111)-(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})}
+@r{(1,111)-(@var{A}_@var{s}/@var{k}_@var{A},@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A}@var{A}_@var{s}/@var{k}_@var{A})}
 
 @item @code{GL_DST_ALPHA}
-@math{(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})}
+@r{(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})}
 
 @item @code{GL_ONE_MINUS_DST_ALPHA}
-@math{(1,111)-(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})}
+@r{(1,111)-(@var{A}_@var{d}/@var{k}_@var{A},@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A}@var{A}_@var{d}/@var{k}_@var{A})}
 
 @item @code{GL_CONSTANT_COLOR}
-@math{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}
+@r{(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}
 
 @item @code{GL_ONE_MINUS_CONSTANT_COLOR}
-@math{(1,111)-(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}
+@r{(1,111)-(@var{R}_@var{c},@var{G}_@var{c}@var{B}_@var{c}@var{A}_@var{c})}
 
 @item @code{GL_CONSTANT_ALPHA}
-@math{(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c}@var{A}_@var{c})}
+@r{(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c}@var{A}_@var{c})}
 
 @item @code{GL_ONE_MINUS_CONSTANT_ALPHA}
-@math{(1,111)-(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c}@var{A}_@var{c})}
+@r{(1,111)-(@var{A}_@var{c},@var{A}_@var{c}@var{A}_@var{c}@var{A}_@var{c})}
 
 @item @code{GL_SRC_ALPHA_SATURATE}
-@math{(@var{i},@var{i}@var{i}1)}
+@r{(@var{i},@var{i}@var{i}1)}
 
 @end table
 
 In the table,
 
-@math{@var{i}=@var{min}⁡(@var{A}_@var{s},@var{k}_@var{A}-@var{A}_@var{d})/@var{k}_@var{A}}
+@r{@var{i}=@var{min}⁡(@var{A}_@var{s},@var{k}_@var{A}-@var{A}_@var{d})/@var{k}_@var{A}}
 
 To determine the blended RGBA values of a pixel when drawing in RGBA
 mode, the system uses the following equations:
 
-@math{@var{R}_@var{d}=@var{min}⁡(@var{k}_@var{R},@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R})}@math{@var{G}_@var{d}=@var{min}⁡(@var{k}_@var{G},@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G})}@math{@var{B}_@var{d}=@var{min}⁡(@var{k}_@var{B},@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B})}@math{@var{A}_@var{d}=@var{min}⁡(@var{k}_@var{A},@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A})}
+@r{@var{R}_@var{d}=@var{min}⁡(@var{k}_@var{R},@var{R}_@var{s}⁢@var{s}_@var{R}+@var{R}_@var{d}⁢@var{d}_@var{R})}@r{@var{G}_@var{d}=@var{min}⁡(@var{k}_@var{G},@var{G}_@var{s}⁢@var{s}_@var{G}+@var{G}_@var{d}⁢@var{d}_@var{G})}@r{@var{B}_@var{d}=@var{min}⁡(@var{k}_@var{B},@var{B}_@var{s}⁢@var{s}_@var{B}+@var{B}_@var{d}⁢@var{d}_@var{B})}@r{@var{A}_@var{d}=@var{min}⁡(@var{k}_@var{A},@var{A}_@var{s}⁢@var{s}_@var{A}+@var{A}_@var{d}⁢@var{d}_@var{A})}
 
 Despite the apparent precision of the above equations, blending
 arithmetic is not exactly specified, because blending operates with
@@ -1454,14 +1413,13 @@ imprecise integer color values. However, a blend factor that should be
 equal to 1 is guaranteed not to modify its multiplicand, and a blend
 factor equal to 0 reduces its multiplicand to 0. For example, when
 @var{sfactor} is @code{GL_SRC_ALPHA}, @var{dfactor} is
-@code{GL_ONE_MINUS_SRC_ALPHA}, and @math{@var{A}_@var{s}} is equal to
-@math{@var{k}_@var{A}}, the equations reduce to simple replacement:
+@code{GL_ONE_MINUS_SRC_ALPHA}, and @r{@var{A}_@var{s}} is equal to
+@r{@var{k}_@var{A}}, the equations reduce to simple replacement:
 
-@math{@var{R}_@var{d}=@var{R}_@var{s}}@math{@var{G}_@var{d}=@var{G}_@var{s}}@math{@var{B}_@var{d}=@var{B}_@var{s}}@math{@var{A}_@var{d}=@var{A}_@var{s}}
+@r{@var{R}_@var{d}=@var{R}_@var{s}}@r{@var{G}_@var{d}=@var{G}_@var{s}}@r{@var{B}_@var{d}=@var{B}_@var{s}}@r{@var{A}_@var{d}=@var{A}_@var{s}}
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{sfactor} or
 @var{dfactor} is not an accepted value.
 
@@ -1469,11 +1427,11 @@ factor equal to 0 reduces its multiplicand to 0. For example, when
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBufferData target size data usage
+Creates and initializes a buffer object's data store.
 
-@defun glBufferData 
-@heading creates and initializes a buffer object's data store
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object. The symbolic constant must be
@@ -1496,7 +1454,6 @@ or @code{GL_DYNAMIC_COPY}.
 
 @end table
 
-@heading Description
 @code{glBufferData} creates a new data store for the buffer object
 currently bound to @var{target}. Any pre-existing data store is deleted.
 The new data store is created with the specified @var{size} in bytes and
@@ -1543,7 +1500,6 @@ used as the source for GL drawing and image specification commands.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_ARRAY_BUFFER}, @code{GL_ELEMENT_ARRAY_BUFFER},
 @code{GL_PIXEL_PACK_BUFFER}, or @code{GL_PIXEL_UNPACK_BUFFER}.
@@ -1566,11 +1522,11 @@ data store with the specified @var{size}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glBufferSubData target offset size data
+Updates a subset of a buffer object's data store.
 
-@defun glBufferSubData 
-@heading updates a subset of a buffer object's data store
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object. The symbolic constant must be
@@ -1590,7 +1546,6 @@ store.
 
 @end table
 
-@heading Description
 @code{glBufferSubData} redefines some or all of the data store for the
 buffer object currently bound to @var{target}. Data starting at byte
 offset @var{offset} and extending for @var{size} bytes is copied to the
@@ -1598,7 +1553,6 @@ data store from the memory pointed to by @var{data}. An error is thrown
 if @var{offset} and @var{size} together define a range beyond the bounds
 of the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_ARRAY_BUFFER}, @code{GL_ELEMENT_ARRAY_BUFFER},
 @code{GL_PIXEL_PACK_BUFFER}, or @code{GL_PIXEL_UNPACK_BUFFER}.
@@ -1617,11 +1571,11 @@ updated is mapped.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCallLists n type lists
+Execute a list of display lists.
 
-@defun glCallLists 
-@heading execute a list of display lists
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of display lists to be executed.
@@ -1640,7 +1594,6 @@ or floats, depending on the value of @var{type}.
 
 @end table
 
-@heading Description
 @code{glCallLists} causes each display list in the list of names passed
 as @var{lists} to be executed. As a result, the commands saved in each
 display list are executed in order, just as if they were called without
@@ -1654,7 +1607,7 @@ be accepted. The formats are as follows:
 @table @asis
 @item @code{GL_BYTE}
 @var{lists} is treated as an array of signed bytes, each in the range
-@math{-128} through 127.
+@r{-128} through 127.
 
 @item @code{GL_UNSIGNED_BYTE}
 @var{lists} is treated as an array of unsigned bytes, each in the range
@@ -1662,7 +1615,7 @@ be accepted. The formats are as follows:
 
 @item @code{GL_SHORT}
 @var{lists} is treated as an array of signed two-byte integers, each in
-the range @math{-32768} through 32767.
+the range @r{-32768} through 32767.
 
 @item @code{GL_UNSIGNED_SHORT}
 @var{lists} is treated as an array of unsigned two-byte integers, each
@@ -1720,7 +1673,6 @@ remain after execution is completed. Use @code{glPushAttrib},
 @code{glPopAttrib}, @code{glPushMatrix}, and @code{glPopMatrix} to
 preserve GL state across @code{glCallLists} calls.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_ENUM} is generated if @var{type} is not one of
@@ -1729,18 +1681,17 @@ preserve GL state across @code{glCallLists} calls.
 @code{GL_FLOAT}, @code{GL_2_BYTES}, @code{GL_3_BYTES},
 @code{GL_4_BYTES}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCallList list
+Execute a display list.
 
-@defun glCallList 
-@heading execute a display list
-@heading Parameters
 @table @asis
 @item @var{list}
 Specifies the integer name of the display list to be executed.
 
 @end table
 
-@heading Description
 @code{glCallList} causes the named display list to be executed. The
 commands saved in the display list are executed in order, just as if
 they were called without using a display list. If @var{list} has not
@@ -1758,11 +1709,11 @@ remain after execution of the display list is completed. Use
 @code{glPushAttrib}, @code{glPopAttrib}, @code{glPushMatrix}, and
 @code{glPopMatrix} to preserve GL state across @code{glCallList} calls.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClearAccum red green blue alpha
+Specify clear values for the accumulation buffer.
 
-@defun glClearAccum 
-@heading specify clear values for the accumulation buffer
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -1773,23 +1724,21 @@ accumulation buffer is cleared. The initial values are all 0.
 
 @end table
 
-@heading Description
 @code{glClearAccum} specifies the red, green, blue, and alpha values
 used by @code{glClear} to clear the accumulation buffer.
 
 Values specified by @code{glClearAccum} are clamped to the range
-@math{[-1,1]}.
+@r{[-1,1]}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glClearAccum} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClearColor red green blue alpha
+Specify clear values for the color buffers.
 
-@defun glClearColor 
-@heading specify clear values for the color buffers
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -1800,21 +1749,19 @@ buffers are cleared. The initial values are all 0.
 
 @end table
 
-@heading Description
 @code{glClearColor} specifies the red, green, blue, and alpha values
 used by @code{glClear} to clear the color buffers. Values specified by
-@code{glClearColor} are clamped to the range @math{[0,1]}.
+@code{glClearColor} are clamped to the range @r{[0,1]}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glClearColor} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClearDepth depth
+Specify the clear value for the depth buffer.
 
-@defun glClearDepth 
-@heading specify the clear value for the depth buffer
-@heading Parameters
 @table @asis
 @item @var{depth}
 Specifies the depth value used when the depth buffer is cleared. The
@@ -1822,21 +1769,19 @@ initial value is 1.
 
 @end table
 
-@heading Description
 @code{glClearDepth} specifies the depth value used by @code{glClear} to
 clear the depth buffer. Values specified by @code{glClearDepth} are
-clamped to the range @math{[0,1]}.
+clamped to the range @r{[0,1]}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glClearDepth} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClearIndex c
+Specify the clear value for the color index buffers.
 
-@defun glClearIndex 
-@heading specify the clear value for the color index buffers
-@heading Parameters
 @table @asis
 @item @var{c}
 Specifies the index used when the color index buffers are cleared. The
@@ -1844,24 +1789,22 @@ initial value is 0.
 
 @end table
 
-@heading Description
 @code{glClearIndex} specifies the index used by @code{glClear} to clear
 the color index buffers. @var{c} is not clamped. Rather, @var{c} is
 converted to a fixed-point value with unspecified precision to the right
 of the binary point. The integer part of this value is then masked with
-@math{2^@var{m}-1}, where @math{@var{m}} is the number of bits in a
-color index stored in the frame buffer.
+@r{2^@var{m}-1}, where @r{@var{m}} is the number of bits in a color
+index stored in the frame buffer.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glClearIndex} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClearStencil s
+Specify the clear value for the stencil buffer.
 
-@defun glClearStencil 
-@heading specify the clear value for the stencil buffer
-@heading Parameters
 @table @asis
 @item @var{s}
 Specifies the index used when the stencil buffer is cleared. The initial
@@ -1869,21 +1812,19 @@ value is 0.
 
 @end table
 
-@heading Description
 @code{glClearStencil} specifies the index used by @code{glClear} to
-clear the stencil buffer. @var{s} is masked with @math{2^@var{m}-1},
-where @math{@var{m}} is the number of bits in the stencil buffer.
+clear the stencil buffer. @var{s} is masked with @r{2^@var{m}-1}, where
+@r{@var{m}} is the number of bits in the stencil buffer.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glClearStencil} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClear mask
+Clear buffers to preset values.
 
-@defun glClear 
-@heading clear buffers to preset values
-@heading Parameters
 @table @asis
 @item @var{mask}
 Bitwise OR of masks that indicate the buffers to be cleared. The four
@@ -1892,7 +1833,6 @@ masks are @code{GL_COLOR_BUFFER_BIT}, @code{GL_DEPTH_BUFFER_BIT},
 
 @end table
 
-@heading Description
 @code{glClear} sets the bitplane area of the window to values previously
 selected by @code{glClearColor}, @code{glClearIndex},
 @code{glClearDepth}, @code{glClearStencil}, and @code{glClearAccum}.
@@ -1928,7 +1868,6 @@ Indicates the stencil buffer.
 The value to which each buffer is cleared depends on the setting of the
 clear value for that buffer.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if any bit other than the four
 defined bits is set in @var{mask}.
 
@@ -1936,43 +1875,41 @@ defined bits is set in @var{mask}.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClientActiveTexture texture
+Select active texture unit.
 
-@defun glClientActiveTexture 
-@heading select active texture unit
-@heading Parameters
 @table @asis
 @item @var{texture}
 Specifies which texture unit to make active. The number of texture units
 is implementation dependent, but must be at least two. @var{texture}
-must be one of @code{GL_TEXTURE}@math{@var{i}}, where i ranges from 0 to
+must be one of @code{GL_TEXTURE}@r{@var{i}}, where i ranges from 0 to
 the value of @code{GL_MAX_TEXTURE_COORDS} - 1, which is an
 implementation-dependent value. The initial value is @code{GL_TEXTURE0}.
 
 @end table
 
-@heading Description
 @code{glClientActiveTexture} selects the vertex array client state
 parameters to be modified by @code{glTexCoordPointer}, and enabled or
 disabled with @code{glEnableClientState} or @code{glDisableClientState},
 respectively, when called with a parameter of
 @code{GL_TEXTURE_COORD_ARRAY}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{texture} is not one of
-@code{GL_TEXTURE}@math{@var{i}}, where i ranges from 0 to the value of
+@code{GL_TEXTURE}@r{@var{i}}, where i ranges from 0 to the value of
 @code{GL_MAX_TEXTURE_COORDS} - 1.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glClipPlane plane equation
+Specify a plane against which all geometry is clipped.
 
-@defun glClipPlane 
-@heading specify a plane against which all geometry is clipped
-@heading Parameters
 @table @asis
 @item @var{plane}
 Specifies which clipping plane is being positioned. Symbolic names of
 the form @code{GL_CLIP_PLANE}@var{i}, where @var{i} is an integer
-between 0 and @code{GL_MAX_CLIP_PLANES}@math{-1}, are accepted.
+between 0 and @code{GL_MAX_CLIP_PLANES}@r{-1}, are accepted.
 
 @item @var{equation}
 Specifies the address of an array of four double-precision
@@ -1980,7 +1917,6 @@ floating-point values. These values are interpreted as a plane equation.
 
 @end table
 
-@heading Description
 Geometry is always clipped against the boundaries of a six-plane frustum
 in @var{x}, @var{y}, and @var{z}. @code{glClipPlane} allows the
 specification of additional planes, not necessarily perpendicular to the
@@ -2007,7 +1943,6 @@ To enable and disable clipping planes, call @code{glEnable} and
 All clipping planes are initially defined as (0, 0, 0, 0) in eye
 coordinates and are disabled.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{plane} is not an accepted
 value.
 
@@ -2015,11 +1950,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorMask red green blue alpha
+Enable and disable writing of frame buffer color components.
 
-@defun glColorMask 
-@heading enable and disable writing of frame buffer color components
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -2031,7 +1966,6 @@ indicating that the color components can be written.
 
 @end table
 
-@heading Description
 @code{glColorMask} specifies whether the individual color components in
 the frame buffer can or cannot be written. If @var{red} is
 @code{GL_FALSE}, for example, no change is made to the red component of
@@ -2041,16 +1975,15 @@ operation attempted.
 Changes to individual bits of components cannot be controlled. Rather,
 changes are either enabled or disabled for entire color components.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glColorMask} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorMaterial face mode
+Cause a material color to track the current color.
 
-@defun glColorMaterial 
-@heading cause a material color to track the current color
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies whether front, back, or both front and back material
@@ -2067,7 +2000,6 @@ Accepted values are @code{GL_EMISSION}, @code{GL_AMBIENT},
 
 @end table
 
-@heading Description
 @code{glColorMaterial} specifies which material parameters track the
 current color. When @code{GL_COLOR_MATERIAL} is enabled, the material
 parameter or parameters specified by @var{mode}, of the material or
@@ -2077,7 +2009,6 @@ To enable and disable @code{GL_COLOR_MATERIAL}, call @code{glEnable} and
 @code{glDisable} with argument @code{GL_COLOR_MATERIAL}.
 @code{GL_COLOR_MATERIAL} is initially disabled.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{face} or @var{mode} is not
 an accepted value.
 
@@ -2085,11 +2016,11 @@ an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorPointer size type stride pointer
+Define an array of colors.
 
-@defun glColorPointer 
-@heading define an array of colors
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the number of components per color. Must be 3 or 4. The
@@ -2113,7 +2044,6 @@ the array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glColorPointer} specifies the location and data format of an array
 of color components to use when rendering. @var{size} specifies the
 number of components per color, and must be 3 or 4. @var{type} specifies
@@ -2141,7 +2071,6 @@ If enabled, the color array is used when @code{glDrawArrays},
 @code{glMultiDrawElements}, @code{glDrawRangeElements}, or
 @code{glArrayElement} is called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is not 3 or 4.
 
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
@@ -2149,11 +2078,11 @@ value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorSubTable target start count format type data
+Respecify a portion of a color table.
 
-@defun glColorSubTable 
-@heading respecify a portion of a color table
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be one of @code{GL_COLOR_TABLE},
@@ -2190,11 +2119,10 @@ replace the specified region of the color table.
 
 @end table
 
-@heading Description
 @code{glColorSubTable} is used to respecify a contiguous portion of a
 color table previously defined using @code{glColorTable}. The pixels
 referenced by @var{data} replace the portion of the existing table from
-indices @var{start} to @math{@var{start}+@var{count}-1}, inclusive. This
+indices @var{start} to @r{@var{start}+@var{count}-1}, inclusive. This
 region may not include any entries outside the range of the color table
 as it was originally specified. It is not an error to specify a
 subtexture with width of 0, but such a specification has no effect.
@@ -2204,7 +2132,6 @@ If a non-zero named buffer object is bound to the
 portion of a color table is respecified, @var{data} is treated as a byte
 offset into the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -2215,7 +2142,7 @@ allowable values.
 allowable values.
 
 @code{GL_INVALID_VALUE} is generated if
-@math{@var{start}+@var{count}>@var{width}}.
+@r{@var{start}+@var{count}>@var{width}}.
 
 @code{GL_INVALID_OPERATION} is generated if a non-zero buffer object
 name is bound to the @code{GL_PIXEL_UNPACK_BUFFER} target and the buffer
@@ -2235,11 +2162,12 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorTableParameterfv target pname params
+@deftypefunx void glColorTableParameteriv target pname params
+Set color lookup table parameters.
 
-@defun glColorTableParameter 
-@heading set color lookup table parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 The target color table. Must be @code{GL_COLOR_TABLE},
@@ -2255,7 +2183,6 @@ A pointer to an array where the values of the parameters are stored.
 
 @end table
 
-@heading Description
 @code{glColorTableParameter} is used to specify the scale factors and
 bias terms applied to color components when they are loaded into a color
 table. @var{target} indicates which color table the scale and bias terms
@@ -2275,7 +2202,6 @@ bias terms for red, green, blue, and alpha, in that order.
 The color tables themselves are specified by calling
 @code{glColorTable}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an acceptable value.
 
@@ -2283,11 +2209,11 @@ not an acceptable value.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColorTable target internalformat width format type data
+Define a color lookup table.
 
-@defun glColorTable 
-@heading define a color lookup table
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be one of @code{GL_COLOR_TABLE},
@@ -2339,7 +2265,6 @@ build the color table.
 
 @end table
 
-@heading Description
 @code{glColorTable} may be used in two ways: to test the actual size and
 color resolution of a lookup table given a particular set of parameters,
 or to load the contents of a color lookup table. Use the targets
@@ -2364,8 +2289,8 @@ for the table are then used to scale and bias the R, G, B, and A
 components of each pixel. (Use @code{glColorTableParameter} to set these
 scale and bias parameters.)
 
-Next, the R, G, B, and A values are clamped to the range @math{[0,1]}.
-Each pixel is then converted to the internal format specified by
+Next, the R, G, B, and A values are clamped to the range @r{[0,1]}. Each
+pixel is then converted to the internal format specified by
 @var{internalformat}. This conversion simply maps the component values
 of the pixel (R, G, B, and A) to the values included in the internal
 format (red, green, blue, alpha, luminance, and intensity). The mapping
@@ -2401,7 +2326,7 @@ R , G , B , A , ,
 Finally, the red, green, blue, alpha, luminance, and/or intensity
 components of the resulting pixels are stored in the color table. They
 form a one-dimensional table with indices in the range
-@math{[0,@var{width}-1]}.
+@r{[0,@var{width}-1]}.
 
 If @var{target} is @code{GL_PROXY_*}, @code{glColorTable} recomputes and
 stores the values of the proxy color table's state variables
@@ -2427,7 +2352,7 @@ contents are used to replace a subset of the components of each RGBA
 pixel group, based on the internal format of the table.
 
 Each pixel group has color components (R, G, B, A) that are in the range
-@math{[0.0,1.0]}. The color components are rescaled to the size of the
+@r{[0.0,1.0]}. The color components are rescaled to the size of the
 color lookup table to form an index. Then a subset of the components
 based on the internal format of the table are replaced by the table
 entry selected by that index. If the color components and contents of
@@ -2515,7 +2440,6 @@ color lookup table before being used by the histogram operation.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -2552,11 +2476,42 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glColor3b red green blue
+@deftypefunx void glColor3s red green blue
+@deftypefunx void glColor3i red green blue
+@deftypefunx void glColor3f red green blue
+@deftypefunx void glColor3d red green blue
+@deftypefunx void glColor3ub red green blue
+@deftypefunx void glColor3us red green blue
+@deftypefunx void glColor3ui red green blue
+@deftypefunx void glColor4b red green blue alpha
+@deftypefunx void glColor4s red green blue alpha
+@deftypefunx void glColor4i red green blue alpha
+@deftypefunx void glColor4f red green blue alpha
+@deftypefunx void glColor4d red green blue alpha
+@deftypefunx void glColor4ub red green blue alpha
+@deftypefunx void glColor4us red green blue alpha
+@deftypefunx void glColor4ui red green blue alpha
+@deftypefunx void glColor3bv v
+@deftypefunx void glColor3sv v
+@deftypefunx void glColor3iv v
+@deftypefunx void glColor3fv v
+@deftypefunx void glColor3dv v
+@deftypefunx void glColor3ubv v
+@deftypefunx void glColor3usv v
+@deftypefunx void glColor3uiv v
+@deftypefunx void glColor4bv v
+@deftypefunx void glColor4sv v
+@deftypefunx void glColor4iv v
+@deftypefunx void glColor4fv v
+@deftypefunx void glColor4dv v
+@deftypefunx void glColor4ubv v
+@deftypefunx void glColor4usv v
+@deftypefunx void glColor4uiv v
+Set the current color.
 
-@defun glColor 
-@heading set the current color
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -2569,7 +2524,6 @@ four-argument @code{glColor4} commands.
 
 @end table
 
-@heading Description
 The GL stores both a current single-valued color index and a current
 four-valued RGBA color. @code{glColor} sets a new four-valued RGBA
 color. @code{glColor} has two major variants: @code{glColor3} and
@@ -2590,27 +2544,25 @@ such that the largest representable value maps to 1.0 (full intensity),
 and 0 maps to 0.0 (zero intensity). Signed integer color components,
 when specified, are linearly mapped to floating-point values such that
 the most positive representable value maps to 1.0, and the most negative
-representable value maps to @math{-1.0}. (Note that this mapping does
-not convert 0 precisely to 0.0.) Floating-point values are mapped
-directly.
+representable value maps to @r{-1.0}. (Note that this mapping does not
+convert 0 precisely to 0.0.) Floating-point values are mapped directly.
 
 Neither floating-point nor signed integer values are clamped to the
-range @math{[0,1]} before the current color is updated. However, color
+range @r{[0,1]} before the current color is updated. However, color
 components are clamped to this range before they are interpolated or
 written into a color buffer.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompileShader shader
+Compiles a shader object.
 
-@defun glCompileShader 
-@heading Compiles a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the shader object to be compiled.
 
 @end table
 
-@heading Description
 @code{glCompileShader} compiles the source code strings that have been
 stored in the shader object specified by @var{shader}.
 
@@ -2626,7 +2578,6 @@ compilation was successful, information about the compilation can be
 obtained from the shader object's information log by calling
 @code{glGetShaderInfoLog}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -2637,11 +2588,11 @@ object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexImage1D target level internalformat width border imageSize data
+Specify a one-dimensional texture image in a compressed format.
 
-@defun glCompressedTexImage1D 
-@heading specify a one-dimensional texture image in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D} or
@@ -2658,9 +2609,9 @@ Specifies the format of the compressed image data stored at address
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support texture images that are at least 64 texels
-wide. The height of the 1D texture image is 1.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support texture images that are at least 64 texels wide.
+The height of the 1D texture image is 1.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -2674,7 +2625,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable one-dimensional texturing, call @code{glEnable} and
@@ -2705,7 +2655,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{internalformat} is one of
 the generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -2737,11 +2686,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexImage2D target level internalformat width height border imageSize data
+Specify a two-dimensional texture image in a compressed format.
 
-@defun glCompressedTexImage2D 
-@heading specify a two-dimensional texture image in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -2764,18 +2713,17 @@ Specifies the format of the compressed image data stored at address
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support 2D texture images that are at least 64
-texels wide and cube-mapped texture images that are at least 16 texels
-wide.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support 2D texture images that are at least 64 texels
+wide and cube-mapped texture images that are at least 16 texels wide.
 
 @item @var{height}
 Specifies the height of the texture image including the border if any.
 If the GL version does not support non-power-of-two sizes, this value
-must be Must be @math{2^@var{n}+2⁡(@var{border},)} for some integer
-@math{@var{n}}. All implementations support 2D texture images that are
-at least 64 texels high and cube-mapped texture images that are at least
-16 texels high.
+must be Must be @r{2^@var{n}+2⁡(@var{border},)} for some integer
+@r{@var{n}}. All implementations support 2D texture images that are at
+least 64 texels high and cube-mapped texture images that are at least 16
+texels high.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -2789,7 +2737,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable two-dimensional texturing, call @code{glEnable} and
@@ -2822,7 +2769,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{internalformat} is one of
 the generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -2854,11 +2800,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexImage3D target level internalformat width height depth border imageSize data
+Specify a three-dimensional texture image in a compressed format.
 
-@defun glCompressedTexImage3D 
-@heading specify a three-dimensional texture image in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_3D} or
@@ -2875,23 +2821,23 @@ Specifies the format of the compressed image data stored at address
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support 3D texture images that are at least 16
-texels wide.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support 3D texture images that are at least 16 texels
+wide.
 
 @item @var{height}
 Specifies the height of the texture image including the border if any.
 If the GL version does not support non-power-of-two sizes, this value
-must be @math{2^@var{n}+2⁡(@var{border},)} for some integer
-@math{@var{n}}. All implementations support 3D texture images that are
-at least 16 texels high.
+must be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}.
+All implementations support 3D texture images that are at least 16
+texels high.
 
 @item @var{depth}
 Specifies the depth of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support 3D texture images that are at least 16
-texels deep.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support 3D texture images that are at least 16 texels
+deep.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -2905,7 +2851,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable three-dimensional texturing, call @code{glEnable} and
@@ -2936,7 +2881,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{internalformat} is one of
 the generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -2968,11 +2912,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexSubImage1D target level xoffset width format imageSize data
+Specify a one-dimensional texture subimage in a compressed format.
 
-@defun glCompressedTexSubImage1D 
-@heading specify a one-dimensional texture subimage in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D}.
@@ -3000,7 +2944,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable one-dimensional texturing, call @code{glEnable} and
@@ -3009,7 +2952,7 @@ disable one-dimensional texturing, call @code{glEnable} and
 @code{glCompressedTexSubImage1D} redefines a contiguous subregion of an
 existing one-dimensional texture image. The texels referenced by
 @var{data} replace the portion of the existing texture array with x
-indices @var{xoffset} and @math{@var{xoffset}+@var{width}-1}, inclusive.
+indices @var{xoffset} and @r{@var{xoffset}+@var{width}-1}, inclusive.
 This region may not include any texels outside the range of the texture
 array as it was originally specified. It is not an error to specify a
 subtexture with width of 0, but such a specification has no effect.
@@ -3025,7 +2968,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} is one of these
 generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -3059,11 +3001,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexSubImage2D target level xoffset yoffset width height format imageSize data
+Specify a two-dimensional texture subimage in a compressed format.
 
-@defun glCompressedTexSubImage2D 
-@heading specify a two-dimensional texture subimage in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -3103,7 +3045,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable two-dimensional texturing, call @code{glEnable} and
@@ -3114,12 +3055,11 @@ disable texturing using cube-mapped texture, call @code{glEnable} and
 @code{glCompressedTexSubImage2D} redefines a contiguous subregion of an
 existing two-dimensional texture image. The texels referenced by
 @var{data} replace the portion of the existing texture array with x
-indices @var{xoffset} and @math{@var{xoffset}+@var{width}-1}, and the y
-indices @var{yoffset} and @math{@var{yoffset}+@var{height}-1},
-inclusive. This region may not include any texels outside the range of
-the texture array as it was originally specified. It is not an error to
-specify a subtexture with width of 0, but such a specification has no
-effect.
+indices @var{xoffset} and @r{@var{xoffset}+@var{width}-1}, and the y
+indices @var{yoffset} and @r{@var{yoffset}+@var{height}-1}, inclusive.
+This region may not include any texels outside the range of the texture
+array as it was originally specified. It is not an error to specify a
+subtexture with width of 0, but such a specification has no effect.
 
 @var{format} must be an extension-specified compressed-texture format.
 The @var{format} of the compressed texture image is selected by the GL
@@ -3132,7 +3072,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} is one of these
 generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -3166,11 +3105,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCompressedTexSubImage3D target level xoffset yoffset zoffset width height depth format imageSize data
+Specify a three-dimensional texture subimage in a compressed format.
 
-@defun glCompressedTexSubImage3D 
-@heading specify a three-dimensional texture subimage in a compressed format
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_3D}.
@@ -3207,7 +3146,6 @@ Specifies a pointer to the compressed image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable three-dimensional texturing, call @code{glEnable} and
@@ -3216,9 +3154,9 @@ disable three-dimensional texturing, call @code{glEnable} and
 @code{glCompressedTexSubImage3D} redefines a contiguous subregion of an
 existing three-dimensional texture image. The texels referenced by
 @var{data} replace the portion of the existing texture array with x
-indices @var{xoffset} and @math{@var{xoffset}+@var{width}-1}, and the y
-indices @var{yoffset} and @math{@var{yoffset}+@var{height}-1}, and the z
-indices @var{zoffset} and @math{@var{zoffset}+@var{depth}-1}, inclusive.
+indices @var{xoffset} and @r{@var{xoffset}+@var{width}-1}, and the y
+indices @var{yoffset} and @r{@var{yoffset}+@var{height}-1}, and the z
+indices @var{zoffset} and @r{@var{zoffset}+@var{depth}-1}, inclusive.
 This region may not include any texels outside the range of the texture
 array as it was originally specified. It is not an error to specify a
 subtexture with width of 0, but such a specification has no effect.
@@ -3234,7 +3172,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} is one of these
 generic compressed internal formats: @code{GL_COMPRESSED_ALPHA},
 @code{GL_COMPRESSED_LUMINANCE}, @code{GL_COMPRESSED_LUMINANCE_ALPHA},
@@ -3268,11 +3205,11 @@ Undefined results, including abnormal program termination, are generated
 if @var{data} is not encoded in a manner consistent with the extension
 specification defining the internal compression format.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glConvolutionFilter1D target internalformat width format type data
+Define a one-dimensional convolution filter.
 
-@defun glConvolutionFilter1D 
-@heading define a one-dimensional convolution filter
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_CONVOLUTION_1D}.
@@ -3319,7 +3256,6 @@ build the convolution filter kernel.
 
 @end table
 
-@heading Description
 @code{glConvolutionFilter1D} builds a one-dimensional convolution filter
 kernel from an array of pixels.
 
@@ -3391,7 +3327,6 @@ corresponding @code{GL_POST_CONVOLUTION_c_BIAS} parameters (where
 @var{c} takes on the values @strong{RED}, @strong{GREEN}, @strong{BLUE},
 and @strong{ALPHA}). These parameters are set by @code{glPixelTransfer}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_CONVOLUTION_1D}.
 
@@ -3440,11 +3375,11 @@ memory a datum indicated by @var{type}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glConvolutionFilter2D target internalformat width height format type data
+Define a two-dimensional convolution filter.
 
-@defun glConvolutionFilter2D 
-@heading define a two-dimensional convolution filter
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_CONVOLUTION_2D}.
@@ -3495,7 +3430,6 @@ build the convolution filter kernel.
 
 @end table
 
-@heading Description
 @code{glConvolutionFilter2D} builds a two-dimensional convolution filter
 kernel from an array of pixels.
 
@@ -3568,7 +3502,6 @@ corresponding @code{GL_POST_CONVOLUTION_c_BIAS} parameters (where
 @var{c} takes on the values @strong{RED}, @strong{GREEN}, @strong{BLUE},
 and @strong{ALPHA}). These parameters are set by @code{glPixelTransfer}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_CONVOLUTION_2D}.
 
@@ -3622,11 +3555,14 @@ memory a datum indicated by @var{type}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glConvolutionParameterf target pname params
+@deftypefunx void glConvolutionParameteri target pname params
+@deftypefunx void glConvolutionParameterfv target pname params
+@deftypefunx void glConvolutionParameteriv target pname params
+Set convolution parameters.
 
-@defun glConvolutionParameter 
-@heading set convolution parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 The target for the convolution parameter. Must be one of
@@ -3644,7 +3580,6 @@ The parameter value. Must be one of @code{GL_REDUCE},
 
 @end table
 
-@heading Description
 @code{glConvolutionParameter} sets the value of a convolution parameter.
 
 @var{target} selects the convolution filter to be affected:
@@ -3668,15 +3603,14 @@ convolution border mode. The accepted modes are:
 @table @asis
 @item @code{GL_REDUCE}
 The image resulting from convolution is smaller than the source image.
-If the filter width is @math{@var{Wf}} and height is @math{@var{Hf}},
-and the source image width is @math{@var{Ws}} and height is
-@math{@var{Hs}}, then the convolved image width will be
-@math{@var{Ws}-@var{Wf}+1} and height will be
-@math{@var{Hs}-@var{Hf}+1}. (If this reduction would generate an image
-with zero or negative width and/or height, the output is simply null,
-with no error generated.) The coordinates of the image resulting from
-convolution are zero through @math{@var{Ws}-@var{Wf}} in width and zero
-through @math{@var{Hs}-@var{Hf}} in height.
+If the filter width is @r{@var{Wf}} and height is @r{@var{Hf}}, and the
+source image width is @r{@var{Ws}} and height is @r{@var{Hs}}, then the
+convolved image width will be @r{@var{Ws}-@var{Wf}+1} and height will be
+@r{@var{Hs}-@var{Hf}+1}. (If this reduction would generate an image with
+zero or negative width and/or height, the output is simply null, with no
+error generated.) The coordinates of the image resulting from
+convolution are zero through @r{@var{Ws}-@var{Wf}} in width and zero
+through @r{@var{Hs}-@var{Hf}} in height.
 
 @item @code{GL_CONSTANT_BORDER}
 The image resulting from convolution is the same size as the source
@@ -3690,7 +3624,6 @@ source image were replicated.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -3706,11 +3639,11 @@ allowable values.
 @code{glConvolutionParameter} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyColorSubTable target start x y width
+Respecify a portion of a color table.
 
-@defun glCopyColorSubTable 
-@heading respecify a portion of a color table
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be one of @code{GL_COLOR_TABLE},
@@ -3730,16 +3663,14 @@ The number of table entries to replace.
 
 @end table
 
-@heading Description
 @code{glCopyColorSubTable} is used to respecify a contiguous portion of
 a color table previously defined using @code{glColorTable}. The pixels
 copied from the framebuffer replace the portion of the existing table
-from indices @var{start} to @math{@var{start}+@var{x}-1}, inclusive.
-This region may not include any entries outside the range of the color
-table, as was originally specified. It is not an error to specify a
-subtexture with width of 0, but such a specification has no effect.
+from indices @var{start} to @r{@var{start}+@var{x}-1}, inclusive. This
+region may not include any entries outside the range of the color table,
+as was originally specified. It is not an error to specify a subtexture
+with width of 0, but such a specification has no effect.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{target} is not a previously
 defined color table.
 
@@ -3747,17 +3678,17 @@ defined color table.
 allowable values.
 
 @code{GL_INVALID_VALUE} is generated if
-@math{@var{start}+@var{x}>@var{width}}.
+@r{@var{start}+@var{x}>@var{width}}.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glCopyColorSubTable}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyColorTable target internalformat x y width
+Copy pixels into a color table.
 
-@defun glCopyColorTable 
-@heading copy pixels into a color table
-@heading Parameters
 @table @asis
 @item @var{target}
 The color table target. Must be @code{GL_COLOR_TABLE},
@@ -3793,7 +3724,6 @@ The width of the pixel rectangle.
 
 @end table
 
-@heading Description
 @code{glCopyColorTable} loads a color table with pixels from the current
 @code{GL_READ_BUFFER} (rather than from main memory, as is the case for
 @code{glColorTable}).
@@ -3813,8 +3743,8 @@ for the table are then used to scale and bias the R, G, B, and A
 components of each pixel. The scale and bias parameters are set by
 calling @code{glColorTableParameter}.
 
-Next, the R, G, B, and A values are clamped to the range @math{[0,1]}.
-Each pixel is then converted to the internal format specified by
+Next, the R, G, B, and A values are clamped to the range @r{[0,1]}. Each
+pixel is then converted to the internal format specified by
 @var{internalformat}. This conversion simply maps the component values
 of the pixel (R, G, B, and A) to the values included in the internal
 format (red, green, blue, alpha, luminance, and intensity). The mapping
@@ -3850,11 +3780,10 @@ R , G , B , A , ,
 Finally, the red, green, blue, alpha, luminance, and/or intensity
 components of the resulting pixels are stored in the color table. They
 form a one-dimensional table with indices in the range
-@math{[0,@var{width}-1]}.
+@r{[0,@var{width}-1]}.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated when @var{target} is not one of the
 allowable values.
 
@@ -3870,11 +3799,11 @@ too large to be supported by the implementation.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyConvolutionFilter1D target internalformat x y width
+Copy pixels into a one-dimensional convolution filter.
 
-@defun glCopyConvolutionFilter1D 
-@heading copy pixels into a one-dimensional convolution filter
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_CONVOLUTION_1D}.
@@ -3905,7 +3834,6 @@ The width of the pixel array to copy.
 
 @end table
 
-@heading Description
 @code{glCopyConvolutionFilter1D} defines a one-dimensional convolution
 filter kernel with pixels from the current @code{GL_READ_BUFFER} (rather
 than from main memory, as is the case for @code{glConvolutionFilter1D}).
@@ -3977,7 +3905,6 @@ corresponding @code{GL_POST_CONVOLUTION_c_BIAS} parameters (where
 @var{c} takes on the values @strong{RED}, @strong{GREEN}, @strong{BLUE},
 and @strong{ALPHA}). These parameters are set by @code{glPixelTransfer}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_CONVOLUTION_1D}.
 
@@ -3993,11 +3920,11 @@ and name @code{GL_MAX_CONVOLUTION_WIDTH}.
 @code{glCopyConvolutionFilter1D} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyConvolutionFilter2D target internalformat x y width height
+Copy pixels into a two-dimensional convolution filter.
 
-@defun glCopyConvolutionFilter2D 
-@heading copy pixels into a two-dimensional convolution filter
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_CONVOLUTION_2D}.
@@ -4031,7 +3958,6 @@ The height of the pixel array to copy.
 
 @end table
 
-@heading Description
 @code{glCopyConvolutionFilter2D} defines a two-dimensional convolution
 filter kernel with pixels from the current @code{GL_READ_BUFFER} (rather
 than from main memory, as is the case for @code{glConvolutionFilter2D}).
@@ -4104,7 +4030,6 @@ corresponding @code{GL_POST_CONVOLUTION_c_BIAS} parameters (where
 @var{c} takes on the values @strong{RED}, @strong{GREEN}, @strong{BLUE},
 and @strong{ALPHA}). These parameters are set by @code{glPixelTransfer}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_CONVOLUTION_2D}.
 
@@ -4125,11 +4050,11 @@ with @code{glGetConvolutionParameter} using target
 @code{glCopyConvolutionFilter2D} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyPixels x y width height type
+Copy pixels in the frame buffer.
 
-@defun glCopyPixels 
-@heading copy pixels in the frame buffer
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -4148,7 +4073,6 @@ be copied. Symbolic constants @code{GL_COLOR}, @code{GL_DEPTH}, and
 
 @end table
 
-@heading Description
 @code{glCopyPixels} copies a screen-aligned rectangle of pixels from the
 specified frame buffer location to a region relative to the current
 raster position. Its operation is well defined only if the entire pixel
@@ -4168,11 +4092,11 @@ reference page describes the effects on @code{glCopyPixels} of most, but
 not all, of the parameters specified by these three commands.
 
 @code{glCopyPixels} copies values from each pixel with the lower
-left-hand corner at @math{(@var{x}+@var{i},@var{y}+@var{j})} for
-@math{0<=@var{i}<@var{width}} and @math{0<=@var{j}<@var{height}}. This
-pixel is said to be the @math{@var{i}}th pixel in the @math{@var{j}}th
-row. Pixels are copied in row order from the lowest to the highest row,
-left to right in each row.
+left-hand corner at @r{(@var{x}+@var{i},@var{y}+@var{j})} for
+@r{0<=@var{i}<@var{width}} and @r{0<=@var{j}<@var{height}}. This pixel
+is said to be the @r{@var{i}}th pixel in the @r{@var{j}}th row. Pixels
+are copied in row order from the lowest to the highest row, left to
+right in each row.
 
 @var{type} specifies whether color, depth, or stencil data is to be
 copied. The details of the transfer for each data type are as follows:
@@ -4190,8 +4114,8 @@ case, zero bits fill otherwise unspecified bit locations in the result.
 If @code{GL_MAP_COLOR} is true, the index is replaced with the value
 that it references in lookup table @code{GL_PIXEL_MAP_I_TO_I}. Whether
 the lookup replacement of the index is done or not, the integer part of
-the index is then ANDed with @math{2^@var{b}-1}, where @math{@var{b}} is
-the number of bits in a color index buffer.
+the index is then ANDed with @r{2^@var{b}-1}, where @r{@var{b}} is the
+number of bits in a color index buffer.
 
 If the GL is in RGBA mode, the red, green, blue, and alpha components of
 each pixel that is read are converted to an internal floating-point
@@ -4212,13 +4136,13 @@ transformations, and convolution filters.
 The GL then converts the resulting indices or RGBA colors to fragments
 by attaching the current raster position @var{z} coordinate and texture
 coordinates to each pixel, then assigning window coordinates
-@math{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
-@math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
-and the pixel was the @math{@var{i}}th pixel in the @math{@var{j}}th
-row. These pixel fragments are then treated just like the fragments
-generated by rasterizing points, lines, or polygons. Texture mapping,
-fog, and all the fragment operations are applied before the fragments
-are written to the frame buffer.
+@r{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
+@r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
+and the pixel was the @r{@var{i}}th pixel in the @r{@var{j}}th row.
+These pixel fragments are then treated just like the fragments generated
+by rasterizing points, lines, or polygons. Texture mapping, fog, and all
+the fragment operations are applied before the fragments are written to
+the frame buffer.
 
 @item @code{GL_DEPTH}
 Depth values are read from the depth buffer and converted directly to an
@@ -4230,13 +4154,13 @@ and added to @code{GL_DEPTH_BIAS}. The result is clamped to the range
 The GL then converts the resulting depth components to fragments by
 attaching the current raster position color or color index and texture
 coordinates to each pixel, then assigning window coordinates
-@math{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
-@math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
-and the pixel was the @math{@var{i}}th pixel in the @math{@var{j}}th
-row. These pixel fragments are then treated just like the fragments
-generated by rasterizing points, lines, or polygons. Texture mapping,
-fog, and all the fragment operations are applied before the fragments
-are written to the frame buffer.
+@r{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
+@r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
+and the pixel was the @r{@var{i}}th pixel in the @r{@var{j}}th row.
+These pixel fragments are then treated just like the fragments generated
+by rasterizing points, lines, or polygons. Texture mapping, fog, and all
+the fragment operations are applied before the fragments are written to
+the frame buffer.
 
 @item @code{GL_STENCIL}
 Stencil indices are read from the stencil buffer and converted to an
@@ -4248,36 +4172,34 @@ case, zero bits fill otherwise unspecified bit locations in the result.
 If @code{GL_MAP_STENCIL} is true, the index is replaced with the value
 that it references in lookup table @code{GL_PIXEL_MAP_S_TO_S}. Whether
 the lookup replacement of the index is done or not, the integer part of
-the index is then ANDed with @math{2^@var{b}-1}, where @math{@var{b}} is
-the number of bits in the stencil buffer. The resulting stencil indices
-are then written to the stencil buffer such that the index read from the
-@math{@var{i}}th location of the @math{@var{j}}th row is written to
-location @math{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
-@math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position.
+the index is then ANDed with @r{2^@var{b}-1}, where @r{@var{b}} is the
+number of bits in the stencil buffer. The resulting stencil indices are
+then written to the stencil buffer such that the index read from the
+@r{@var{i}}th location of the @r{@var{j}}th row is written to location
+@r{(@var{x}_@var{r}+@var{i},@var{y}_@var{r}+@var{j})}, where
+@r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position.
 Only the pixel ownership test, the scissor test, and the stencil
 writemask affect these write operations.
 
 @end table
 
 The rasterization described thus far assumes pixel zoom factors of 1.0.
-If @code{glPixelZoom} is used to change the @math{@var{x}} and
-@math{@var{y}} pixel zoom factors, pixels are converted to fragments as
-follows. If @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current
-raster position, and a given pixel is in the @math{@var{i}}th location
-in the @math{@var{j}}th row of the source pixel rectangle, then
-fragments are generated for pixels whose centers are in the rectangle
-with corners at
+If @code{glPixelZoom} is used to change the @r{@var{x}} and @r{@var{y}}
+pixel zoom factors, pixels are converted to fragments as follows. If
+@r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
+and a given pixel is in the @r{@var{i}}th location in the @r{@var{j}}th
+row of the source pixel rectangle, then fragments are generated for
+pixels whose centers are in the rectangle with corners at
 
-@math{(@var{x}_@var{r}+@var{zoom}_@var{x},⁢@var{i},@var{y}_@var{r}+@var{zoom}_@var{y},⁢@var{j})}
+@r{(@var{x}_@var{r}+@var{zoom}_@var{x},⁢@var{i},@var{y}_@var{r}+@var{zoom}_@var{y},⁢@var{j})}
 
 and
 
-@math{(@var{x}_@var{r}+@var{zoom}_@var{x},⁡(@var{i}+1,),@var{y}_@var{r}+@var{zoom}_@var{y},⁡(@var{j}+1,))}
+@r{(@var{x}_@var{r}+@var{zoom}_@var{x},⁡(@var{i}+1,),@var{y}_@var{r}+@var{zoom}_@var{y},⁡(@var{j}+1,))}
 
-where @math{@var{zoom}_@var{x}} is the value of @code{GL_ZOOM_X} and
-@math{@var{zoom}_@var{y}} is the value of @code{GL_ZOOM_Y}.
+where @r{@var{zoom}_@var{x}} is the value of @code{GL_ZOOM_X} and
+@r{@var{zoom}_@var{y}} is the value of @code{GL_ZOOM_Y}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
 value.
 
@@ -4294,11 +4216,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyTexImage1D target level internalformat x y width border
+Copy pixels into a 1D texture image.
 
-@defun glCopyTexImage1D 
-@heading copy pixels into a 1D texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D}.
@@ -4338,31 +4260,29 @@ to be copied.
 
 @item @var{width}
 Specifies the width of the texture image. Must be 0 or
-@math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}. The
-height of the texture image is 1.
+@r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. The height
+of the texture image is 1.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
 
 @end table
 
-@heading Description
 @code{glCopyTexImage1D} defines a one-dimensional texture image with
 pixels from the current @code{GL_READ_BUFFER}.
 
-The screen-aligned pixel row with left corner at
-@math{(@var{x},@var{y})} and with a length of
-@math{@var{width}+2⁡(@var{border},)} defines the texture array at the
-mipmap level specified by @var{level}. @var{internalformat} specifies
-the internal format of the texture array.
+The screen-aligned pixel row with left corner at @r{(@var{x},@var{y})}
+and with a length of @r{@var{width}+2⁡(@var{border},)} defines the
+texture array at the mipmap level specified by @var{level}.
+@var{internalformat} specifies the internal format of the texture array.
 
 The pixels in the row are processed exactly as if @code{glCopyPixels}
 had been called, but the process stops just before final conversion. At
-this point all pixel component values are clamped to the range
-@math{[0,1]} and then converted to the texture's internal format for
-storage in the texel array.
+this point all pixel component values are clamped to the range @r{[0,1]}
+and then converted to the texture's internal format for storage in the
+texel array.
 
-Pixel ordering is such that lower @math{@var{x}} screen coordinates
+Pixel ordering is such that lower @r{@var{x}} screen coordinates
 correspond to lower texture coordinates.
 
 If any of the pixels within the specified row of the current
@@ -4378,15 +4298,14 @@ automatically convert the source pixels to the sRGB color space. In this
 case, the @code{glPixelMap} function can be used to accomplish the
 conversion.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁢@var{max}}, where @math{@var{max}} is the returned
-value of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁢@var{max}}, where @r{@var{max}} is the returned value of
+@code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{internalformat} is not an
 allowable value.
@@ -4396,7 +4315,7 @@ greater than 2 + @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if non-power-of-two textures are
 not supported and the @var{width} cannot be represented as
-@math{2^@var{n}+2⁡(@var{border},)} for some integer value of @var{n}.
+@r{2^@var{n}+2⁡(@var{border},)} for some integer value of @var{n}.
 
 @code{GL_INVALID_VALUE} is generated if @var{border} is not 0 or 1.
 
@@ -4409,11 +4328,11 @@ execution of @code{glEnd}.
 @code{GL_DEPTH_COMPONENT24}, or @code{GL_DEPTH_COMPONENT32} and there is
 no depth buffer.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyTexImage2D target level internalformat x y width height border
+Copy pixels into a 2D texture image.
 
-@defun glCopyTexImage2D 
-@heading copy pixels into a 2D texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -4459,37 +4378,36 @@ rectangular region of pixels to be copied.
 
 @item @var{width}
 Specifies the width of the texture image. Must be 0 or
-@math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
+@r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}.
 
 @item @var{height}
 Specifies the height of the texture image. Must be 0 or
-@math{2^@var{m}+2⁡(@var{border},)} for some integer @math{@var{m}}.
+@r{2^@var{m}+2⁡(@var{border},)} for some integer @r{@var{m}}.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
 
 @end table
 
-@heading Description
 @code{glCopyTexImage2D} defines a two-dimensional texture image, or
 cube-map texture image with pixels from the current
 @code{GL_READ_BUFFER}.
 
 The screen-aligned pixel rectangle with lower left corner at (@var{x},
-@var{y}) and with a width of @math{@var{width}+2⁡(@var{border},)} and a
-height of @math{@var{height}+2⁡(@var{border},)} defines the texture
-array at the mipmap level specified by @var{level}. @var{internalformat}
+@var{y}) and with a width of @r{@var{width}+2⁡(@var{border},)} and a
+height of @r{@var{height}+2⁡(@var{border},)} defines the texture array
+at the mipmap level specified by @var{level}. @var{internalformat}
 specifies the internal format of the texture array.
 
 The pixels in the rectangle are processed exactly as if
 @code{glCopyPixels} had been called, but the process stops just before
 final conversion. At this point all pixel component values are clamped
-to the range @math{[0,1]} and then converted to the texture's internal
+to the range @r{[0,1]} and then converted to the texture's internal
 format for storage in the texel array.
 
-Pixel ordering is such that lower @math{@var{x}} and @math{@var{y}}
-screen coordinates correspond to lower @math{@var{s}} and @math{@var{t}}
-texture coordinates.
+Pixel ordering is such that lower @r{@var{x}} and @r{@var{y}} screen
+coordinates correspond to lower @r{@var{s}} and @r{@var{t}} texture
+coordinates.
 
 If any of the pixels within the specified rectangle of the current
 @code{GL_READ_BUFFER} are outside the window associated with the current
@@ -4501,7 +4419,6 @@ automatically convert the source pixels to the sRGB color space. In this
 case, the @code{glPixelMap} function can be used to accomplish the
 conversion.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_2D}, @code{GL_TEXTURE_CUBE_MAP_POSITIVE_X},
 @code{GL_TEXTURE_CUBE_MAP_NEGATIVE_X},
@@ -4513,15 +4430,15 @@ conversion.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁢@var{max}}, where @math{@var{max}} is the returned
-value of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁢@var{max}}, where @r{@var{max}} is the returned value of
+@code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{width} is less than 0 or
 greater than 2 + @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if non-power-of-two textures are
 not supported and the @var{width} or @var{depth} cannot be represented
-as @math{2^@var{k}+2⁡(@var{border},)} for some integer @math{@var{k}}.
+as @r{2^@var{k}+2⁡(@var{border},)} for some integer @r{@var{k}}.
 
 @code{GL_INVALID_VALUE} is generated if @var{border} is not 0 or 1.
 
@@ -4537,11 +4454,11 @@ execution of @code{glEnd}.
 @code{GL_DEPTH_COMPONENT24}, or @code{GL_DEPTH_COMPONENT32} and there is
 no depth buffer.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyTexSubImage1D target level xoffset x y width
+Copy a one-dimensional texture subimage.
 
-@defun glCopyTexSubImage1D 
-@heading copy a one-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D}.
@@ -4563,21 +4480,20 @@ Specifies the width of the texture subimage.
 
 @end table
 
-@heading Description
 @code{glCopyTexSubImage1D} replaces a portion of a one-dimensional
 texture image with pixels from the current @code{GL_READ_BUFFER} (rather
 than from main memory, as is the case for @code{glTexSubImage1D}).
 
 The screen-aligned pixel row with left corner at (@var{x},\ @var{y}),
 and with length @var{width} replaces the portion of the texture array
-with x indices @var{xoffset} through @math{@var{xoffset}+@var{width}-1},
+with x indices @var{xoffset} through @r{@var{xoffset}+@var{width}-1},
 inclusive. The destination in the texture array may not include any
 texels outside the texture array as it was originally specified.
 
 The pixels in the row are processed exactly as if @code{glCopyPixels}
 had been called, but the process stops just before final conversion. At
 this point, all pixel component values are clamped to the range
-@math{[0,1]} and then converted to the texture's internal format for
+@r{[0,1]} and then converted to the texture's internal format for
 storage in the texel array.
 
 It is not an error to specify a subtexture with zero width, but such a
@@ -4590,7 +4506,6 @@ No change is made to the @var{internalformat}, @var{width}, or
 @var{border} parameters of the specified texture array or to texel
 values outside the specified subregion.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if /@var{target} is not
 @code{GL_TEXTURE_1D}.
 
@@ -4601,22 +4516,22 @@ been defined by a previous @code{glTexImage1D} or
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if
-@math{@var{level}>@var{log}_2⁡(@var{max},)}, where @var{max} is the
+@r{@var{level}>@var{log}_2⁡(@var{max},)}, where @var{max} is the
 returned value of @code{GL_MAX_TEXTURE_SIZE}.
 
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-or @math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)}, where
-@math{@var{w}} is the @code{GL_TEXTURE_WIDTH} and @math{@var{b}} is the
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}}, or
+@r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)}, where @r{@var{w}}
+is the @code{GL_TEXTURE_WIDTH} and @r{@var{b}} is the
 @code{GL_TEXTURE_BORDER} of the texture image being modified. Note that
-@math{@var{w}} includes twice the border width.
+@r{@var{w}} includes twice the border width.
+
 
 
+@end deftypefun
 
-@end defun
+@deftypefun void glCopyTexSubImage2D target level xoffset yoffset x y width height
+Copy a two-dimensional texture subimage.
 
-@defun glCopyTexSubImage2D 
-@heading copy a two-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -4650,23 +4565,22 @@ Specifies the height of the texture subimage.
 
 @end table
 
-@heading Description
 @code{glCopyTexSubImage2D} replaces a rectangular portion of a
 two-dimensional texture image or cube-map texture image with pixels from
 the current @code{GL_READ_BUFFER} (rather than from main memory, as is
 the case for @code{glTexSubImage2D}).
 
 The screen-aligned pixel rectangle with lower left corner at
-@math{(@var{x},@var{y})} and with width @var{width} and height
-@var{height} replaces the portion of the texture array with x indices
-@var{xoffset} through @math{@var{xoffset}+@var{width}-1}, inclusive, and
-y indices @var{yoffset} through @math{@var{yoffset}+@var{height}-1},
-inclusive, at the mipmap level specified by @var{level}.
+@r{(@var{x},@var{y})} and with width @var{width} and height @var{height}
+replaces the portion of the texture array with x indices @var{xoffset}
+through @r{@var{xoffset}+@var{width}-1}, inclusive, and y indices
+@var{yoffset} through @r{@var{yoffset}+@var{height}-1}, inclusive, at
+the mipmap level specified by @var{level}.
 
 The pixels in the rectangle are processed exactly as if
 @code{glCopyPixels} had been called, but the process stops just before
 final conversion. At this point, all pixel component values are clamped
-to the range @math{[0,1]} and then converted to the texture's internal
+to the range @r{[0,1]} and then converted to the texture's internal
 format for storage in the texel array.
 
 The destination rectangle in the texture array may not include any
@@ -4683,7 +4597,6 @@ No change is made to the @var{internalformat}, @var{width},
 @var{height}, or @var{border} parameters of the specified texture array
 or to texel values outside the specified subregion.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_2D}, @code{GL_TEXTURE_CUBE_MAP_POSITIVE_X},
 @code{GL_TEXTURE_CUBE_MAP_NEGATIVE_X},
@@ -4699,27 +4612,27 @@ been defined by a previous @code{glTexImage2D} or
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if
-@math{@var{level}>@var{log}_2⁡(@var{max},)}, where @math{@var{max}} is
-the returned value of @code{GL_MAX_TEXTURE_SIZE}.
-
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-@math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
-@math{@var{yoffset}<-@var{b}}, or
-@math{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, where
-@math{@var{w}} is the @code{GL_TEXTURE_WIDTH}, @math{@var{h}} is the
-@code{GL_TEXTURE_HEIGHT}, and @math{@var{b}} is the
+@r{@var{level}>@var{log}_2⁡(@var{max},)}, where @r{@var{max}} is the
+returned value of @code{GL_MAX_TEXTURE_SIZE}.
+
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}},
+@r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
+@r{@var{yoffset}<-@var{b}}, or
+@r{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, where @r{@var{w}}
+is the @code{GL_TEXTURE_WIDTH}, @r{@var{h}} is the
+@code{GL_TEXTURE_HEIGHT}, and @r{@var{b}} is the
 @code{GL_TEXTURE_BORDER} of the texture image being modified. Note that
-@math{@var{w}} and @math{@var{h}} include twice the border width.
+@r{@var{w}} and @r{@var{h}} include twice the border width.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glCopyTexSubImage2D}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCopyTexSubImage3D target level xoffset yoffset zoffset x y width height
+Copy a three-dimensional texture subimage.
 
-@defun glCopyTexSubImage3D 
-@heading copy a three-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_3D}
@@ -4750,7 +4663,6 @@ Specifies the height of the texture subimage.
 
 @end table
 
-@heading Description
 @code{glCopyTexSubImage3D} replaces a rectangular portion of a
 three-dimensional texture image with pixels from the current
 @code{GL_READ_BUFFER} (rather than from main memory, as is the case for
@@ -4759,14 +4671,14 @@ three-dimensional texture image with pixels from the current
 The screen-aligned pixel rectangle with lower left corner at (@var{x},\
 @var{y}) and with width @var{width} and height @var{height} replaces the
 portion of the texture array with x indices @var{xoffset} through
-@math{@var{xoffset}+@var{width}-1}, inclusive, and y indices
-@var{yoffset} through @math{@var{yoffset}+@var{height}-1}, inclusive, at
-z index @var{zoffset} and at the mipmap level specified by @var{level}.
+@r{@var{xoffset}+@var{width}-1}, inclusive, and y indices @var{yoffset}
+through @r{@var{yoffset}+@var{height}-1}, inclusive, at z index
+@var{zoffset} and at the mipmap level specified by @var{level}.
 
 The pixels in the rectangle are processed exactly as if
 @code{glCopyPixels} had been called, but the process stops just before
 final conversion. At this point, all pixel component values are clamped
-to the range @math{[0,1]} and then converted to the texture's internal
+to the range @r{[0,1]} and then converted to the texture's internal
 format for storage in the texel array.
 
 The destination rectangle in the texture array may not include any
@@ -4783,7 +4695,6 @@ No change is made to the @var{internalformat}, @var{width},
 @var{height}, @var{depth}, or @var{border} parameters of the specified
 texture array or to texel values outside the specified subregion.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if /@var{target} is not
 @code{GL_TEXTURE_3D}.
 
@@ -4793,30 +4704,30 @@ been defined by a previous @code{glTexImage3D} operation.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if
-@math{@var{level}>@var{log}_2⁡(@var{max},)}, where @math{@var{max}} is
-the returned value of @code{GL_MAX_3D_TEXTURE_SIZE}.
-
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-@math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
-@math{@var{yoffset}<-@var{b}},
-@math{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)},
-@math{@var{zoffset}<-@var{b}}, or
-@math{(@var{zoffset}+1,)>(@var{d}-@var{b},)}, where @math{@var{w}} is
-the @code{GL_TEXTURE_WIDTH}, @math{@var{h}} is the
-@code{GL_TEXTURE_HEIGHT}, @math{@var{d}} is the @code{GL_TEXTURE_DEPTH},
-and @math{@var{b}} is the @code{GL_TEXTURE_BORDER} of the texture image
-being modified. Note that @math{@var{w}}, @math{@var{h}}, and
-@math{@var{d}} include twice the border width.
+@r{@var{level}>@var{log}_2⁡(@var{max},)}, where @r{@var{max}} is the
+returned value of @code{GL_MAX_3D_TEXTURE_SIZE}.
+
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}},
+@r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
+@r{@var{yoffset}<-@var{b}},
+@r{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)},
+@r{@var{zoffset}<-@var{b}}, or
+@r{(@var{zoffset}+1,)>(@var{d}-@var{b},)}, where @r{@var{w}} is the
+@code{GL_TEXTURE_WIDTH}, @r{@var{h}} is the @code{GL_TEXTURE_HEIGHT},
+@r{@var{d}} is the @code{GL_TEXTURE_DEPTH}, and @r{@var{b}} is the
+@code{GL_TEXTURE_BORDER} of the texture image being modified. Note that
+@r{@var{w}}, @r{@var{h}}, and @r{@var{d}} include twice the border
+width.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glCopyTexSubImage3D}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLuint glCreateProgram 
+Creates a program object.
 
-@defun glCreateProgram 
-@heading Creates a program object
-@heading Description
 @code{glCreateProgram} creates an empty program object and returns a
 non-zero value by which it can be referenced. A program object is an
 object to which shader objects can be attached. This provides a
@@ -4837,18 +4748,17 @@ called. Program objects can be deleted by calling
 will be deleted when it is no longer part of current rendering state for
 any context.
 
-@heading Errors
 This function returns 0 if an error occurs creating the program object.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glCreateProgram} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLuint glCreateShader shaderType
+Creates a shader object.
 
-@defun glCreateShader 
-@heading Creates a shader object
-@heading Parameters
 @table @asis
 @item @var{shaderType}
 Specifies the type of shader to be created. Must be either
@@ -4856,7 +4766,6 @@ Specifies the type of shader to be created. Must be either
 
 @end table
 
-@heading Description
 @code{glCreateShader} creates an empty shader object and returns a
 non-zero value by which it can be referenced. A shader object is used to
 maintain the source code strings that define a shader. @var{shaderType}
@@ -4872,7 +4781,6 @@ When created, a shader object's @code{GL_SHADER_TYPE} parameter is set
 to either @code{GL_VERTEX_SHADER} or @code{GL_FRAGMENT_SHADER},
 depending on the value of @var{shaderType}.
 
-@heading Errors
 This function returns 0 if an error occurs creating the shader object.
 
 @code{GL_INVALID_ENUM} is generated if @var{shaderType} is not an
@@ -4882,11 +4790,11 @@ accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glCullFace mode
+Specify whether front- or back-facing facets can be culled.
 
-@defun glCullFace 
-@heading specify whether front- or back-facing facets can be culled
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies whether front- or back-facing facets are candidates for
@@ -4896,7 +4804,6 @@ culling. Symbolic constants @code{GL_FRONT}, @code{GL_BACK}, and
 
 @end table
 
-@heading Description
 @code{glCullFace} specifies whether front- or back-facing facets are
 culled (as specified by @var{mode}) when facet culling is enabled. Facet
 culling is initially disabled. To enable and disable facet culling, call
@@ -4907,7 +4814,6 @@ and rectangles.
 @code{glFrontFace} specifies which of the clockwise and counterclockwise
 facets are front-facing and back-facing. See @code{glFrontFace}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -4915,11 +4821,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteBuffers n buffers
+Delete named buffer objects.
 
-@defun glDeleteBuffers 
-@heading delete named buffer objects
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of buffer objects to be deleted.
@@ -4929,7 +4835,6 @@ Specifies an array of buffer objects to be deleted.
 
 @end table
 
-@heading Description
 @code{glDeleteBuffers} deletes @var{n} buffer objects named by the
 elements of the array @var{buffers}. After a buffer object is deleted,
 it has no contents, and its name is free for reuse (for example by
@@ -4940,18 +4845,17 @@ which reverts to client memory usage).
 @code{glDeleteBuffers} silently ignores 0's and names that do not
 correspond to existing buffer objects.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glDeleteBuffers} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteLists list range
+Delete a contiguous group of display lists.
 
-@defun glDeleteLists 
-@heading delete a contiguous group of display lists
-@heading Parameters
 @table @asis
 @item @var{list}
 Specifies the integer name of the first display list to delete.
@@ -4961,37 +4865,34 @@ Specifies the number of display lists to delete.
 
 @end table
 
-@heading Description
 @code{glDeleteLists} causes a contiguous group of display lists to be
 deleted. @var{list} is the name of the first display list to be deleted,
 and @var{range} is the number of display lists to delete. All display
-lists @math{@var{d}} with
-@math{@var{list}<=@var{d}<=@var{list}+@var{range}-1} are deleted.
+lists @r{@var{d}} with @r{@var{list}<=@var{d}<=@var{list}+@var{range}-1}
+are deleted.
 
 All storage locations allocated to the specified display lists are
 freed, and the names are available for reuse at a later time. Names
 within the range that do not have an associated display list are
 ignored. If @var{range} is 0, nothing happens.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{range} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glDeleteLists} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteProgram program
+Deletes a program object.
 
-@defun glDeleteProgram 
-@heading Deletes a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be deleted.
 
 @end table
 
-@heading Description
 @code{glDeleteProgram} frees the memory and invalidates the name
 associated with the program object specified by @var{program.} This
 command effectively undoes the effects of a call to
@@ -5010,7 +4911,6 @@ To determine whether a program object has been flagged for deletion,
 call @code{glGetProgram} with arguments @var{program} and
 @code{GL_DELETE_STATUS}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -5018,11 +4918,11 @@ generated by OpenGL.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteQueries n ids
+Delete named query objects.
 
-@defun glDeleteQueries 
-@heading delete named query objects
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of query objects to be deleted.
@@ -5032,7 +4932,6 @@ Specifies an array of query objects to be deleted.
 
 @end table
 
-@heading Description
 @code{glDeleteQueries} deletes @var{n} query objects named by the
 elements of the array @var{ids}. After a query object is deleted, it has
 no contents, and its name is free for reuse (for example by
@@ -5041,25 +4940,23 @@ no contents, and its name is free for reuse (for example by
 @code{glDeleteQueries} silently ignores 0's and names that do not
 correspond to existing query objects.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glDeleteQueries} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteShader shader
+Deletes a shader object.
 
-@defun glDeleteShader 
-@heading Deletes a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the shader object to be deleted.
 
 @end table
 
-@heading Description
 @code{glDeleteShader} frees the memory and invalidates the name
 associated with the shader object specified by @var{shader}. This
 command effectively undoes the effects of a call to
@@ -5075,7 +4972,6 @@ To determine whether an object has been flagged for deletion, call
 @code{glGetShader} with arguments @var{shader} and
 @code{GL_DELETE_STATUS}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -5083,11 +4979,11 @@ generated by OpenGL.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDeleteTextures n textures
+Delete named textures.
 
-@defun glDeleteTextures 
-@heading delete named textures
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of textures to be deleted.
@@ -5097,7 +4993,6 @@ Specifies an array of textures to be deleted.
 
 @end table
 
-@heading Description
 @code{glDeleteTextures} deletes @var{n} textures named by the elements
 of the array @var{textures}. After a texture is deleted, it has no
 contents or dimensionality, and its name is free for reuse (for example
@@ -5107,18 +5002,17 @@ deleted, the binding reverts to 0 (the default texture).
 @code{glDeleteTextures} silently ignores 0's and names that do not
 correspond to existing textures.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glDeleteTextures} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDepthFunc func
+Specify the value used for depth buffer comparisons.
 
-@defun glDepthFunc 
-@heading specify the value used for depth buffer comparisons
-@heading Parameters
 @table @asis
 @item @var{func}
 Specifies the depth comparison function. Symbolic constants
@@ -5128,7 +5022,6 @@ Specifies the depth comparison function. Symbolic constants
 
 @end table
 
-@heading Description
 @code{glDepthFunc} specifies the function used to compare each incoming
 pixel depth value with the depth value present in the depth buffer. The
 comparison is performed only if depth testing is enabled. (See
@@ -5172,7 +5065,6 @@ The initial value of @var{func} is @code{GL_LESS}. Initially, depth
 testing is disabled. If depth testing is disabled or if no depth buffer
 exists, it is as if the depth test always passes.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{func} is not an accepted
 value.
 
@@ -5180,11 +5072,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDepthMask flag
+Enable or disable writing into the depth buffer.
 
-@defun glDepthMask 
-@heading enable or disable writing into the depth buffer
-@heading Parameters
 @table @asis
 @item @var{flag}
 Specifies whether the depth buffer is enabled for writing. If @var{flag}
@@ -5193,22 +5085,21 @@ enabled. Initially, depth buffer writing is enabled.
 
 @end table
 
-@heading Description
 @code{glDepthMask} specifies whether the depth buffer is enabled for
 writing. If @var{flag} is @code{GL_FALSE}, depth buffer writing is
 disabled. Otherwise, it is enabled. Initially, depth buffer writing is
 enabled.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glDepthMask} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDepthRange nearVal farVal
+Specify mapping of depth values from normalized device coordinates to
+window coordinates.
 
-@defun glDepthRange 
-@heading specify mapping of depth values from normalized device coordinates to window coordinates
-@heading Parameters
 @table @asis
 @item @var{nearVal}
 Specifies the mapping of the near clipping plane to window coordinates.
@@ -5220,9 +5111,8 @@ The initial value is 1.
 
 @end table
 
-@heading Description
 After clipping and division by @var{w}, depth coordinates range from
-@math{-1} to 1, corresponding to the near and far clipping planes.
+@r{-1} to 1, corresponding to the near and far clipping planes.
 @code{glDepthRange} specifies a linear mapping of the normalized depth
 coordinates in this range to window depth coordinates. Regardless of the
 actual depth buffer implementation, window coordinate depth values are
@@ -5233,16 +5123,15 @@ this range before they are accepted.
 The setting of (0,1) maps the near plane to 0 and the far plane to 1.
 With this mapping, the depth buffer range is fully utilized.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glDepthRange} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDetachShader program shader
+Detaches a shader object from a program object to which it is attached.
 
-@defun glDetachShader 
-@heading Detaches a shader object from a program object to which it is attached
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object from which to detach the shader object.
@@ -5252,7 +5141,6 @@ Specifies the shader object to be detached.
 
 @end table
 
-@heading Description
 @code{glDetachShader} detaches the shader object specified by
 @var{shader} from the program object specified by @var{program}. This
 command can be used to undo the effect of the command
@@ -5262,7 +5150,6 @@ If @var{shader} has already been flagged for deletion by a call to
 @code{glDeleteShader} and it is not attached to any other program
 object, it will be deleted after it has been detached.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if either @var{program} or
 @var{shader} is a value that was not generated by OpenGL.
 
@@ -5279,11 +5166,11 @@ to @var{program}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawArrays mode first count
+Render primitives from array data.
 
-@defun glDrawArrays 
-@heading render primitives from array data
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies what kind of primitives to render. Symbolic constants
@@ -5300,7 +5187,6 @@ Specifies the number of indices to be rendered.
 
 @end table
 
-@heading Description
 @code{glDrawArrays} specifies multiple geometric primitives with very
 few subroutine calls. Instead of calling a GL procedure to pass each
 individual vertex, normal, texture coordinate, edge flag, or color, you
@@ -5321,7 +5207,6 @@ unspecified value after @code{glDrawArrays} returns. For example, if
 undefined after @code{glDrawArrays} executes. Attributes that aren't
 modified remain well defined.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -5335,11 +5220,11 @@ currently mapped.
 executed between the execution of @code{glBegin} and the corresponding
 @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawBuffers n bufs
+Specifies a list of color buffers to be drawn into.
 
-@defun glDrawBuffers 
-@heading Specifies a list of color buffers to be drawn into
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of buffers in @var{bufs}.
@@ -5350,7 +5235,6 @@ which fragment colors or data values will be written.
 
 @end table
 
-@heading Description
 @code{glDrawBuffers} defines an array of buffers into which fragment
 color values or fragment data will be written. If no fragment shader is
 active, rendering operations will generate only one fragment color per
@@ -5401,7 +5285,6 @@ supported is implementation dependent and can be queried by calling
 auxiliary buffers can be queried by calling @code{glGet} with the
 argument @code{GL_AUX_BUFFERS}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if one of the values in @var{bufs}
 is not an accepted value.
 
@@ -5421,11 +5304,11 @@ does not exist in the current GL context.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawBuffer mode
+Specify which color buffers are to be drawn into.
 
-@defun glDrawBuffer 
-@heading specify which color buffers are to be drawn into
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies up to four color buffers to be drawn into. Symbolic constants
@@ -5441,7 +5324,6 @@ double-buffered contexts.
 
 @end table
 
-@heading Description
 When colors are written to the frame buffer, they are written into the
 color buffers specified by @code{glDrawBuffer}. The specifications are
 as follows:
@@ -5503,7 +5385,6 @@ single-buffered contexts include only @var{front} buffers, and
 double-buffered contexts include both @var{front} and @var{back}
 buffers. The context is selected at GL initialization.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -5514,11 +5395,11 @@ indicated by @var{mode} exists.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawElements mode count type indices
+Render primitives from array data.
 
-@defun glDrawElements 
-@heading render primitives from array data
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies what kind of primitives to render. Symbolic constants
@@ -5540,7 +5421,6 @@ Specifies a pointer to the location where the indices are stored.
 
 @end table
 
-@heading Description
 @code{glDrawElements} specifies multiple geometric primitives with very
 few subroutine calls. Instead of calling a GL function to pass each
 individual vertex, normal, texture coordinate, edge flag, or color, you
@@ -5562,7 +5442,6 @@ unspecified value after @code{glDrawElements} returns. For example, if
 undefined after @code{glDrawElements} executes. Attributes that aren't
 modified maintain their previous values.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -5576,11 +5455,11 @@ object's data store is currently mapped.
 executed between the execution of @code{glBegin} and the corresponding
 @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawPixels width height format type data
+Write a block of pixels to the frame buffer.
 
-@defun glDrawPixels 
-@heading write a block of pixels to the frame buffer
-@heading Parameters
 @table @asis
 @item @var{width}
 @itemx @var{height}
@@ -5612,7 +5491,6 @@ Specifies a pointer to the pixel data.
 
 @end table
 
-@heading Description
 @code{glDrawPixels} reads pixel data from memory and writes it into the
 frame buffer relative to the current raster position, provided that the
 raster position is valid. Use @code{glRasterPos} or @code{glWindowPos}
@@ -5659,7 +5537,7 @@ indices and groups of components are referred to as pixels. If
 pixels, with bit ordering determined by @code{GL_UNPACK_LSB_FIRST} (see
 @code{glPixelStore}).
 
-@math{@var{width}×@var{height}} pixels are read from memory, starting at
+@r{@var{width}×@var{height}} pixels are read from memory, starting at
 location @var{data}. By default, these pixels are taken from adjacent
 memory locations, except that after all @var{width} pixels are read, the
 read pointer is advanced to the next four-byte boundary. The four-byte
@@ -5675,7 +5553,7 @@ If a non-zero named buffer object is bound to the
 block of pixels is specified, @var{data} is treated as a byte offset
 into the buffer object's data store.
 
-The @math{@var{width}×@var{height}} pixels that are read from memory are
+The @r{@var{width}×@var{height}} pixels that are read from memory are
 each operated on in the same way, based on the values of several
 parameters specified by @code{glPixelTransfer} and @code{glPixelMap}.
 The details of these operations, as well as the target buffer into which
@@ -5704,17 +5582,16 @@ pixel with the help of the @code{GL_PIXEL_MAP_I_TO_R},
 if @code{GL_MAP_COLOR} is true, the index is replaced with the value
 that it references in lookup table @code{GL_PIXEL_MAP_I_TO_I}. Whether
 the lookup replacement of the index is done or not, the integer part of
-the index is then ANDed with @math{2^@var{b}-1}, where @math{@var{b}} is
-the number of bits in a color index buffer.
+the index is then ANDed with @r{2^@var{b}-1}, where @r{@var{b}} is the
+number of bits in a color index buffer.
 
 The GL then converts the resulting indices or RGBA colors to fragments
 by attaching the current raster position @var{z} coordinate and texture
-coordinates to each pixel, then assigning @math{@var{x}} and
-@math{@var{y}} window coordinates to the @math{@var{n}}th fragment such
-that
-@math{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@math{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
+coordinates to each pixel, then assigning @r{@var{x}} and @r{@var{y}}
+window coordinates to the @r{@var{n}}th fragment such that
+@r{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@r{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
 
-where @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
+where @r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
 position. These pixel fragments are then treated just like the fragments
 generated by rasterizing points, lines, or polygons. Texture mapping,
 fog, and all the fragment operations are applied before the fragments
@@ -5735,14 +5612,14 @@ otherwise unspecified bit locations in the result. If
 @code{GL_MAP_STENCIL} is true, the index is replaced with the value that
 it references in lookup table @code{GL_PIXEL_MAP_S_TO_S}. Whether the
 lookup replacement of the index is done or not, the integer part of the
-index is then ANDed with @math{2^@var{b}-1}, where @math{@var{b}} is the
+index is then ANDed with @r{2^@var{b}-1}, where @r{@var{b}} is the
 number of bits in the stencil buffer. The resulting stencil indices are
-then written to the stencil buffer such that the @math{@var{n}}th index
-is written to location
+then written to the stencil buffer such that the @r{@var{n}}th index is
+written to location
 
-@math{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@math{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
+@r{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@r{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
 
-where @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
+where @r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
 position. Only the pixel ownership test, the scissor test, and the
 stencil writemask affect these write operations.
 
@@ -5752,21 +5629,19 @@ directly to an internal floating-point format with unspecified
 precision. Signed integer data is mapped linearly to the internal
 floating-point format such that the most positive representable integer
 value maps to 1.0, and the most negative representable value maps to
-@math{-1.0}. Unsigned integer data is mapped similarly: the largest
-integer value maps to 1.0, and 0 maps to 0.0. The resulting
-floating-point depth value is then multiplied by @code{GL_DEPTH_SCALE}
-and added to @code{GL_DEPTH_BIAS}. The result is clamped to the range
-@math{[0,1]}.
+@r{-1.0}. Unsigned integer data is mapped similarly: the largest integer
+value maps to 1.0, and 0 maps to 0.0. The resulting floating-point depth
+value is then multiplied by @code{GL_DEPTH_SCALE} and added to
+@code{GL_DEPTH_BIAS}. The result is clamped to the range @r{[0,1]}.
 
 The GL then converts the resulting depth components to fragments by
 attaching the current raster position color or color index and texture
-coordinates to each pixel, then assigning @math{@var{x}} and
-@math{@var{y}} window coordinates to the @math{@var{n}}th fragment such
-that
+coordinates to each pixel, then assigning @r{@var{x}} and @r{@var{y}}
+window coordinates to the @r{@var{n}}th fragment such that
 
-@math{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@math{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
+@r{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@r{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
 
-where @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
+where @r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
 position. These pixel fragments are then treated just like the fragments
 generated by rasterizing points, lines, or polygons. Texture mapping,
 fog, and all the fragment operations are applied before the fragments
@@ -5781,13 +5656,13 @@ Floating-point values are converted directly to an internal
 floating-point format with unspecified precision. Signed integer values
 are mapped linearly to the internal floating-point format such that the
 most positive representable integer value maps to 1.0, and the most
-negative representable value maps to @math{-1.0}. (Note that this
-mapping does not convert 0 precisely to 0.0.) Unsigned integer data is
-mapped similarly: The largest integer value maps to 1.0, and 0 maps to
-0.0. The resulting floating-point color values are then multiplied by
+negative representable value maps to @r{-1.0}. (Note that this mapping
+does not convert 0 precisely to 0.0.) Unsigned integer data is mapped
+similarly: The largest integer value maps to 1.0, and 0 maps to 0.0. The
+resulting floating-point color values are then multiplied by
 @code{GL_c_SCALE} and added to @code{GL_c_BIAS}, where @var{c} is RED,
 GREEN, BLUE, and ALPHA for the respective color components. The results
-are clamped to the range @math{[0,1]}.
+are clamped to the range @r{[0,1]}.
 
 If @code{GL_MAP_COLOR} is true, each color component is scaled by the
 size of lookup table @code{GL_PIXEL_MAP_c_TO_c}, then replaced by the
@@ -5796,12 +5671,12 @@ respectively.
 
 The GL then converts the resulting RGBA colors to fragments by attaching
 the current raster position @var{z} coordinate and texture coordinates
-to each pixel, then assigning @math{@var{x}} and @math{@var{y}} window
-coordinates to the @math{@var{n}}th fragment such that
+to each pixel, then assigning @r{@var{x}} and @r{@var{y}} window
+coordinates to the @r{@var{n}}th fragment such that
 
-@math{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@math{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
+@r{@var{x}_@var{n}=@var{x}_@var{r}+@var{n}%@var{width}}@r{@var{y}_@var{n}=@var{y}_@var{r}+⌊@var{n}/@var{width},⌋}
 
-where @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
+where @r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster
 position. These pixel fragments are then treated just like the fragments
 generated by rasterizing points, lines, or polygons. Texture mapping,
 fog, and all the fragment operations are applied before the fragments
@@ -5938,19 +5813,18 @@ unsigned 32-bit integer with reversed component ordering
 
 
 The rasterization described so far assumes pixel zoom factors of 1. If
-@code{glPixelZoom} is used to change the @math{@var{x}} and
-@math{@var{y}} pixel zoom factors, pixels are converted to fragments as
-follows. If @math{(@var{x}_@var{r},@var{y}_@var{r})} is the current
-raster position, and a given pixel is in the @math{@var{n}}th column and
-@math{@var{m}}th row of the pixel rectangle, then fragments are
-generated for pixels whose centers are in the rectangle with corners at
+@code{glPixelZoom} is used to change the @r{@var{x}} and @r{@var{y}}
+pixel zoom factors, pixels are converted to fragments as follows. If
+@r{(@var{x}_@var{r},@var{y}_@var{r})} is the current raster position,
+and a given pixel is in the @r{@var{n}}th column and @r{@var{m}}th row
+of the pixel rectangle, then fragments are generated for pixels whose
+centers are in the rectangle with corners at
 
-@math{(@var{x}_@var{r}+@var{zoom}_@var{x},⁢@var{n},@var{y}_@var{r}+@var{zoom}_@var{y},⁢@var{m})}@math{(@var{x}_@var{r}+@var{zoom}_@var{x},⁡(@var{n}+1,),@var{y}_@var{r}+@var{zoom}_@var{y},⁡(@var{m}+1,))}
+@r{(@var{x}_@var{r}+@var{zoom}_@var{x},⁢@var{n},@var{y}_@var{r}+@var{zoom}_@var{y},⁢@var{m})}@r{(@var{x}_@var{r}+@var{zoom}_@var{x},⁡(@var{n}+1,),@var{y}_@var{r}+@var{zoom}_@var{y},⁡(@var{m}+1,))}
 
-where @math{@var{zoom}_@var{x}} is the value of @code{GL_ZOOM_X} and
-@math{@var{zoom}_@var{y}} is the value of @code{GL_ZOOM_Y}.
+where @r{@var{zoom}_@var{x}} is the value of @code{GL_ZOOM_X} and
+@r{@var{zoom}_@var{y}} is the value of @code{GL_ZOOM_Y}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} or @var{type} is not
 one of the accepted values.
 
@@ -6001,11 +5875,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glDrawRangeElements mode start end count type indices
+Render primitives from array data.
 
-@defun glDrawRangeElements 
-@heading render primitives from array data
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies what kind of primitives to render. Symbolic constants
@@ -6033,7 +5907,6 @@ Specifies a pointer to the location where the indices are stored.
 
 @end table
 
-@heading Description
 @code{glDrawRangeElements} is a restricted form of
 @code{glDrawElements}. @var{mode}, @var{start}, @var{end}, and
 @var{count} match the corresponding arguments to @code{glDrawElements},
@@ -6043,11 +5916,11 @@ must lie between @var{start} and @var{end}, inclusive.
 Implementations denote recommended maximum amounts of vertex and index
 data, which may be queried by calling @code{glGet} with argument
 @code{GL_MAX_ELEMENTS_VERTICES} and @code{GL_MAX_ELEMENTS_INDICES}. If
-@math{@var{end}-@var{start}+1} is greater than the value of
+@r{@var{end}-@var{start}+1} is greater than the value of
 @code{GL_MAX_ELEMENTS_VERTICES}, or if @var{count} is greater than the
 value of @code{GL_MAX_ELEMENTS_INDICES}, then the call may operate at
 reduced performance. There is no requirement that all vertices in the
-range @math{[@var{start},@var{end}]} be referenced. However, the
+range @r{[@var{start},@var{end}]} be referenced. However, the
 implementation may partially process unused vertices, reducing
 performance from what could be achieved with an optimal index set.
 
@@ -6065,17 +5938,16 @@ example, if @code{GL_COLOR_ARRAY} is enabled, the value of the current
 color is undefined after @code{glDrawRangeElements} executes. Attributes
 that aren't modified maintain their previous values.
 
-@heading Errors
 It is an error for indices to lie outside the range
-@math{[@var{start},@var{end}]}, but implementations may not check for
-this situation. Such indices cause implementation-dependent behavior.
+@r{[@var{start},@var{end}]}, but implementations may not check for this
+situation. Such indices cause implementation-dependent behavior.
 
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
 @code{GL_INVALID_VALUE} is generated if @var{count} is negative.
 
-@code{GL_INVALID_VALUE} is generated if @math{@var{end}<@var{start}}.
+@code{GL_INVALID_VALUE} is generated if @r{@var{end}<@var{start}}.
 
 @code{GL_INVALID_OPERATION} is generated if a non-zero buffer object
 name is bound to an enabled array or the element array and the buffer
@@ -6085,11 +5957,11 @@ object's data store is currently mapped.
 is executed between the execution of @code{glBegin} and the
 corresponding @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEdgeFlagPointer stride pointer
+Define an array of edge flags.
 
-@defun glEdgeFlagPointer 
-@heading define an array of edge flags
-@heading Parameters
 @table @asis
 @item @var{stride}
 Specifies the byte offset between consecutive edge flags. If
@@ -6102,7 +5974,6 @@ value is 0.
 
 @end table
 
-@heading Description
 @code{glEdgeFlagPointer} specifies the location and data format of an
 array of boolean edge flags to use when rendering. @var{stride}
 specifies the byte stride from one edge flag to the next, allowing
@@ -6127,14 +5998,14 @@ used when @code{glDrawArrays}, @code{glMultiDrawArrays},
 @code{glDrawElements}, @code{glMultiDrawElements},
 @code{glDrawRangeElements}, or @code{glArrayElement} is called.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEdgeFlag flag
+@deftypefunx void glEdgeFlagv flag
+Flag edges as either boundary or nonboundary.
 
-@defun glEdgeFlag 
-@heading flag edges as either boundary or nonboundary
-@heading Parameters
 @table @asis
 @item @var{flag}
 Specifies the current edge flag value, either @code{GL_TRUE} or
@@ -6142,7 +6013,6 @@ Specifies the current edge flag value, either @code{GL_TRUE} or
 
 @end table
 
-@heading Description
 Each vertex of a polygon, separate triangle, or separate quadrilateral
 specified between a @code{glBegin}/@code{glEnd} pair is marked as the
 start of either a boundary or nonboundary edge. If the current edge flag
@@ -6159,11 +6029,12 @@ Boundary and nonboundary edge flags on vertices are significant only if
 @code{GL_POLYGON_MODE} is set to @code{GL_POINT} or @code{GL_LINE}. See
 @code{glPolygonMode}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEnableClientState cap
+@deftypefunx void glDisableClientState cap
+Enable or disable client-side capability.
 
-@defun glEnableClientState 
-@heading enable or disable client-side capability
-@heading Parameters
 @table @asis
 @item @var{cap}
 Specifies the capability to enable. Symbolic constants
@@ -6174,7 +6045,6 @@ Specifies the capability to enable. Symbolic constants
 
 @end table
 
-@heading Description
 @code{glEnableClientState} and @code{glDisableClientState} enable or
 disable individual client-side capabilities. By default, all client-side
 capabilities are disabled. Both @code{glEnableClientState} and
@@ -6240,7 +6110,6 @@ rendering when @code{glArrayElement}, @code{glDrawArrays},
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{cap} is not an accepted
 value.
 
@@ -6249,11 +6118,12 @@ value.
 may not be generated. If no error is generated, the behavior is
 undefined.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEnableVertexAttribArray index
+@deftypefunx void glDisableVertexAttribArray index
+Enable or disable a generic vertex attribute array.
 
-@defun glEnableVertexAttribArray 
-@heading Enable or disable a generic vertex attribute array
-@heading Parameters
 @table @asis
 @item @var{index}
 Specifies the index of the generic vertex attribute to be enabled or
@@ -6261,7 +6131,6 @@ disabled.
 
 @end table
 
-@heading Description
 @code{glEnableVertexAttribArray} enables the generic vertex attribute
 array specified by @var{index}. @code{glDisableVertexAttribArray}
 disables the generic vertex attribute array specified by @var{index}. By
@@ -6273,7 +6142,6 @@ calls are made to vertex array commands such as @code{glDrawArrays},
 @code{glArrayElement}, @code{glMultiDrawElements}, or
 @code{glMultiDrawArrays}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
@@ -6282,18 +6150,18 @@ equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEnable cap
+@deftypefunx void glDisable cap
+Enable or disable server-side GL capabilities.
 
-@defun glEnable 
-@heading enable or disable server-side GL capabilities
-@heading Parameters
 @table @asis
 @item @var{cap}
 Specifies a symbolic constant indicating a GL capability.
 
 @end table
 
-@heading Description
 @code{glEnable} and @code{glDisable} enable and disable various
 capabilities. Use @code{glIsEnabled} or @code{glGet} to determine the
 current setting of any capability. The initial value for each capability
@@ -6753,7 +6621,6 @@ on points or lines.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{cap} is not one of the
 values listed previously.
 
@@ -6761,25 +6628,30 @@ values listed previously.
 @code{glDisable} is executed between the execution of @code{glBegin} and
 the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEvalCoord1f u
+@deftypefunx void glEvalCoord1d u
+@deftypefunx void glEvalCoord2f u v
+@deftypefunx void glEvalCoord2d u v
+@deftypefunx void glEvalCoord1fv u
+@deftypefunx void glEvalCoord1dv u
+@deftypefunx void glEvalCoord2fv u
+@deftypefunx void glEvalCoord2dv u
+Evaluate enabled one- and two-dimensional maps.
 
-@defun glEvalCoord 
-@heading evaluate enabled one- and two-dimensional maps
-@heading Parameters
 @table @asis
 @item @var{u}
-Specifies a value that is the domain coordinate @math{@var{u}} to the
-basis function defined in a previous @code{glMap1} or @code{glMap2}
-command.
+Specifies a value that is the domain coordinate @r{@var{u}} to the basis
+function defined in a previous @code{glMap1} or @code{glMap2} command.
 
 @item @var{v}
-Specifies a value that is the domain coordinate @math{@var{v}} to the
-basis function defined in a previous @code{glMap2} command. This
-argument is not present in a @code{glEvalCoord1} command.
+Specifies a value that is the domain coordinate @r{@var{v}} to the basis
+function defined in a previous @code{glMap2} command. This argument is
+not present in a @code{glEvalCoord1} command.
 
 @end table
 
-@heading Description
 @code{glEvalCoord1} evaluates enabled one-dimensional maps at argument
 @var{u}. @code{glEvalCoord2} does the same for two-dimensional maps
 using two domain values, @var{u} and @var{v}. To define a map, call
@@ -6825,21 +6697,22 @@ If you have enabled automatic normal generation, by calling
 generates surface normals analytically, regardless of the contents or
 enabling of the @code{GL_MAP2_NORMAL} map. Let
 
-@math{@code{m}=∂@code{p},/∂@var{u},,×∂@code{p},/∂@var{v},,}
+@r{@code{m}=∂@code{p},/∂@var{u},,×∂@code{p},/∂@var{v},,}
 
-Then the generated normal @math{@code{n}} is
-@math{@code{n}=@code{m}/∥@code{m},∥,}
+Then the generated normal @r{@code{n}} is
+@r{@code{n}=@code{m}/∥@code{m},∥,}
 
 If automatic normal generation is disabled, the corresponding normal map
 @code{GL_MAP2_NORMAL}, if enabled, is used to produce a normal. If
 neither automatic normal generation nor a normal map is enabled, no
 normal is generated for @code{glEvalCoord2} commands.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEvalMesh1 mode i1 i2
+@deftypefunx void glEvalMesh2 mode i1 i2 j1 j2
+Compute a one- or two-dimensional grid of points or lines.
 
-@defun glEvalMesh 
-@heading compute a one- or two-dimensional grid of points or lines
-@heading Parameters
 @table @asis
 @item @var{mode}
 In @code{glEvalMesh1}, specifies whether to compute a one-dimensional
@@ -6849,11 +6722,10 @@ mesh of points or lines. Symbolic constants @code{GL_POINT} and
 @item @var{i1}
 @itemx @var{i2}
 Specify the first and last integer values for grid domain variable
-@math{@var{i}}.
+@r{@var{i}}.
 
 @end table
 
-@heading Description
 @code{glMapGrid} and @code{glEvalMesh} are used in tandem to efficiently
 generate and evaluate a series of evenly-spaced map domain values.
 @code{glEvalMesh} steps through the integer domain of a one- or
@@ -6871,30 +6743,30 @@ where
 
 glBegin( @var{type} );
 for ( i = @var{i1}; i <= @var{i2}; i += 1 )
-   glEvalCoord1( @math{i·Δ@var{u}+@var{u}_1} );
+   glEvalCoord1( @r{i·Δ@var{u}+@var{u}_1} );
 glEnd(); 
 @end example
 
-@math{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
+@r{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
 
-and @math{@var{n}}, @math{@var{u}_1}, and @math{@var{u}_2} are the
-arguments to the most recent @code{glMapGrid1} command. @var{type} is
+and @r{@var{n}}, @r{@var{u}_1}, and @r{@var{u}_2} are the arguments to
+the most recent @code{glMapGrid1} command. @var{type} is
 @code{GL_POINTS} if @var{mode} is @code{GL_POINT}, or @code{GL_LINES} if
 @var{mode} is @code{GL_LINE}.
 
-The one absolute numeric requirement is that if @math{@var{i}=@var{n}},
-then the value computed from @math{@var{i}·Δ@var{u}+@var{u}_1} is
-exactly @math{@var{u}_2}.
+The one absolute numeric requirement is that if @r{@var{i}=@var{n}},
+then the value computed from @r{@var{i}·Δ@var{u}+@var{u}_1} is exactly
+@r{@var{u}_2}.
 
 In the two-dimensional case, @code{glEvalMesh2}, let .cp
-@math{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
+@r{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
 
-@math{Δ@var{v}=(@var{v}_2-@var{v}_1,)/@var{m}}
+@r{Δ@var{v}=(@var{v}_2-@var{v}_1,)/@var{m}}
 
-where @math{@var{n}}, @math{@var{u}_1}, @math{@var{u}_2},
-@math{@var{m}}, @math{@var{v}_1}, and @math{@var{v}_2} are the arguments
-to the most recent @code{glMapGrid2} command. Then, if @var{mode} is
-@code{GL_FILL}, the @code{glEvalMesh2} command is equivalent to:
+where @r{@var{n}}, @r{@var{u}_1}, @r{@var{u}_2}, @r{@var{m}},
+@r{@var{v}_1}, and @r{@var{v}_2} are the arguments to the most recent
+@code{glMapGrid2} command. Then, if @var{mode} is @code{GL_FILL}, the
+@code{glEvalMesh2} command is equivalent to:
 
 
 
@@ -6903,8 +6775,8 @@ to the most recent @code{glMapGrid2} command. Then, if @var{mode} is
 for ( j = @var{j1}; j < @var{j2}; j += 1 ) @{
    glBegin( GL_QUAD_STRIP );
    for ( i = @var{i1}; i <= @var{i2}; i += 1 ) @{
-      glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
-      glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,(j+1,)·Δ@var{v}+@var{v}_1} );
+      glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
+      glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,(j+1,)·Δ@var{v}+@var{v}_1} );
    @}
    glEnd();
 @} 
@@ -6920,14 +6792,14 @@ equivalent to:
 for ( j = @var{j1}; j <= @var{j2}; j += 1 ) @{
    glBegin( GL_LINE_STRIP );
    for ( i = @var{i1}; i <= @var{i2}; i += 1 )
-      glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
+      glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
    glEnd();
 @}
 
 for ( i = @var{i1};  i <= @var{i2}; i += 1 ) @{
    glBegin( GL_LINE_STRIP );
    for ( j = @var{j1}; j <= @var{j1}; j += 1 )
-      glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
+      glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
    glEnd();
 @} 
 @end example
@@ -6942,17 +6814,16 @@ And finally, if @var{mode} is @code{GL_POINT}, then a call to
 glBegin( GL_POINTS );
 for ( j = @var{j1}; j <= @var{j2}; j += 1 )
    for ( i = @var{i1}; i <= @var{i2}; i += 1 )
-      glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
+      glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} );
 glEnd(); 
 @end example
 
 In all three cases, the only absolute numeric requirements are that if
-@math{@var{i}=@var{n}}, then the value computed from
-@math{@var{i}·Δ@var{u}+@var{u}_1} is exactly @math{@var{u}_2}, and if
-@math{@var{j}=@var{m}}, then the value computed from
-@math{@var{j}·Δ@var{v}+@var{v}_1} is exactly @math{@var{v}_2}.
+@r{@var{i}=@var{n}}, then the value computed from
+@r{@var{i}·Δ@var{u}+@var{u}_1} is exactly @r{@var{u}_2}, and if
+@r{@var{j}=@var{m}}, then the value computed from
+@r{@var{j}·Δ@var{v}+@var{v}_1} is exactly @r{@var{v}_2}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -6960,63 +6831,62 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glEvalPoint1 i
+@deftypefunx void glEvalPoint2 i j
+Generate and evaluate a single point in a mesh.
 
-@defun glEvalPoint 
-@heading generate and evaluate a single point in a mesh
-@heading Parameters
 @table @asis
 @item @var{i}
-Specifies the integer value for grid domain variable @math{@var{i}}.
+Specifies the integer value for grid domain variable @r{@var{i}}.
 
 @item @var{j}
-Specifies the integer value for grid domain variable @math{@var{j}}
+Specifies the integer value for grid domain variable @r{@var{j}}
 (@code{glEvalPoint2} only).
 
 @end table
 
-@heading Description
 @code{glMapGrid} and @code{glEvalMesh} are used in tandem to efficiently
 generate and evaluate a series of evenly spaced map domain values.
 @code{glEvalPoint} can be used to evaluate a single grid point in the
 same gridspace that is traversed by @code{glEvalMesh}. Calling
 @code{glEvalPoint1} is equivalent to calling where
-@math{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
+@r{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}
 
 @example 
 
-glEvalCoord1( @math{i·Δ@var{u}+@var{u}_1} ); 
+glEvalCoord1( @r{i·Δ@var{u}+@var{u}_1} ); 
 @end example
 
-and @math{@var{n}}, @math{@var{u}_1}, and @math{@var{u}_2} are the
-arguments to the most recent @code{glMapGrid1} command. The one absolute
-numeric requirement is that if @math{@var{i}=@var{n}}, then the value
-computed from @math{@var{i}·Δ@var{u}+@var{u}_1} is exactly
-@math{@var{u}_2}.
+and @r{@var{n}}, @r{@var{u}_1}, and @r{@var{u}_2} are the arguments to
+the most recent @code{glMapGrid1} command. The one absolute numeric
+requirement is that if @r{@var{i}=@var{n}}, then the value computed from
+@r{@var{i}·Δ@var{u}+@var{u}_1} is exactly @r{@var{u}_2}.
 
 In the two-dimensional case, @code{glEvalPoint2}, let
 
-@math{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}@math{Δ@var{v}=(@var{v}_2-@var{v}_1,)/@var{m}}
+@r{Δ@var{u}=(@var{u}_2-@var{u}_1,)/@var{n}}@r{Δ@var{v}=(@var{v}_2-@var{v}_1,)/@var{m}}
 
-where @math{@var{n}}, @math{@var{u}_1}, @math{@var{u}_2},
-@math{@var{m}}, @math{@var{v}_1}, and @math{@var{v}_2} are the arguments
-to the most recent @code{glMapGrid2} command. Then the
-@code{glEvalPoint2} command is equivalent to calling The only absolute
-numeric requirements are that if @math{@var{i}=@var{n}}, then the value
-computed from @math{@var{i}·Δ@var{u}+@var{u}_1} is exactly
-@math{@var{u}_2}, and if @math{@var{j}=@var{m}}, then the value computed
-from @math{@var{j}·Δ@var{v}+@var{v}_1} is exactly @math{@var{v}_2}.
+where @r{@var{n}}, @r{@var{u}_1}, @r{@var{u}_2}, @r{@var{m}},
+@r{@var{v}_1}, and @r{@var{v}_2} are the arguments to the most recent
+@code{glMapGrid2} command. Then the @code{glEvalPoint2} command is
+equivalent to calling The only absolute numeric requirements are that if
+@r{@var{i}=@var{n}}, then the value computed from
+@r{@var{i}·Δ@var{u}+@var{u}_1} is exactly @r{@var{u}_2}, and if
+@r{@var{j}=@var{m}}, then the value computed from
+@r{@var{j}·Δ@var{v}+@var{v}_1} is exactly @r{@var{v}_2}.
 
 @example 
 
-glEvalCoord2( @math{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} ); 
+glEvalCoord2( @r{i·Δ@var{u}+@var{u}_1,j·Δ@var{v}+@var{v}_1} ); 
 @end example
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFeedbackBuffer size type buffer
+Controls feedback mode.
 
-@defun glFeedbackBuffer 
-@heading controls feedback mode
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the maximum number of values that can be written into
@@ -7033,7 +6903,6 @@ Returns the feedback data.
 
 @end table
 
-@heading Description
 The @code{glFeedbackBuffer} function controls feedback. Feedback, like
 selection, is a GL mode. The mode is selected by calling
 @code{glRenderMode} with @code{GL_FEEDBACK}. When the GL is in feedback
@@ -7085,22 +6954,21 @@ as some number of floating-point values, as determined by @var{type}.
 Colors are fed back as four values in RGBA mode and one value in color
 index mode.
 
-feedbackList @math{←} feedbackItem feedbackList | feedbackItem
-feedbackItem @math{←} point | lineSegment | polygon | bitmap |
-pixelRectangle | passThru point @math{←}@code{GL_POINT_TOKEN} vertex
-lineSegment @math{←}@code{GL_LINE_TOKEN} vertex vertex |
-@code{GL_LINE_RESET_TOKEN} vertex vertex polygon
-@math{←}@code{GL_POLYGON_TOKEN} n polySpec polySpec @math{←} polySpec
-vertex | vertex vertex vertex bitmap @math{←}@code{GL_BITMAP_TOKEN}
-vertex pixelRectangle @math{←}@code{GL_DRAW_PIXEL_TOKEN} vertex |
-@code{GL_COPY_PIXEL_TOKEN} vertex passThru
-@math{←}@code{GL_PASS_THROUGH_TOKEN} value vertex @math{←} 2d | 3d |
-3dColor | 3dColorTexture | 4dColorTexture 2d @math{←} value value 3d
-@math{←} value value value 3dColor @math{←} value value value color
-3dColorTexture @math{←} value value value color tex 4dColorTexture
-@math{←} value value value value color tex color @math{←} rgba | index
-rgba @math{←} value value value value index @math{←} value tex @math{←}
-value value value value
+feedbackList @r{←} feedbackItem feedbackList | feedbackItem feedbackItem
+@r{←} point | lineSegment | polygon | bitmap | pixelRectangle | passThru
+point @r{←}@code{GL_POINT_TOKEN} vertex lineSegment
+@r{←}@code{GL_LINE_TOKEN} vertex vertex | @code{GL_LINE_RESET_TOKEN}
+vertex vertex polygon @r{←}@code{GL_POLYGON_TOKEN} n polySpec polySpec
+@r{←} polySpec vertex | vertex vertex vertex bitmap
+@r{←}@code{GL_BITMAP_TOKEN} vertex pixelRectangle
+@r{←}@code{GL_DRAW_PIXEL_TOKEN} vertex | @code{GL_COPY_PIXEL_TOKEN}
+vertex passThru @r{←}@code{GL_PASS_THROUGH_TOKEN} value vertex @r{←} 2d
+| 3d | 3dColor | 3dColorTexture | 4dColorTexture 2d @r{←} value value 3d
+@r{←} value value value 3dColor @r{←} value value value color
+3dColorTexture @r{←} value value value color tex 4dColorTexture @r{←}
+value value value value color tex color @r{←} rgba | index rgba @r{←}
+value value value value index @r{←} value tex @r{←} value value value
+value
 
 @var{value} is a floating-point number, and @var{n} is a floating-point
 integer giving the number of vertices in the polygon.
@@ -7130,13 +6998,13 @@ Number of Values}
 @var{x}, @var{y}, @var{z}, , , 3
 
 @item @code{GL_3D_COLOR}
-@var{x}, @var{y}, @var{z}, @math{@var{k}}, , @math{3+@var{k}}
+@var{x}, @var{y}, @var{z}, @r{@var{k}}, , @r{3+@var{k}}
 
 @item @code{GL_3D_COLOR_TEXTURE}
-@var{x}, @var{y}, @var{z}, @math{@var{k}}, 4 , @math{7+@var{k}}
+@var{x}, @var{y}, @var{z}, @r{@var{k}}, 4 , @r{7+@var{k}}
 
 @item @code{GL_4D_COLOR_TEXTURE}
-@var{x}, @var{y}, @var{z}, @var{w}, @math{@var{k}}, 4 , @math{8+@var{k}}
+@var{x}, @var{y}, @var{z}, @var{w}, @r{@var{k}}, 4 , @r{8+@var{k}}
 
 @end table
 
@@ -7146,7 +7014,6 @@ is enabled. Feedback texture coordinates are generated, if texture
 coordinate generation is enabled. They are always transformed by the
 texture matrix.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
 value.
 
@@ -7161,26 +7028,25 @@ called while the render mode is @code{GL_FEEDBACK}, or if
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFinish 
+Block until all GL execution is complete.
 
-@defun glFinish 
-@heading block until all GL execution is complete
-@heading Description
 @code{glFinish} does not return until the effects of all previously
 called GL commands are complete. Such effects include all changes to GL
 state, all changes to connection state, and all changes to the frame
 buffer contents.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glFinish} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFlush 
+Force execution of GL commands in finite time.
 
-@defun glFlush 
-@heading force execution of GL commands in finite time
-@heading Description
 Different GL implementations buffer commands in several different
 locations, including network buffers and the graphics accelerator
 itself. @code{glFlush} empties all of these buffers, causing all issued
@@ -7194,16 +7060,15 @@ accelerator that buffers commands, all programs should call
 issued commands completed. For example, call @code{glFlush} before
 waiting for user input that depends on the generated image.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glFlush} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFogCoordPointer type stride pointer
+Define an array of fog coordinates.
 
-@defun glFogCoordPointer 
-@heading define an array of fog coordinates
-@heading Parameters
 @table @asis
 @item @var{type}
 Specifies the data type of each fog coordinate. Symbolic constants
@@ -7221,7 +7086,6 @@ in the array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glFogCoordPointer} specifies the location and data format of an
 array of fog coordinates to use when rendering. @var{type} specifies the
 data type of each fog coordinate, and @var{stride} specifies the byte
@@ -7247,33 +7111,37 @@ is used when @code{glDrawArrays}, @code{glMultiDrawArrays},
 @code{glDrawElements}, @code{glMultiDrawElements},
 @code{glDrawRangeElements}, or @code{glArrayElement} is called.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{type} is not either
 @code{GL_FLOAT} or @code{GL_DOUBLE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFogCoordd coord
+@deftypefunx void glFogCoordf coord
+@deftypefunx void glFogCoorddv coord
+@deftypefunx void glFogCoordfv coord
+Set the current fog coordinates.
 
-@defun glFogCoord 
-@heading set the current fog coordinates
-@heading Parameters
 @table @asis
 @item @var{coord}
 Specify the fog distance.
 
 @end table
 
-@heading Description
 @code{glFogCoord} specifies the fog coordinate that is associated with
 each vertex and the current raster position. The value specified is
 interpolated and used in computing the fog color (see @code{glFog}).
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFogf pname param
+@deftypefunx void glFogi pname param
+@deftypefunx void glFogfv pname params
+@deftypefunx void glFogiv pname params
+Specify fog parameters.
 
-@defun glFog 
-@heading specify fog parameters
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies a single-valued fog parameter. @code{GL_FOG_MODE},
@@ -7285,7 +7153,6 @@ Specifies the value that @var{pname} will be set to.
 
 @end table
 
-@heading Description
 Fog is initially disabled. While enabled, fog affects rasterized
 geometry, bitmaps, and pixel blocks, but not buffer clear operations. To
 enable and disable fog, call @code{glEnable} and @code{glDisable} with
@@ -7298,39 +7165,38 @@ for @var{pname}:
 @table @asis
 @item @code{GL_FOG_MODE}
 @var{params} is a single integer or floating-point value that specifies
-the equation to be used to compute the fog blend factor, @math{@var{f}}.
+the equation to be used to compute the fog blend factor, @r{@var{f}}.
 Three symbolic constants are accepted: @code{GL_LINEAR}, @code{GL_EXP},
 and @code{GL_EXP2}. The equations corresponding to these symbolic
 constants are defined below. The initial fog mode is @code{GL_EXP}.
 
 @item @code{GL_FOG_DENSITY}
 @var{params} is a single integer or floating-point value that specifies
-@math{@var{density}}, the fog density used in both exponential fog
+@r{@var{density}}, the fog density used in both exponential fog
 equations. Only nonnegative densities are accepted. The initial fog
 density is 1.
 
 @item @code{GL_FOG_START}
 @var{params} is a single integer or floating-point value that specifies
-@math{@var{start}}, the near distance used in the linear fog equation.
-The initial near distance is 0.
+@r{@var{start}}, the near distance used in the linear fog equation. The
+initial near distance is 0.
 
 @item @code{GL_FOG_END}
 @var{params} is a single integer or floating-point value that specifies
-@math{@var{end}}, the far distance used in the linear fog equation. The
+@r{@var{end}}, the far distance used in the linear fog equation. The
 initial far distance is 1.
 
 @item @code{GL_FOG_INDEX}
 @var{params} is a single integer or floating-point value that specifies
-@math{@var{i}_@var{f}}, the fog color index. The initial fog index is 0.
+@r{@var{i}_@var{f}}, the fog color index. The initial fog index is 0.
 
 @item @code{GL_FOG_COLOR}
 @var{params} contains four integer or floating-point values that specify
-@math{@var{C}_@var{f}}, the fog color. Integer values are mapped
-linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
-Floating-point values are mapped directly. After conversion, all color
-components are clamped to the range @math{[0,1]}. The initial fog color
-is (0, 0, 0, 0).
+@r{@var{C}_@var{f}}, the fog color. Integer values are mapped linearly
+such that the most positive representable value maps to 1.0, and the
+most negative representable value maps to @r{-1.0}. Floating-point
+values are mapped directly. After conversion, all color components are
+clamped to the range @r{[0,1]}. The initial fog color is (0, 0, 0, 0).
 
 @item @code{GL_FOG_COORD_SRC}
 @var{params} contains either of the following symbolic constants:
@@ -7343,38 +7209,37 @@ fog computation.
 @end table
 
 Fog blends a fog color with each rasterized pixel fragment's
-post-texturing color using a blending factor @math{@var{f}}. Factor
-@math{@var{f}} is computed in one of three ways, depending on the fog
-mode. Let @math{@var{c}} be either the distance in eye coordinate from
-the origin (in the case that the @code{GL_FOG_COORD_SRC} is
+post-texturing color using a blending factor @r{@var{f}}. Factor
+@r{@var{f}} is computed in one of three ways, depending on the fog mode.
+Let @r{@var{c}} be either the distance in eye coordinate from the origin
+(in the case that the @code{GL_FOG_COORD_SRC} is
 @code{GL_FRAGMENT_DEPTH}) or the current fog coordinate (in the case
 that @code{GL_FOG_COORD_SRC} is @code{GL_FOG_COORD}). The equation for
 @code{GL_LINEAR} fog is
-@math{@var{f}=@var{end}-@var{c},/@var{end}-@var{start},}
+@r{@var{f}=@var{end}-@var{c},/@var{end}-@var{start},}
 
 The equation for @code{GL_EXP} fog is
-@math{@var{f}=@var{e}^-(@var{density}·@var{c},),}
+@r{@var{f}=@var{e}^-(@var{density}·@var{c},),}
 
 The equation for @code{GL_EXP2} fog is
-@math{@var{f}=@var{e}^-(@var{density}·@var{c},),^2}
+@r{@var{f}=@var{e}^-(@var{density}·@var{c},),^2}
 
-Regardless of the fog mode, @math{@var{f}} is clamped to the range
-@math{[0,1]} after it is computed. Then, if the GL is in RGBA color
-mode, the fragment's red, green, and blue colors, represented by
-@math{@var{C}_@var{r}}, are replaced by
+Regardless of the fog mode, @r{@var{f}} is clamped to the range
+@r{[0,1]} after it is computed. Then, if the GL is in RGBA color mode,
+the fragment's red, green, and blue colors, represented by
+@r{@var{C}_@var{r}}, are replaced by
 
-@math{@var{C}_@var{r},^″=@var{f}×@var{C}_@var{r}+(1-@var{f},)×@var{C}_@var{f}}
+@r{@var{C}_@var{r},^″=@var{f}×@var{C}_@var{r}+(1-@var{f},)×@var{C}_@var{f}}
 
 Fog does not affect a fragment's alpha component.
 
-In color index mode, the fragment's color index @math{@var{i}_@var{r}}
-is replaced by
+In color index mode, the fragment's color index @r{@var{i}_@var{r}} is
+replaced by
 
-@math{@var{i}_@var{r},^″=@var{i}_@var{r}+(1-@var{f},)×@var{i}_@var{f}}
+@r{@var{i}_@var{r},^″=@var{i}_@var{r}+(1-@var{f},)×@var{i}_@var{f}}
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value, or if @var{pname} is @code{GL_FOG_MODE} and @var{params} is not
 an accepted value.
@@ -7386,11 +7251,11 @@ an accepted value.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFrontFace mode
+Define front- and back-facing polygons.
 
-@defun glFrontFace 
-@heading define front- and back-facing polygons
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies the orientation of front-facing polygons. @code{GL_CW} and
@@ -7398,7 +7263,6 @@ Specifies the orientation of front-facing polygons. @code{GL_CW} and
 
 @end table
 
-@heading Description
 In a scene composed entirely of opaque closed surfaces, back-facing
 polygons are never visible. Eliminating these invisible polygons has the
 obvious benefit of speeding up the rendering of the image. To enable and
@@ -7419,7 +7283,6 @@ selects counterclockwise polygons as front-facing; @code{GL_CW} selects
 clockwise polygons as front-facing. By default, counterclockwise
 polygons are taken to be front-facing.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -7427,11 +7290,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glFrustum left right bottom top nearVal farVal
+Multiply the current matrix by a perspective matrix.
 
-@defun glFrustum 
-@heading multiply the current matrix by a perspective matrix
-@heading Parameters
 @table @asis
 @item @var{left}
 @itemx @var{right}
@@ -7449,7 +7312,6 @@ distances must be positive.
 
 @end table
 
-@heading Description
 @code{glFrustum} describes a perspective matrix that produces a
 perspective projection. The current matrix (see @code{glMatrixMode}) is
 multiplied by this matrix and the result replaces the current matrix, as
@@ -7458,32 +7320,31 @@ argument:
 
 
 
-@math{[(2⁢@var{nearVal},/@var{right}-@var{left},, 0 @var{A} 0), (0
+@r{[(2⁢@var{nearVal},/@var{right}-@var{left},, 0 @var{A} 0), (0
 2⁢@var{nearVal},/@var{top}-@var{bottom},, @var{B} 0), (0 0 @var{C}
 @var{D}), (0 0 -1 0),]}
 
-@math{@var{A}=@var{right}+@var{left},/@var{right}-@var{left},}
+@r{@var{A}=@var{right}+@var{left},/@var{right}-@var{left},}
 
-@math{@var{B}=@var{top}+@var{bottom},/@var{top}-@var{bottom},}
+@r{@var{B}=@var{top}+@var{bottom},/@var{top}-@var{bottom},}
 
-@math{@var{C}=-@var{farVal}+@var{nearVal},/@var{farVal}-@var{nearVal},,}
+@r{@var{C}=-@var{farVal}+@var{nearVal},/@var{farVal}-@var{nearVal},,}
 
-@math{@var{D}=-2⁢@var{farVal}⁢@var{nearVal},/@var{farVal}-@var{nearVal},,}
+@r{@var{D}=-2⁢@var{farVal}⁢@var{nearVal},/@var{farVal}-@var{nearVal},,}
 
 
 
 Typically, the matrix mode is @code{GL_PROJECTION}, and
-@math{(@var{left},@var{bottom}-@var{nearVal})} and
-@math{(@var{right},@var{top}-@var{nearVal})} specify the points on the
-near clipping plane that are mapped to the lower left and upper right
-corners of the window, assuming that the eye is located at (0, 0, 0).
-@math{-@var{farVal}} specifies the location of the far clipping plane.
-Both @var{nearVal} and @var{farVal} must be positive.
+@r{(@var{left},@var{bottom}-@var{nearVal})} and
+@r{(@var{right},@var{top}-@var{nearVal})} specify the points on the near
+clipping plane that are mapped to the lower left and upper right corners
+of the window, assuming that the eye is located at (0, 0, 0).
+@r{-@var{farVal}} specifies the location of the far clipping plane. Both
+@var{nearVal} and @var{farVal} must be positive.
 
 Use @code{glPushMatrix} and @code{glPopMatrix} to save and restore the
 current matrix stack.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{nearVal} or @var{farVal} is
 not positive, or if @var{left} = @var{right}, or @var{bottom} =
 @var{top}, or @var{near} = @var{far}.
@@ -7492,11 +7353,11 @@ not positive, or if @var{left} = @var{right}, or @var{bottom} =
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGenBuffers n buffers
+Generate buffer object names.
 
-@defun glGenBuffers 
-@heading generate buffer object names
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of buffer object names to be generated.
@@ -7507,7 +7368,6 @@ stored.
 
 @end table
 
-@heading Description
 @code{glGenBuffers} returns @var{n} buffer object names in
 @var{buffers}. There is no guarantee that the names form a contiguous
 set of integers; however, it is guaranteed that none of the returned
@@ -7520,44 +7380,41 @@ returned by subsequent calls, unless they are first deleted with
 No buffer objects are associated with the returned buffer object names
 until they are first bound by calling @code{glBindBuffer}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glGenBuffers} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLuint glGenLists range
+Generate a contiguous set of empty display lists.
 
-@defun glGenLists 
-@heading generate a contiguous set of empty display lists
-@heading Parameters
 @table @asis
 @item @var{range}
 Specifies the number of contiguous empty display lists to be generated.
 
 @end table
 
-@heading Description
 @code{glGenLists} has one argument, @var{range}. It returns an integer
 @var{n} such that @var{range} contiguous empty display lists, named
-@math{@var{n}}, @math{@var{n}+1}, @math{@var{...}},
-@math{@var{n}+@var{range}-1}, are created. If @var{range} is 0, if there
-is no group of @var{range} contiguous names available, or if any error
-is generated, no display lists are generated, and 0 is returned.
+@r{@var{n}}, @r{@var{n}+1}, @r{@var{...}}, @r{@var{n}+@var{range}-1},
+are created. If @var{range} is 0, if there is no group of @var{range}
+contiguous names available, or if any error is generated, no display
+lists are generated, and 0 is returned.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{range} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glGenLists} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGenQueries n ids
+Generate query object names.
 
-@defun glGenQueries 
-@heading generate query object names
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of query object names to be generated.
@@ -7567,7 +7424,6 @@ Specifies an array in which the generated query object names are stored.
 
 @end table
 
-@heading Description
 @code{glGenQueries} returns @var{n} query object names in @var{ids}.
 There is no guarantee that the names form a contiguous set of integers;
 however, it is guaranteed that none of the returned names was in use
@@ -7580,18 +7436,17 @@ returned by subsequent calls, unless they are first deleted with
 No query objects are associated with the returned query object names
 until they are first used by calling @code{glBeginQuery}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glGenQueries} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGenTextures n textures
+Generate texture names.
 
-@defun glGenTextures 
-@heading generate texture names
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of texture names to be generated.
@@ -7601,7 +7456,6 @@ Specifies an array in which the generated texture names are stored.
 
 @end table
 
-@heading Description
 @code{glGenTextures} returns @var{n} texture names in @var{textures}.
 There is no guarantee that the names form a contiguous set of integers;
 however, it is guaranteed that none of the returned names was in use
@@ -7615,18 +7469,18 @@ Texture names returned by a call to @code{glGenTextures} are not
 returned by subsequent calls, unless they are first deleted with
 @code{glDeleteTextures}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glGenTextures} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetActiveAttrib program index bufSize length size type name
+Returns information about an active attribute variable for the specified
+program object.
 
-@defun glGetActiveAttrib 
-@heading Returns information about an active attribute variable for the specified program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -7655,7 +7509,6 @@ variable.
 
 @end table
 
-@heading Description
 @code{glGetActiveAttrib} returns information about an active attribute
 variable in the program object specified by @var{program}. The number of
 active attributes can be obtained by calling @code{glGetProgram} with
@@ -7714,7 +7567,6 @@ situation could occur if this function is called after a link operation
 that failed. If an error occurs, the return values @var{length},
 @var{size}, @var{type}, and @var{name} will be unmodified.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -7730,11 +7582,12 @@ execution of @code{glEnd}.
 
 @code{GL_INVALID_VALUE} is generated if @var{bufSize} is less than 0.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetActiveUniform program index bufSize length size type name
+Returns information about an active uniform variable for the specified
+program object.
 
-@defun glGetActiveUniform 
-@heading Returns information about an active uniform variable for the specified program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -7763,7 +7616,6 @@ variable.
 
 @end table
 
-@heading Description
 @code{glGetActiveUniform} returns information about an active uniform
 variable in the program object specified by @var{program}. The number of
 active uniform variables can be obtained by calling @code{glGetProgram}
@@ -7847,7 +7699,6 @@ situation could occur if this function is called after a link operation
 that failed. If an error occurs, the return values @var{length},
 @var{size}, @var{type}, and @var{name} will be unmodified.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -7863,11 +7714,11 @@ execution of @code{glEnd}.
 
 @code{GL_INVALID_VALUE} is generated if @var{bufSize} is less than 0.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetAttachedShaders program maxCount count shaders
+Returns the handles of the shader objects attached to a program object.
 
-@defun glGetAttachedShaders 
-@heading Returns the handles of the shader objects attached to a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -7884,7 +7735,6 @@ objects.
 
 @end table
 
-@heading Description
 @code{glGetAttachedShaders} returns the names of the shader objects
 attached to @var{program}. The names of shader objects that are attached
 to @var{program} will be returned in @var{shaders.} The actual number of
@@ -7900,7 +7750,6 @@ to @var{program}, a value of 0 will be returned in @var{count}. The
 actual number of attached shaders can be obtained by calling
 @code{glGetProgram} with the value @code{GL_ATTACHED_SHADERS}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -7913,11 +7762,11 @@ program object.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLint glGetAttribLocation program name
+Returns the location of an attribute variable.
 
-@defun glGetAttribLocation 
-@heading Returns the location of an attribute variable
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -7928,7 +7777,6 @@ variable whose location is to be queried.
 
 @end table
 
-@heading Description
 @code{glGetAttribLocation} queries the previously linked program object
 specified by @var{program} for the attribute variable specified by
 @var{name} and returns the index of the generic vertex attribute that is
@@ -7950,7 +7798,6 @@ effect the last time @code{glLinkProgram} was called for the specified
 program object. Attribute bindings that have been specified since the
 last link operation are not returned by @code{glGetAttribLocation}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -7964,11 +7811,11 @@ successfully linked.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetBufferParameteriv target value data
+Return parameters of a buffer object.
 
-@defun glGetBufferParameteriv 
-@heading return parameters of a buffer object
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object. The symbolic constant must be
@@ -7985,7 +7832,6 @@ Returns the requested parameter.
 
 @end table
 
-@heading Description
 @code{glGetBufferParameteriv} returns in @var{data} a selected parameter
 of the buffer object specified by @var{target}.
 
@@ -8010,7 +7856,6 @@ value is @code{GL_STATIC_DRAW}.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{value} is
 not an accepted value.
 
@@ -8021,11 +7866,11 @@ name 0 is bound to @var{target}.
 @code{glGetBufferParameteriv} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetBufferPointerv target pname params
+Return the pointer to a mapped buffer object's data store.
 
-@defun glGetBufferPointerv 
-@heading return the pointer to a mapped buffer object's data store
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object. The symbolic constant must be
@@ -8041,7 +7886,6 @@ Returns the pointer value specified by @var{pname}.
 
 @end table
 
-@heading Description
 @code{glGetBufferPointerv} returns pointer information. @var{pname} is a
 symbolic constant indicating the pointer to be returned, which must be
 @code{GL_BUFFER_MAP_POINTER}, the pointer to which the buffer object's
@@ -8049,7 +7893,6 @@ data store is mapped. If the data store is not currently mapped,
 @code{NULL} is returned. @var{params} is a pointer to a location in
 which to place the returned pointer value.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an accepted value.
 
@@ -8060,11 +7903,11 @@ name 0 is bound to @var{target}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetBufferSubData target offset size data
+Returns a subset of a buffer object's data store.
 
-@defun glGetBufferSubData 
-@heading returns a subset of a buffer object's data store
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object. The symbolic constant must be
@@ -8084,7 +7927,6 @@ returned.
 
 @end table
 
-@heading Description
 @code{glGetBufferSubData} returns some or all of the data from the
 buffer object currently bound to @var{target}. Data starting at byte
 offset @var{offset} and extending for @var{size} bytes is copied from
@@ -8093,7 +7935,6 @@ thrown if the buffer object is currently mapped, or if @var{offset} and
 @var{size} together define a range beyond the bounds of the buffer
 object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_ARRAY_BUFFER}, @code{GL_ELEMENT_ARRAY_BUFFER},
 @code{GL_PIXEL_PACK_BUFFER}, or @code{GL_PIXEL_UNPACK_BUFFER}.
@@ -8112,18 +7953,17 @@ queried is mapped.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetClipPlane plane equation
+Return the coefficients of the specified clipping plane.
 
-@defun glGetClipPlane 
-@heading return the coefficients of the specified clipping plane
-@heading Parameters
 @table @asis
 @item @var{plane}
 Specifies a clipping plane. The number of clipping planes depends on the
 implementation, but at least six clipping planes are supported. They are
-identified by symbolic names of the form
-@code{GL_CLIP_PLANE}@math{@var{i}} where i ranges from 0 to the value of
-@code{GL_MAX_CLIP_PLANES} - 1.
+identified by symbolic names of the form @code{GL_CLIP_PLANE}@r{@var{i}}
+where i ranges from 0 to the value of @code{GL_MAX_CLIP_PLANES} - 1.
 
 @item @var{equation}
 Returns four double-precision values that are the coefficients of the
@@ -8132,11 +7972,9 @@ plane equation of @var{plane} in eye coordinates. The initial value is
 
 @end table
 
-@heading Description
 @code{glGetClipPlane} returns in @var{equation} the four coefficients of
 the plane equation for @var{plane}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{plane} is not an accepted
 value.
 
@@ -8144,11 +7982,12 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetColorTableParameterfv target pname params
+@deftypefunx void glGetColorTableParameteriv target pname params
+Get color lookup table parameters.
 
-@defun glGetColorTableParameter 
-@heading get color lookup table parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 The target color table. Must be @code{GL_COLOR_TABLE},
@@ -8171,7 +8010,6 @@ A pointer to an array where the values of the parameter will be stored.
 
 @end table
 
-@heading Description
 Returns parameters specific to color table @var{target}.
 
 When @var{pname} is set to @code{GL_COLOR_TABLE_SCALE} or
@@ -8227,7 +8065,6 @@ values indicated.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an acceptable value.
 
@@ -8235,11 +8072,11 @@ not an acceptable value.
 @code{glGetColorTableParameter} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetColorTable target format type table
+Retrieve contents of a color lookup table.
 
-@defun glGetColorTable 
-@heading retrieve contents of a color lookup table
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_COLOR_TABLE}, @code{GL_POST_CONVOLUTION_COLOR_TABLE},
@@ -8269,7 +8106,6 @@ of the color table.
 
 @end table
 
-@heading Description
 @code{glGetColorTable} returns in @var{table} the contents of the color
 table specified by @var{target}. No pixel transfer operations are
 performed, but pixel storage modes that are applicable to
@@ -8317,7 +8153,6 @@ Red
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -8358,11 +8193,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetCompressedTexImage target lod img
+Return a compressed texture image.
 
-@defun glGetCompressedTexImage 
-@heading return a compressed texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies which texture is to be obtained. @code{GL_TEXTURE_1D},
@@ -8376,15 +8211,14 @@ Specifies which texture is to be obtained. @code{GL_TEXTURE_1D},
 
 @item @var{lod}
 Specifies the level-of-detail number of the desired image. Level 0 is
-the base image level. Level @math{@var{n}} is the @math{@var{n}}th
-mipmap reduction image.
+the base image level. Level @r{@var{n}} is the @r{@var{n}}th mipmap
+reduction image.
 
 @item @var{img}
 Returns the compressed texture image.
 
 @end table
 
-@heading Description
 @code{glGetCompressedTexImage} returns the compressed texture image
 associated with @var{target} and @var{lod} into @var{img}. @var{img}
 should be an array of @code{GL_TEXTURE_COMPRESSED_IMAGE_SIZE} bytes.
@@ -8412,7 +8246,6 @@ later use, associate the internal format and size with the retrieved
 texture image. These data can be used by the respective texture or
 subtexture loading routine used for loading @var{target} textures.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{lod} is less than zero or
 greater than the maximum number of LODs permitted by the implementation.
 
@@ -8433,11 +8266,11 @@ required would exceed the data store size.
 @code{glGetCompressedTexImage} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetConvolutionFilter target format type image
+Get current 1D or 2D convolution filter kernel.
 
-@defun glGetConvolutionFilter 
-@heading get current 1D or 2D convolution filter kernel
-@heading Parameters
 @table @asis
 @item @var{target}
 The filter to be retrieved. Must be one of @code{GL_CONVOLUTION_1D} or
@@ -8466,7 +8299,6 @@ Pointer to storage for the output image.
 
 @end table
 
-@heading Description
 @code{glGetConvolutionFilter} returns the current 1D or 2D convolution
 filter kernel as an image. The one- or two-dimensional image is placed
 in @var{image} according to the specifications in @var{format} and
@@ -8515,7 +8347,6 @@ Red
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -8556,11 +8387,12 @@ memory a datum indicated by @var{type}.
 @code{glGetConvolutionFilter} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetConvolutionParameterfv target pname params
+@deftypefunx void glGetConvolutionParameteriv target pname params
+Get convolution parameters.
 
-@defun glGetConvolutionParameter 
-@heading get convolution parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 The filter whose parameters are to be retrieved. Must be one of
@@ -8580,7 +8412,6 @@ Pointer to storage for the parameters to be retrieved.
 
 @end table
 
-@heading Description
 @code{glGetConvolutionParameter} retrieves convolution parameters.
 @var{target} determines which convolution filter is queried. @var{pname}
 determines which parameter is returned:
@@ -8642,7 +8473,6 @@ The maximum acceptable filter image height.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -8657,11 +8487,11 @@ or @code{GL_MAX_CONVOLUTION_HEIGHT}.
 @code{glGetConvolutionParameter} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLenum glGetError 
+Return error information.
 
-@defun glGetError 
-@heading return error information
-@heading Description
 @code{glGetError} returns the value of the error flag. Each detectable
 error is assigned a numeric code and symbolic name. When an error
 occurs, the error flag is set to the appropriate error code value. No
@@ -8728,16 +8558,16 @@ generating the error is ignored and has no effect on the GL state or
 frame buffer contents. If the generating command returns a value, it
 returns 0. If @code{glGetError} itself generates an error, it returns 0.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glGetError} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}. In this case, @code{glGetError} returns 0.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetHistogramParameterfv target pname params
+@deftypefunx void glGetHistogramParameteriv target pname params
+Get histogram parameters.
 
-@defun glGetHistogramParameter 
-@heading get histogram parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be one of @code{GL_HISTOGRAM} or @code{GL_PROXY_HISTOGRAM}.
@@ -8754,7 +8584,6 @@ Pointer to storage for the returned values.
 
 @end table
 
-@heading Description
 @code{glGetHistogramParameter} is used to query parameter values for the
 current histogram or for a proxy. The histogram state information may be
 queried by calling @code{glGetHistogramParameter} with a @var{target} of
@@ -8797,7 +8626,6 @@ Value of the @var{sink} parameter
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -8808,11 +8636,11 @@ allowable values.
 @code{glGetHistogramParameter} is executed between the execution of
 @code{glBegin} and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetHistogram target reset format type values
+Get histogram table.
 
-@defun glGetHistogram 
-@heading get histogram table
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_HISTOGRAM}.
@@ -8845,7 +8673,6 @@ A pointer to storage for the returned histogram table.
 
 @end table
 
-@heading Description
 @code{glGetHistogram} returns the current histogram table as a
 one-dimensional image with the same width as the histogram. No pixel
 transfer operations are performed on this image, but pixel storage modes
@@ -8889,7 +8716,6 @@ Red
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_HISTOGRAM}.
 
@@ -8930,18 +8756,19 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetLightfv light pname params
+@deftypefunx void glGetLightiv light pname params
+Return light source parameter values.
 
-@defun glGetLight 
-@heading return light source parameter values
-@heading Parameters
 @table @asis
 @item @var{light}
 Specifies a light source. The number of possible lights depends on the
 implementation, but at least eight lights are supported. They are
-identified by symbolic names of the form @code{GL_LIGHT}@math{@var{i}}
-where @math{@var{i}} ranges from 0 to the value of @code{GL_MAX_LIGHTS}
-1.
+identified by symbolic names of the form @code{GL_LIGHT}@r{@var{i}}
+where @r{@var{i}} ranges from 0 to the value of @code{GL_MAX_LIGHTS} -
+1.
 
 @item @var{pname}
 Specifies a light source parameter for @var{light}. Accepted symbolic
@@ -8955,14 +8782,12 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetLight} returns in @var{params} the value or values of a light
 source parameter. @var{light} names the light and is a symbolic name of
-the form @code{GL_LIGHT}@math{@var{i}} where i ranges from 0 to the
-value of @code{GL_MAX_LIGHTS} - 1. @code{GL_MAX_LIGHTS} is an
-implementation dependent constant that is greater than or equal to
-eight. @var{pname} specifies one of ten light source parameters, again
-by symbolic name.
+the form @code{GL_LIGHT}@r{@var{i}} where i ranges from 0 to the value
+of @code{GL_MAX_LIGHTS} - 1. @code{GL_MAX_LIGHTS} is an implementation
+dependent constant that is greater than or equal to eight. @var{pname}
+specifies one of ten light source parameters, again by symbolic name.
 
 The following parameters are defined:
 
@@ -8972,8 +8797,8 @@ The following parameters are defined:
 the ambient intensity of the light source. Integer values, when
 requested, are linearly mapped from the internal floating-point
 representation such that 1.0 maps to the most positive representable
-integer value, and @math{-1.0} maps to the most negative representable
-integer value. If the internal value is outside the range @math{[-1,1]},
+integer value, and @r{-1.0} maps to the most negative representable
+integer value. If the internal value is outside the range @r{[-1,1]},
 the corresponding integer return value is undefined. The initial value
 is (0, 0, 0, 1).
 
@@ -8982,8 +8807,8 @@ is (0, 0, 0, 1).
 the diffuse intensity of the light source. Integer values, when
 requested, are linearly mapped from the internal floating-point
 representation such that 1.0 maps to the most positive representable
-integer value, and @math{-1.0} maps to the most negative representable
-integer value. If the internal value is outside the range @math{[-1,1]},
+integer value, and @r{-1.0} maps to the most negative representable
+integer value. If the internal value is outside the range @r{[-1,1]},
 the corresponding integer return value is undefined. The initial value
 for @code{GL_LIGHT0} is (1, 1, 1, 1); for other lights, the initial
 value is (0, 0, 0, 0).
@@ -8993,8 +8818,8 @@ value is (0, 0, 0, 0).
 the specular intensity of the light source. Integer values, when
 requested, are linearly mapped from the internal floating-point
 representation such that 1.0 maps to the most positive representable
-integer value, and @math{-1.0} maps to the most negative representable
-integer value. If the internal value is outside the range @math{[-1,1]},
+integer value, and @r{-1.0} maps to the most negative representable
+integer value. If the internal value is outside the range @r{[-1,1]},
 the corresponding integer return value is undefined. The initial value
 for @code{GL_LIGHT0} is (1, 1, 1, 1); for other lights, the initial
 value is (0, 0, 0, 0).
@@ -9018,7 +8843,7 @@ coordinates. They will not be equal to the values specified using
 @code{glLight} was called. Although spot direction is normalized before
 being used in the lighting equation, the returned values are the
 transformed versions of the specified values prior to normalization. The
-initial value is @math{(0,0-1)}.
+initial value is @r{(0,0-1)}.
 
 @item @code{GL_SPOT_EXPONENT}
 @var{params} returns a single integer or floating-point value
@@ -9053,7 +8878,6 @@ representation to the nearest integer. The initial value is 0.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{light} or @var{pname} is not
 an accepted value.
 
@@ -9061,11 +8885,13 @@ an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetMapdv target query v
+@deftypefunx void glGetMapfv target query v
+@deftypefunx void glGetMapiv target query v
+Return evaluator parameters.
 
-@defun glGetMap 
-@heading return evaluator parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the symbolic name of a map. Accepted values are
@@ -9087,7 +8913,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glMap1} and @code{glMap2} define evaluators. @code{glGetMap}
 returns evaluator parameters. @var{target} chooses a map, @var{query}
 selects a specific parameter, and @var{v} points to storage where the
@@ -9101,34 +8926,33 @@ the @code{glMap1} and @code{glMap2} reference pages.
 @table @asis
 @item @code{GL_COEFF}
 @var{v} returns the control points for the evaluator function.
-One-dimensional evaluators return @math{@var{order}} control points, and
-two-dimensional evaluators return @math{@var{uorder}×@var{vorder}}
-control points. Each control point consists of one, two, three, or four
-integer, single-precision floating-point, or double-precision
-floating-point values, depending on the type of the evaluator. The GL
-returns two-dimensional control points in row-major order, incrementing
-the @math{@var{uorder}} index quickly and the @math{@var{vorder}} index
-after each row. Integer values, when requested, are computed by rounding
-the internal floating-point values to the nearest integer values.
+One-dimensional evaluators return @r{@var{order}} control points, and
+two-dimensional evaluators return @r{@var{uorder}×@var{vorder}} control
+points. Each control point consists of one, two, three, or four integer,
+single-precision floating-point, or double-precision floating-point
+values, depending on the type of the evaluator. The GL returns
+two-dimensional control points in row-major order, incrementing the
+@r{@var{uorder}} index quickly and the @r{@var{vorder}} index after each
+row. Integer values, when requested, are computed by rounding the
+internal floating-point values to the nearest integer values.
 
 @item @code{GL_ORDER}
 @var{v} returns the order of the evaluator function. One-dimensional
-evaluators return a single value, @math{@var{order}}. The initial value
-is 1. Two-dimensional evaluators return two values, @math{@var{uorder}}
-and @math{@var{vorder}}. The initial value is 1,1.
+evaluators return a single value, @r{@var{order}}. The initial value is
+1. Two-dimensional evaluators return two values, @r{@var{uorder}} and
+@r{@var{vorder}}. The initial value is 1,1.
 
 @item @code{GL_DOMAIN}
-@var{v} returns the linear @math{@var{u}} and @math{@var{v}} mapping
-parameters. One-dimensional evaluators return two values,
-@math{@var{u1}} and @math{@var{u2}}, as specified by @code{glMap1}.
-Two-dimensional evaluators return four values (@math{@var{u1}},
-@math{@var{u2}}, @math{@var{v1}}, and @math{@var{v2}}) as specified by
-@code{glMap2}. Integer values, when requested, are computed by rounding
-the internal floating-point values to the nearest integer values.
+@var{v} returns the linear @r{@var{u}} and @r{@var{v}} mapping
+parameters. One-dimensional evaluators return two values, @r{@var{u1}}
+and @r{@var{u2}}, as specified by @code{glMap1}. Two-dimensional
+evaluators return four values (@r{@var{u1}}, @r{@var{u2}}, @r{@var{v1}},
+and @r{@var{v2}}) as specified by @code{glMap2}. Integer values, when
+requested, are computed by rounding the internal floating-point values
+to the nearest integer values.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{target} or
 @var{query} is not an accepted value.
 
@@ -9136,11 +8960,12 @@ the internal floating-point values to the nearest integer values.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetMaterialfv face pname params
+@deftypefunx void glGetMaterialiv face pname params
+Return material parameters.
 
-@defun glGetMaterial 
-@heading return material parameters
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies which of the two materials is being queried. @code{GL_FRONT}
@@ -9157,7 +8982,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetMaterial} returns in @var{params} the value or values of
 parameter @var{pname} of material @var{face}. Six parameters are
 defined:
@@ -9168,8 +8992,8 @@ defined:
 the ambient reflectance of the material. Integer values, when requested,
 are linearly mapped from the internal floating-point representation such
 that 1.0 maps to the most positive representable integer value, and
-@math{-1.0} maps to the most negative representable integer value. If
-the internal value is outside the range @math{[-1,1]}, the corresponding
+@r{-1.0} maps to the most negative representable integer value. If the
+internal value is outside the range @r{[-1,1]}, the corresponding
 integer return value is undefined. The initial value is (0.2, 0.2, 0.2,
 1.0)
 
@@ -9178,8 +9002,8 @@ integer return value is undefined. The initial value is (0.2, 0.2, 0.2,
 the diffuse reflectance of the material. Integer values, when requested,
 are linearly mapped from the internal floating-point representation such
 that 1.0 maps to the most positive representable integer value, and
-@math{-1.0} maps to the most negative representable integer value. If
-the internal value is outside the range @math{[-1,1]}, the corresponding
+@r{-1.0} maps to the most negative representable integer value. If the
+internal value is outside the range @r{[-1,1]}, the corresponding
 integer return value is undefined. The initial value is (0.8, 0.8, 0.8,
 1.0).
 
@@ -9188,8 +9012,8 @@ integer return value is undefined. The initial value is (0.8, 0.8, 0.8,
 the specular reflectance of the material. Integer values, when
 requested, are linearly mapped from the internal floating-point
 representation such that 1.0 maps to the most positive representable
-integer value, and @math{-1.0} maps to the most negative representable
-integer value. If the internal value is outside the range @math{[-1,1]},
+integer value, and @r{-1.0} maps to the most negative representable
+integer value. If the internal value is outside the range @r{[-1,1]},
 the corresponding integer return value is undefined. The initial value
 is (0, 0, 0, 1).
 
@@ -9198,8 +9022,8 @@ is (0, 0, 0, 1).
 the emitted light intensity of the material. Integer values, when
 requested, are linearly mapped from the internal floating-point
 representation such that 1.0 maps to the most positive representable
-integer value, and @math{-1.0} maps to the most negative representable
-integer value. If the internal value is outside the range @math{[-1,1]},
+integer value, and @r{-1.0} maps to the most negative representable
+integer value. If the internal value is outside the range @r{[-1,1]},
 the corresponding integer return value is undefined. The initial value
 is (0, 0, 0, 1).
 
@@ -9219,7 +9043,6 @@ to the nearest integer values.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{face} or @var{pname} is not
 an accepted value.
 
@@ -9227,11 +9050,12 @@ an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetMinmaxParameterfv target pname params
+@deftypefunx void glGetMinmaxParameteriv target pname params
+Get minmax parameters.
 
-@defun glGetMinmaxParameter 
-@heading get minmax parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_MINMAX}.
@@ -9245,7 +9069,6 @@ A pointer to storage for the retrieved parameters.
 
 @end table
 
-@heading Description
 @code{glGetMinmaxParameter} retrieves parameters for the current minmax
 table by setting @var{pname} to one of the following values:
 
@@ -9265,7 +9088,6 @@ Value of the @var{sink} parameter
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_MINMAX}.
 
@@ -9276,11 +9098,11 @@ allowable values.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetMinmax target reset format types values
+Get minimum and maximum pixel values.
 
-@defun glGetMinmax 
-@heading get minimum and maximum pixel values
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_MINMAX}.
@@ -9313,7 +9135,6 @@ A pointer to storage for the returned values.
 
 @end table
 
-@heading Description
 @code{glGetMinmax} returns the accumulated minimum and maximum pixel
 values (computed on a per-component basis) in a one-dimensional image of
 width 2. The first set of return values are the minima, and the second
@@ -9365,7 +9186,6 @@ to the return values are reset to their initial values. Minimum and
 maximum values that are not returned are not modified, even if
 @var{reset} is @code{GL_TRUE}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_MINMAX}.
 
@@ -9406,11 +9226,13 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetPixelMapfv map data
+@deftypefunx void glGetPixelMapuiv map data
+@deftypefunx void glGetPixelMapusv map data
+Return the specified pixel map.
 
-@defun glGetPixelMap 
-@heading return the specified pixel map
-@heading Parameters
 @table @asis
 @item @var{map}
 Specifies the name of the pixel map to return. Accepted values are
@@ -9425,7 +9247,6 @@ Returns the pixel map contents.
 
 @end table
 
-@heading Description
 See the @code{glPixelMap} reference page for a description of the
 acceptable values for the @var{map} parameter. @code{glGetPixelMap}
 returns in @var{data} the contents of the pixel map specified in
@@ -9452,7 +9273,6 @@ range [0,1].
 To determine the required size of @var{map}, call @code{glGet} with the
 appropriate symbolic constant.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{map} is not an accepted
 value.
 
@@ -9484,11 +9304,11 @@ needed to store in memory a GLushort datum.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetPointerv pname params
+Return the address of the specified pointer.
 
-@defun glGetPointerv 
-@heading return the address of the specified pointer
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies the array or buffer pointer to be returned. Symbolic constants
@@ -9505,7 +9325,6 @@ Returns the pointer value specified by @var{pname}.
 
 @end table
 
-@heading Description
 @code{glGetPointerv} returns pointer information. @var{pname} is a
 symbolic constant indicating the pointer to be returned, and
 @var{params} is a pointer to a location in which to place the returned
@@ -9519,37 +9338,34 @@ the pointer returned is a byte offset into the buffer object's data
 store. Buffer objects are only available in OpenGL versions 1.5 and
 greater.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetPolygonStipple pattern
+Return the polygon stipple pattern.
 
-@defun glGetPolygonStipple 
-@heading return the polygon stipple pattern
-@heading Parameters
 @table @asis
 @item @var{pattern}
 Returns the stipple pattern. The initial value is all 1's.
 
 @end table
 
-@heading Description
-@code{glGetPolygonStipple} returns to @var{pattern} a @math{32×32}
-polygon stipple pattern. The pattern is packed into memory as if
+@code{glGetPolygonStipple} returns to @var{pattern} a @r{32×32} polygon
+stipple pattern. The pattern is packed into memory as if
 @code{glReadPixels} with both @var{height} and @var{width} of 32,
 @var{type} of @code{GL_BITMAP}, and @var{format} of
 @code{GL_COLOR_INDEX} were called, and the stipple pattern were stored
-in an internal @math{32×32} color index buffer. Unlike
-@code{glReadPixels}, however, pixel transfer operations (shift, offset,
-pixel map) are not applied to the returned stipple image.
+in an internal @r{32×32} color index buffer. Unlike @code{glReadPixels},
+however, pixel transfer operations (shift, offset, pixel map) are not
+applied to the returned stipple image.
 
 If a non-zero named buffer object is bound to the
 @code{GL_PIXEL_PACK_BUFFER} target (see @code{glBindBuffer}) while a
 polygon stipple pattern is requested, @var{pattern} is treated as a byte
 offset into the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if a non-zero buffer object
 name is bound to the @code{GL_PIXEL_PACK_BUFFER} target and the buffer
 object's data store is currently mapped.
@@ -9563,11 +9379,11 @@ required would exceed the data store size.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetProgramInfoLog program maxLength length infoLog
+Returns the information log for a program object.
 
-@defun glGetProgramInfoLog 
-@heading Returns the information log for a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object whose information log is to be queried.
@@ -9586,7 +9402,6 @@ log.
 
 @end table
 
-@heading Description
 @code{glGetProgramInfoLog} returns the information log for the specified
 program object. The information log for a program object is modified
 when the program object is linked or validated. The string that is
@@ -9608,7 +9423,6 @@ contain diagnostic messages, warning messages, and other information.
 When a program object is created, its information log will be a string
 of length 0.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -9621,11 +9435,11 @@ program object.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetProgramiv program pname params
+Returns a parameter from a program object.
 
-@defun glGetProgramiv 
-@heading Returns a parameter from a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -9643,7 +9457,6 @@ Returns the requested object parameter.
 
 @end table
 
-@heading Description
 @code{glGetProgram} returns in @var{params} the value of a parameter for
 a specific program object. The following parameters are defined:
 
@@ -9710,7 +9523,6 @@ variable name). If no active uniform variables exist, 0 is returned.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -9724,11 +9536,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetQueryiv target pname params
+Return parameters of a query object target.
 
-@defun glGetQueryiv 
-@heading return parameters of a query object target
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies a query object target. Must be @code{GL_SAMPLES_PASSED}.
@@ -9742,7 +9554,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetQueryiv} returns in @var{params} a selected parameter of the
 query object target specified by @var{target}.
 
@@ -9763,7 +9574,6 @@ obtained from @code{glGetQueryObject} are useless.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an accepted value.
 
@@ -9771,11 +9581,12 @@ not an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetQueryObjectiv id pname params
+@deftypefunx void glGetQueryObjectuiv id pname params
+Return parameters of a query object.
 
-@defun glGetQueryObject 
-@heading return parameters of a query object
-@heading Parameters
 @table @asis
 @item @var{id}
 Specifies the name of a query object.
@@ -9789,7 +9600,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetQueryObject} returns in @var{params} a selected parameter of
 the query object specified by @var{id}.
 
@@ -9810,7 +9620,6 @@ available as well.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
@@ -9824,11 +9633,11 @@ currently active query object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetSeparableFilter target format type row column span
+Get separable convolution filter kernel images.
 
-@defun glGetSeparableFilter 
-@heading get separable convolution filter kernel images
-@heading Parameters
 @table @asis
 @item @var{target}
 The separable filter to be retrieved. Must be @code{GL_SEPARABLE_2D}.
@@ -9862,7 +9671,6 @@ Pointer to storage for the span filter image (currently unused).
 
 @end table
 
-@heading Description
 @code{glGetSeparableFilter} returns the two one-dimensional filter
 kernel images for the current separable 2D convolution filter. The row
 image is placed in @var{row} and the column image is placed in
@@ -9916,7 +9724,6 @@ Red
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_SEPARABLE_2D}.
 
@@ -9957,11 +9764,11 @@ store in memory a datum indicated by @var{type}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetShaderInfoLog shader maxLength length infoLog
+Returns the information log for a shader object.
 
-@defun glGetShaderInfoLog 
-@heading Returns the information log for a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the shader object whose information log is to be queried.
@@ -9980,7 +9787,6 @@ log.
 
 @end table
 
-@heading Description
 @code{glGetShaderInfoLog} returns the information log for the specified
 shader object. The information log for a shader object is modified when
 the shader is compiled. The string that is returned will be null
@@ -10000,7 +9806,6 @@ diagnostic messages, warning messages, and other information about the
 last compile operation. When a shader object is created, its information
 log will be a string of length 0.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -10013,11 +9818,11 @@ object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetShaderSource shader bufSize length source
+Returns the source code string from a shader object.
 
-@defun glGetShaderSource 
-@heading Returns the source code string from a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the shader object to be queried.
@@ -10036,7 +9841,6 @@ string.
 
 @end table
 
-@heading Description
 @code{glGetShaderSource} returns the concatenation of the source code
 strings from the shader object specified by @var{shader}. The source
 code strings for a shader object are the result of a previous call to
@@ -10052,7 +9856,6 @@ string is not required, a value of @code{NULL} can be passed in the
 returned source code string can be obtained by calling
 @code{glGetShader} with the value @code{GL_SHADER_SOURCE_LENGTH}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -10065,11 +9868,11 @@ object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetShaderiv shader pname params
+Returns a parameter from a shader object.
 
-@defun glGetShaderiv 
-@heading Returns a parameter from a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the shader object to be queried.
@@ -10085,7 +9888,6 @@ Returns the requested object parameter.
 
 @end table
 
-@heading Description
 @code{glGetShader} returns in @var{params} the value of a parameter for
 a specific shader object. The following parameters are defined:
 
@@ -10118,7 +9920,6 @@ returned.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -10132,11 +9933,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun const-GLubyte* glGetString name
+Return a string describing the current GL connection.
 
-@defun glGetString 
-@heading return a string describing the current GL connection
-@heading Parameters
 @table @asis
 @item @var{name}
 Specifies a symbolic constant, one of @code{GL_VENDOR},
@@ -10145,7 +9946,6 @@ Specifies a symbolic constant, one of @code{GL_VENDOR},
 
 @end table
 
-@heading Description
 @code{glGetString} returns a pointer to a static string describing some
 aspect of the current GL connection. @var{name} can be one of the
 following:
@@ -10206,7 +10006,6 @@ number and the vendor-specific information.
 
 All strings are null-terminated.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{name} is not an accepted
 value.
 
@@ -10214,11 +10013,12 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetTexEnvfv target pname params
+@deftypefunx void glGetTexEnviv target pname params
+Return texture environment parameters.
 
-@defun glGetTexEnv 
-@heading return texture environment parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies a texture environment. May be @code{GL_TEXTURE_ENV},
@@ -10240,7 +10040,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetTexEnv} returns in @var{params} selected values of a texture
 environment that was specified with @code{glTexEnv}. @var{target}
 specifies a texture environment.
@@ -10266,7 +10065,7 @@ symbolic constant. The initial value is @code{GL_MODULATE}.
 @var{params} returns four integer or floating-point values that are the
 texture environment color. Integer values, when requested, are linearly
 mapped from the internal floating-point representation such that 1.0
-maps to the most positive representable integer, and @math{-1.0} maps to
+maps to the most positive representable integer, and @r{-1.0} maps to
 the most negative representable integer. The initial value is (0, 0, 0,
 0).
 
@@ -10357,7 +10156,6 @@ value is @code{GL_FALSE}.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an accepted value.
 
@@ -10365,11 +10163,13 @@ not an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetTexGendv coord pname params
+@deftypefunx void glGetTexGenfv coord pname params
+@deftypefunx void glGetTexGeniv coord pname params
+Return texture coordinate generation parameters.
 
-@defun glGetTexGen 
-@heading return texture coordinate generation parameters
-@heading Parameters
 @table @asis
 @item @var{coord}
 Specifies a texture coordinate. Must be @code{GL_S}, @code{GL_T},
@@ -10386,7 +10186,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetTexGen} returns in @var{params} selected parameters of a
 texture coordinate generation function that was specified using
 @code{glTexGen}. @var{coord} names one of the (@var{s}, @var{t},
@@ -10415,7 +10214,6 @@ modelview matrix was identity when @code{glTexGen} was called.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{coord} or @var{pname} is not
 an accepted value.
 
@@ -10423,11 +10221,11 @@ an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetTexImage target level format type img
+Return a texture image.
 
-@defun glGetTexImage 
-@heading return a texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies which texture is to be obtained. @code{GL_TEXTURE_1D},
@@ -10441,8 +10239,8 @@ Specifies which texture is to be obtained. @code{GL_TEXTURE_1D},
 
 @item @var{level}
 Specifies the level-of-detail number of the desired image. Level 0 is
-the base image level. Level @math{@var{n}} is the @math{@var{n}}th
-mipmap reduction image.
+the base image level. Level @r{@var{n}} is the @r{@var{n}}th mipmap
+reduction image.
 
 @item @var{format}
 Specifies a pixel format for the returned data. The supported formats
@@ -10468,7 +10266,6 @@ specified by @var{type}.
 
 @end table
 
-@heading Description
 @code{glGetTexImage} returns a texture image into @var{img}.
 @var{target} specifies whether the desired texture image is one
 specified by @code{glTexImage1D} (@code{GL_TEXTURE_1D}),
@@ -10517,15 +10314,14 @@ storage required for each pixel, based on @var{format} and @var{type}.
 Be sure to take the pixel storage parameters into account, especially
 @code{GL_PACK_ALIGNMENT}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target}, @var{format}, or
 @var{type} is not an accepted value.
 
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁡(@var{max},)}, where @math{@var{max}} is the returned
-value of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁡(@var{max},)}, where @r{@var{max}} is the returned value
+of @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_OPERATION} is returned if @var{type} is one of
 @code{GL_UNSIGNED_BYTE_3_3_2}, @code{GL_UNSIGNED_BYTE_2_3_3_REV},
@@ -10558,11 +10354,12 @@ a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetTexLevelParameterfv target level pname params
+@deftypefunx void glGetTexLevelParameteriv target level pname params
+Return texture parameter values for a specific level of detail.
 
-@defun glGetTexLevelParameter 
-@heading return texture parameter values for a specific level of detail
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the symbolic name of the target texture, either
@@ -10578,8 +10375,8 @@ Specifies the symbolic name of the target texture, either
 
 @item @var{level}
 Specifies the level-of-detail number of the desired image. Level 0 is
-the base image level. Level @math{@var{n}} is the @math{@var{n}}th
-mipmap reduction image.
+the base image level. Level @r{@var{n}} is the @r{@var{n}}th mipmap
+reduction image.
 
 @item @var{pname}
 Specifies the symbolic name of a texture parameter.
@@ -10597,7 +10394,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetTexLevelParameter} returns in @var{params} texture parameter
 values for a specific level-of-detail value, specified as @var{level}.
 @var{target} defines the target texture, either @code{GL_TEXTURE_1D},
@@ -10693,14 +10489,13 @@ bytes of the compressed texture image that would be returned from
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an accepted value.
 
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2}@var{max}, where @var{max} is the returned value of
+@r{@var{log}_2}@var{max}, where @var{max} is the returned value of
 @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_OPERATION} is generated if
@@ -10711,11 +10506,12 @@ not an accepted value.
 @code{GL_TEXTURE_COMPRESSED_IMAGE_SIZE} is queried on texture images
 with an uncompressed internal format or on proxy targets.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetTexParameterfv target pname params
+@deftypefunx void glGetTexParameteriv target pname params
+Return texture parameter values.
 
-@defun glGetTexParameter 
-@heading return texture parameter values
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the symbolic name of the target texture. @code{GL_TEXTURE_1D},
@@ -10739,7 +10535,6 @@ Returns the texture parameters.
 
 @end table
 
-@heading Description
 @code{glGetTexParameter} returns in @var{params} the value or values of
 the texture parameter specified as @var{pname}. @var{target} defines the
 target texture, either @code{GL_TEXTURE_1D}, @code{GL_TEXTURE_2D},
@@ -10759,7 +10554,7 @@ constant. The initial value is @code{GL_NEAREST_MIPMAP_LINEAR}.
 
 @item @code{GL_TEXTURE_MIN_LOD}
 Returns the single-valued texture minimum level-of-detail value. The
-initial value is @math{-1000}.
+initial value is @r{-1000}.
 
 @item @code{GL_TEXTURE_MAX_LOD}
 Returns the single-valued texture maximum level-of-detail value. The
@@ -10775,26 +10570,23 @@ initial value is 1000.
 
 @item @code{GL_TEXTURE_WRAP_S}
 Returns the single-valued wrapping function for texture coordinate
-@math{@var{s}}, a symbolic constant. The initial value is
-@code{GL_REPEAT}.
+@r{@var{s}}, a symbolic constant. The initial value is @code{GL_REPEAT}.
 
 @item @code{GL_TEXTURE_WRAP_T}
 Returns the single-valued wrapping function for texture coordinate
-@math{@var{t}}, a symbolic constant. The initial value is
-@code{GL_REPEAT}.
+@r{@var{t}}, a symbolic constant. The initial value is @code{GL_REPEAT}.
 
 @item @code{GL_TEXTURE_WRAP_R}
 Returns the single-valued wrapping function for texture coordinate
-@math{@var{r}}, a symbolic constant. The initial value is
-@code{GL_REPEAT}.
+@r{@var{r}}, a symbolic constant. The initial value is @code{GL_REPEAT}.
 
 @item @code{GL_TEXTURE_BORDER_COLOR}
 Returns four integer or floating-point numbers that comprise the RGBA
 color of the texture border. Floating-point values are returned in the
-range @math{[0,1]}. Integer values are returned as a linear mapping of
-the internal floating-point representation such that 1.0 maps to the
-most positive representable integer and @math{-1.0} maps to the most
-negative representable integer. The initial value is (0, 0, 0, 0).
+range @r{[0,1]}. Integer values are returned as a linear mapping of the
+internal floating-point representation such that 1.0 maps to the most
+positive representable integer and @r{-1.0} maps to the most negative
+representable integer. The initial value is (0, 0, 0, 0).
 
 @item @code{GL_TEXTURE_PRIORITY}
 Returns the residence priority of the target texture (or the named
@@ -10826,7 +10618,6 @@ updates are enabled. See @code{glTexParameter}.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not an accepted value.
 
@@ -10834,11 +10625,11 @@ not an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLint glGetUniformLocation program name
+Returns the location of a uniform variable.
 
-@defun glGetUniformLocation 
-@heading Returns the location of a uniform variable
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -10849,7 +10640,6 @@ variable whose location is to be queried.
 
 @end table
 
-@heading Description
 @code{glGetUniformLocation } returns an integer that represents the
 location of a specific uniform variable within a program object.
 @var{name} must be a null terminated string that contains no white
@@ -10881,7 +10671,6 @@ values for uniform variables remain fixed until the next link command
 occurs. Uniform variable locations and values can only be queried after
 a link if the link was successful.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -10895,11 +10684,12 @@ successfully linked.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetUniformfv program location params
+@deftypefunx void glGetUniformiv program location params
+Returns the value of a uniform variable.
 
-@defun glGetUniformfv 
-@heading Returns the value of a uniform variable
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the program object to be queried.
@@ -10912,7 +10702,6 @@ Returns the value of the specified uniform variable.
 
 @end table
 
-@heading Description
 @code{glGetUniform} returns in @var{params} the value(s) of the
 specified uniform variable. The type of the uniform variable specified
 by @var{location} determines the number of values returned. If the
@@ -10936,7 +10725,6 @@ values for uniform variables remain fixed until the next link command
 occurs. The uniform variable values can only be queried after a link if
 the link was successful.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -10954,11 +10742,11 @@ program object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetVertexAttribPointerv index pname pointer
+Return the address of the specified generic vertex attribute pointer.
 
-@defun glGetVertexAttribPointerv 
-@heading return the address of the specified generic vertex attribute pointer
-@heading Parameters
 @table @asis
 @item @var{index}
 Specifies the generic vertex attribute parameter to be returned.
@@ -10972,7 +10760,6 @@ Returns the pointer value.
 
 @end table
 
-@heading Description
 @code{glGetVertexAttribPointerv} returns pointer information.
 @var{index} is the generic vertex attribute to be queried, @var{pname}
 is a symbolic constant indicating the pointer to be returned, and
@@ -10984,18 +10771,19 @@ If a non-zero named buffer object was bound to the
 pointer was previously specified, the @var{pointer} returned is a byte
 offset into the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetVertexAttribdv index pname params
+@deftypefunx void glGetVertexAttribfv index pname params
+@deftypefunx void glGetVertexAttribiv index pname params
+Return a generic vertex attribute parameter.
 
-@defun glGetVertexAttribdv 
-@heading Return a generic vertex attribute parameter
-@heading Parameters
 @table @asis
 @item @var{index}
 Specifies the generic vertex attribute parameter to be queried.
@@ -11016,7 +10804,6 @@ Returns the requested data.
 
 @end table
 
-@heading Description
 @code{glGetVertexAttrib} returns in @var{params} the value of a generic
 vertex attribute parameter. The generic vertex attribute to be queried
 is specified by @var{index}, and the parameter to be queried is
@@ -11088,7 +10875,6 @@ generic vertex attributes is (0,0,0,1).
 All of the parameters except @code{GL_CURRENT_VERTEX_ATTRIB} represent
 client-side state.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
@@ -11098,11 +10884,14 @@ value.
 @code{GL_INVALID_OPERATION} is generated if @var{index} is 0 and
 @var{pname} is @code{GL_CURRENT_VERTEX_ATTRIB}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glGetBooleanv pname params
+@deftypefunx void glGetDoublev pname params
+@deftypefunx void glGetFloatv pname params
+@deftypefunx void glGetIntegerv pname params
+Return the value or values of a selected parameter.
 
-@defun glGet 
-@heading return the value or values of a selected parameter
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies the parameter value to be returned. The symbolic constants in
@@ -11113,7 +10902,6 @@ Returns the value or values of the specified parameter.
 
 @end table
 
-@heading Description
 These four commands return values for simple state variables in GL.
 @var{pname} is a symbolic constant indicating the state variable to be
 returned, and @var{params} is a pointer to an array of the indicated
@@ -11128,7 +10916,7 @@ values are returned as @code{GL_TRUE} or @code{GL_FALSE}, and most
 floating-point values are rounded to the nearest integer value.
 Floating-point colors and normals, however, are returned with a linear
 mapping that maps 1.0 to the most positive representable integer value
-and @math{-1.0} to the most negative representable integer value. If
+and @r{-1.0} to the most negative representable integer value. If
 @code{glGetFloatv} or @code{glGetDoublev} is called, boolean values are
 returned as @code{GL_TRUE} or @code{GL_FALSE}, and integer values are
 converted to floating-point values.
@@ -11155,7 +10943,7 @@ accumulation buffer.
 used to clear the accumulation buffer. Integer values, if requested, are
 linearly mapped from the internal floating-point representation such
 that 1.0 returns the most positive representable integer value, and
-@math{-1.0} returns the most negative representable integer value. The
+@r{-1.0} returns the most negative representable integer value. The
 initial value is (0, 0, 0, 0). See @code{glClearAccum}.
 
 @item @code{GL_ACCUM_GREEN_BITS}
@@ -11227,7 +11015,7 @@ the symbolic name of the alpha test function. The initial value is
 The initial value is 0. See @code{glAlphaFunc}. An integer value, if
 requested, is linearly mapped from the internal floating-point
 representation such that 1.0 returns the most positive representable
-integer value, and @math{-1.0} returns the most negative representable
+integer value, and @r{-1.0} returns the most negative representable
 integer value.
 
 @item @code{GL_ARRAY_BUFFER_BINDING}
@@ -11397,7 +11185,7 @@ color array. The initial value is @code{GL_FLOAT}. See
 used to clear the color buffers. Integer values, if requested, are
 linearly mapped from the internal floating-point representation such
 that 1.0 returns the most positive representable integer value, and
-@math{-1.0} returns the most negative representable integer value. The
+@r{-1.0} returns the most negative representable integer value. The
 initial value is (0, 0, 0, 0). See @code{glClearColor}.
 
 @item @code{GL_COLOR_LOGIC_OP}
@@ -11504,9 +11292,9 @@ polygon faces are to be culled. The initial value is @code{GL_BACK}. See
 @var{params} returns four values: the red, green, blue, and alpha values
 of the current color. Integer values, if requested, are linearly mapped
 from the internal floating-point representation such that 1.0 returns
-the most positive representable integer value, and @math{-1.0} returns
-the most negative representable integer value. The initial value is (1,
-1, 1, 1). See @code{glColor}.
+the most positive representable integer value, and @r{-1.0} returns the
+most negative representable integer value. The initial value is (1, 1,
+1, 1). See @code{glColor}.
 
 @item @code{GL_CURRENT_FOG_COORD}
 
@@ -11526,7 +11314,7 @@ value is 1. See @code{glIndex}.
 @var{params} returns three values: the @var{x}, @var{y}, and @var{z}
 values of the current normal. Integer values, if requested, are linearly
 mapped from the internal floating-point representation such that 1.0
-returns the most positive representable integer value, and @math{-1.0}
+returns the most positive representable integer value, and @r{-1.0}
 returns the most negative representable integer value. The initial value
 is (0, 0, 1). See @code{glNormal}.
 
@@ -11544,7 +11332,7 @@ currently active, or 0 if no program object is active. See
 values of the current raster position. Integer values, if requested, are
 linearly mapped from the internal floating-point representation such
 that 1.0 returns the most positive representable integer value, and
-@math{-1.0} returns the most negative representable integer value. The
+@r{-1.0} returns the most negative representable integer value. The
 initial value is (1, 1, 1, 1). See @code{glRasterPos}.
 
 @item @code{GL_CURRENT_RASTER_DISTANCE}
@@ -11581,7 +11369,7 @@ See @code{glRasterPos}.
 secondary color values of the current raster position. Integer values,
 if requested, are linearly mapped from the internal floating-point
 representation such that 1.0 returns the most positive representable
-integer value, and @math{-1.0} returns the most negative representable
+integer value, and @r{-1.0} returns the most negative representable
 integer value. The initial value is (1, 1, 1, 1). See
 @code{glRasterPos}.
 
@@ -11600,7 +11388,7 @@ value is (0, 0, 0, 1). See @code{glRasterPos} and
 of the current secondary color. Integer values, if requested, are
 linearly mapped from the internal floating-point representation such
 that 1.0 returns the most positive representable integer value, and
-@math{-1.0} returns the most negative representable integer value. The
+@r{-1.0} returns the most negative representable integer value. The
 initial value is (0, 0, 0, 0). See @code{glSecondaryColor}.
 
 @item @code{GL_CURRENT_TEXTURE_COORDS}
@@ -11628,7 +11416,7 @@ buffer.
 @var{params} returns one value, the value that is used to clear the
 depth buffer. Integer values, if requested, are linearly mapped from the
 internal floating-point representation such that 1.0 returns the most
-positive representable integer value, and @math{-1.0} returns the most
+positive representable integer value, and @r{-1.0} returns the most
 negative representable integer value. The initial value is 1. See
 @code{glClearDepth}.
 
@@ -11645,7 +11433,7 @@ depth comparison function. The initial value is @code{GL_LESS}. See
 @var{params} returns two values: the near and far mapping limits for the
 depth buffer. Integer values, if requested, are linearly mapped from the
 internal floating-point representation such that 1.0 returns the most
-positive representable integer value, and @math{-1.0} returns the most
+positive representable integer value, and @r{-1.0} returns the most
 negative representable integer value. The initial value is (0, 1). See
 @code{glDepthRange}.
 
@@ -11800,7 +11588,7 @@ source of the fog coordinate. The initial value is
 @var{params} returns four values: the red, green, blue, and alpha
 components of the fog color. Integer values, if requested, are linearly
 mapped from the internal floating-point representation such that 1.0
-returns the most positive representable integer value, and @math{-1.0}
+returns the most positive representable integer value, and @r{-1.0}
 returns the most negative representable integer value. The initial value
 is (0, 0, 0, 0). See @code{glFog}.
 
@@ -11987,7 +11775,7 @@ is enabled. The initial value is @code{GL_FALSE}. See
 components of the ambient intensity of the entire scene. Integer values,
 if requested, are linearly mapped from the internal floating-point
 representation such that 1.0 returns the most positive representable
-integer value, and @math{-1.0} returns the most negative representable
+integer value, and @r{-1.0} returns the most negative representable
 integer value. The initial value is (0.2, 0.2, 0.2, 1.0). See
 @code{glLightModel}.
 
@@ -12177,15 +11965,15 @@ evaluation generates colors. The initial value is @code{GL_FALSE}. See
 
 
 @var{params} returns four values: the endpoints of the 2D map's
-@math{@var{i}} and @math{@var{j}} grid domains. The initial value is
-(0,1; 0,1). See @code{glMapGrid}.
+@r{@var{i}} and @r{@var{j}} grid domains. The initial value is (0,1;
+0,1). See @code{glMapGrid}.
 
 @item @code{GL_MAP2_GRID_SEGMENTS}
 
 
 @var{params} returns two values: the number of partitions in the 2D
-map's @math{@var{i}} and @math{@var{j}} grid domains. The initial value
-is (1,1). See @code{glMapGrid}.
+map's @r{@var{i}} and @r{@var{j}} grid domains. The initial value is
+(1,1). See @code{glMapGrid}.
 
 @item @code{GL_MAP2_INDEX}
 
@@ -13029,10 +12817,10 @@ size. See @code{glSampleCoverage}.
 @item @code{GL_SCISSOR_BOX}
 
 
-@var{params} returns four values: the @math{@var{x}} and @math{@var{y}}
-window coordinates of the scissor box, followed by its width and height.
-Initially the @math{@var{x}} and @math{@var{y}} window coordinates are
-both 0 and the width and height are set to the size of the window. See
+@var{params} returns four values: the @r{@var{x}} and @r{@var{y}} window
+coordinates of the scissor box, followed by its width and height.
+Initially the @r{@var{x}} and @r{@var{y}} window coordinates are both 0
+and the width and height are set to the size of the window. See
 @code{glScissor}.
 
 @item @code{GL_SCISSOR_TEST}
@@ -13557,31 +13345,29 @@ color output is always selected. The initial value is @code{GL_FALSE}.
 @item @code{GL_VIEWPORT}
 
 
-@var{params} returns four values: the @math{@var{x}} and @math{@var{y}}
-window coordinates of the viewport, followed by its width and height.
-Initially the @math{@var{x}} and @math{@var{y}} window coordinates are
-both set to 0, and the width and height are set to the width and height
-of the window into which the GL will do its rendering. See
-@code{glViewport}.
+@var{params} returns four values: the @r{@var{x}} and @r{@var{y}} window
+coordinates of the viewport, followed by its width and height. Initially
+the @r{@var{x}} and @r{@var{y}} window coordinates are both set to 0,
+and the width and height are set to the width and height of the window
+into which the GL will do its rendering. See @code{glViewport}.
 
 @item @code{GL_ZOOM_X}
 
 
-@var{params} returns one value, the @math{@var{x}} pixel zoom factor.
-The initial value is 1. See @code{glPixelZoom}.
+@var{params} returns one value, the @r{@var{x}} pixel zoom factor. The
+initial value is 1. See @code{glPixelZoom}.
 
 @item @code{GL_ZOOM_Y}
 
 
-@var{params} returns one value, the @math{@var{y}} pixel zoom factor.
-The initial value is 1. See @code{glPixelZoom}.
+@var{params} returns one value, the @r{@var{y}} pixel zoom factor. The
+initial value is 1. See @code{glPixelZoom}.
 
 @end table
 
 Many of the boolean parameters can also be queried more easily using
 @code{glIsEnabled}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
@@ -13591,11 +13377,11 @@ of @code{glEnd}.
 
 
 
-@end defun
+@end deftypefun
+
+@deftypefun void glHint target mode
+Specify implementation-specific hints.
 
-@defun glHint 
-@heading specify implementation-specific hints
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies a symbolic constant indicating the behavior to be controlled.
@@ -13612,7 +13398,6 @@ accepted.
 
 @end table
 
-@heading Description
 Certain aspects of GL behavior, when there is room for interpretation,
 can be controlled with hints. A hint is specified with two arguments.
 @var{target} is a symbolic constant indicating the behavior to be
@@ -13706,7 +13491,6 @@ retrieved by @code{glGetCompressedTexImage} for reuse.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{target} or @var{mode}
 is not an accepted value.
 
@@ -13714,11 +13498,11 @@ is not an accepted value.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glHistogram target width internalformat sink
+Define histogram table.
 
-@defun glHistogram 
-@heading define histogram table
-@heading Parameters
 @table @asis
 @item @var{target}
 The histogram whose parameters are to be set. Must be one of
@@ -13748,7 +13532,6 @@ pixels will proceed to the minmax process after histogramming.
 
 @end table
 
-@heading Description
 When @code{GL_HISTOGRAM} is enabled, RGBA color components are converted
 to histogram table indices by clamping to the range [0,1], multiplying
 by the width of the histogram table, and rounding to the nearest
@@ -13767,9 +13550,9 @@ disabled with @code{glDisable}.
 When @var{target} is @code{GL_HISTOGRAM}, @code{glHistogram} redefines
 the current histogram table to have @var{width} entries of the format
 specified by @var{internalformat}. The entries are indexed 0 through
-@math{@var{width}-1}, and all entries are initialized to zero. The
-values in the previous histogram table, if any, are lost. If @var{sink}
-is @code{GL_TRUE}, then pixels are discarded after histogramming; no
+@r{@var{width}-1}, and all entries are initialized to zero. The values
+in the previous histogram table, if any, are lost. If @var{sink} is
+@code{GL_TRUE}, then pixels are discarded after histogramming; no
 further processing of the pixels takes place, and no drawing, texture
 loading, or pixel readback will result.
 
@@ -13782,7 +13565,6 @@ table with the given parameters can be supported.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -13800,11 +13582,11 @@ the implementation.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glIndexMask mask
+Control the writing of individual bits in the color index buffers.
 
-@defun glIndexMask 
-@heading control the writing of individual bits in the color index buffers
-@heading Parameters
 @table @asis
 @item @var{mask}
 Specifies a bit mask to enable and disable the writing of individual
@@ -13812,28 +13594,26 @@ bits in the color index buffers. Initially, the mask is all 1's.
 
 @end table
 
-@heading Description
 @code{glIndexMask} controls the writing of individual bits in the color
-index buffers. The least significant @math{@var{n}} bits of @var{mask},
-where @math{@var{n}} is the number of bits in a color index buffer,
-specify a mask. Where a 1 (one) appears in the mask, it's possible to
-write to the corresponding bit in the color index buffer (or buffers).
-Where a 0 (zero) appears, the corresponding bit is write-protected.
+index buffers. The least significant @r{@var{n}} bits of @var{mask},
+where @r{@var{n}} is the number of bits in a color index buffer, specify
+a mask. Where a 1 (one) appears in the mask, it's possible to write to
+the corresponding bit in the color index buffer (or buffers). Where a 0
+(zero) appears, the corresponding bit is write-protected.
 
 This mask is used only in color index mode, and it affects only the
 buffers currently selected for writing (see @code{glDrawBuffer}).
 Initially, all bits are enabled for writing.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIndexMask} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glIndexPointer type stride pointer
+Define an array of color indexes.
 
-@defun glIndexPointer 
-@heading define an array of color indexes
-@heading Parameters
 @table @asis
 @item @var{type}
 Specifies the data type of each color index in the array. Symbolic
@@ -13852,7 +13632,6 @@ is 0.
 
 @end table
 
-@heading Description
 @code{glIndexPointer} specifies the location and data format of an array
 of color indexes to use when rendering. @var{type} specifies the data
 type of each color index and @var{stride} specifies the byte stride from
@@ -13877,17 +13656,25 @@ used when @code{glDrawArrays}, @code{glMultiDrawArrays},
 @code{glDrawElements}, @code{glMultiDrawElements},
 @code{glDrawRangeElements}, or @code{glArrayElement} is called.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
 value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glIndexs c
+@deftypefunx void glIndexi c
+@deftypefunx void glIndexf c
+@deftypefunx void glIndexd c
+@deftypefunx void glIndexub c
+@deftypefunx void glIndexsv c
+@deftypefunx void glIndexiv c
+@deftypefunx void glIndexfv c
+@deftypefunx void glIndexdv c
+@deftypefunx void glIndexubv c
+Set the current color index.
 
-@defun glIndex 
-@heading set the current color index
-@heading Parameters
 @table @asis
 @item @var{c}
 Specifies the new value for the current color index.
@@ -13896,7 +13683,6 @@ Specifies the new value for the current color index.
 
 @end table
 
-@heading Description
 @code{glIndex} updates the current (single-valued) color index. It takes
 one argument, the new value for the current color index.
 
@@ -13910,11 +13696,11 @@ written to the frame buffer, it is converted to fixed-point format. Any
 bits in the integer portion of the resulting fixed-point value that do
 not correspond to bits in the frame buffer are masked out.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glInitNames 
+Initialize the name stack.
 
-@defun glInitNames 
-@heading initialize the name stack
-@heading Description
 The name stack is used during selection mode to allow sets of rendering
 commands to be uniquely identified. It consists of an ordered set of
 unsigned integers. @code{glInitNames} causes the name stack to be
@@ -13924,16 +13710,15 @@ The name stack is always empty while the render mode is not
 @code{GL_SELECT}. Calls to @code{glInitNames} while the render mode is
 not @code{GL_SELECT} are ignored.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glInitNames} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glInterleavedArrays format stride pointer
+Simultaneously specify and enable several interleaved arrays.
 
-@defun glInterleavedArrays 
-@heading simultaneously specify and enable several interleaved arrays
-@heading Parameters
 @table @asis
 @item @var{format}
 Specifies the type of array to enable. Symbolic constants @code{GL_V2F},
@@ -13948,7 +13733,6 @@ Specifies the offset in bytes between each aggregate array element.
 
 @end table
 
-@heading Description
 @code{glInterleavedArrays} lets you specify and enable individual color,
 normal, texture and vertex arrays whose elements are part of a larger
 aggregate array element. For some implementations, this is more
@@ -13971,24 +13755,22 @@ extracted as 4 unsigned bytes if 4UB follows the C. If a color is
 extracted as 4 unsigned bytes, the vertex array element which follows is
 located at the first possible floating-point aligned address.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} is not an accepted
 value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsBuffer buffer
+Determine if a name corresponds to a buffer object.
 
-@defun glIsBuffer 
-@heading determine if a name corresponds to a buffer object
-@heading Parameters
 @table @asis
 @item @var{buffer}
 Specifies a value that may be the name of a buffer object.
 
 @end table
 
-@heading Description
 @code{glIsBuffer} returns @code{GL_TRUE} if @var{buffer} is currently
 the name of a buffer object. If @var{buffer} is zero, or is a non-zero
 value that is not currently the name of a buffer object, or if an error
@@ -13998,23 +13780,21 @@ A name returned by @code{glGenBuffers}, but not yet associated with a
 buffer object by calling @code{glBindBuffer}, is not the name of a
 buffer object.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsBuffer} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsEnabled cap
+Test whether a capability is enabled.
 
-@defun glIsEnabled 
-@heading test whether a capability is enabled
-@heading Parameters
 @table @asis
 @item @var{cap}
 Specifies a symbolic constant indicating a GL capability.
 
 @end table
 
-@heading Description
 @code{glIsEnabled} returns @code{GL_TRUE} if @var{cap} is an enabled
 capability and returns @code{GL_FALSE} otherwise. Initially all
 capabilities except @code{GL_DITHER} are disabled; @code{GL_DITHER} is
@@ -14251,7 +14031,6 @@ The following capabilities are accepted for @var{cap}:
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{cap} is not an accepted
 value.
 
@@ -14259,18 +14038,17 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsList list
+Determine if a name corresponds to a display list.
 
-@defun glIsList 
-@heading determine if a name corresponds to a display list
-@heading Parameters
 @table @asis
 @item @var{list}
 Specifies a potential display list name.
 
 @end table
 
-@heading Description
 @code{glIsList} returns @code{GL_TRUE} if @var{list} is the name of a
 display list and returns @code{GL_FALSE} if it is not, or if an error
 occurs.
@@ -14279,46 +14057,42 @@ A name returned by @code{glGenLists}, but not yet associated with a
 display list by calling @code{glNewList}, is not the name of a display
 list.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsList} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsProgram program
+Determines if a name corresponds to a program object.
 
-@defun glIsProgram 
-@heading Determines if a name corresponds to a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies a potential program object.
 
 @end table
 
-@heading Description
 @code{glIsProgram} returns @code{GL_TRUE} if @var{program} is the name
 of a program object previously created with @code{glCreateProgram} and
 not yet deleted with @code{glDeleteProgram}. If @var{program} is zero or
 a non-zero value that is not the name of a program object, or if an
 error occurs, @code{glIsProgram} returns @code{GL_FALSE}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsProgram} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsQuery id
+Determine if a name corresponds to a query object.
 
-@defun glIsQuery 
-@heading determine if a name corresponds to a query object
-@heading Parameters
 @table @asis
 @item @var{id}
 Specifies a value that may be the name of a query object.
 
 @end table
 
-@heading Description
 @code{glIsQuery} returns @code{GL_TRUE} if @var{id} is currently the
 name of a query object. If @var{id} is zero, or is a non-zero value that
 is not currently the name of a query object, or if an error occurs,
@@ -14328,46 +14102,42 @@ A name returned by @code{glGenQueries}, but not yet associated with a
 query object by calling @code{glBeginQuery}, is not the name of a query
 object.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsQuery} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsShader shader
+Determines if a name corresponds to a shader object.
 
-@defun glIsShader 
-@heading Determines if a name corresponds to a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies a potential shader object.
 
 @end table
 
-@heading Description
 @code{glIsShader} returns @code{GL_TRUE} if @var{shader} is the name of
 a shader object previously created with @code{glCreateShader} and not
 yet deleted with @code{glDeleteShader}. If @var{shader} is zero or a
 non-zero value that is not the name of a shader object, or if an error
 occurs, @code{glIsShader } returns @code{GL_FALSE}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsShader} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLboolean glIsTexture texture
+Determine if a name corresponds to a texture.
 
-@defun glIsTexture 
-@heading determine if a name corresponds to a texture
-@heading Parameters
 @table @asis
 @item @var{texture}
 Specifies a value that may be the name of a texture.
 
 @end table
 
-@heading Description
 @code{glIsTexture} returns @code{GL_TRUE} if @var{texture} is currently
 the name of a texture. If @var{texture} is zero, or is a non-zero value
 that is not currently the name of a texture, or if an error occurs,
@@ -14376,16 +14146,18 @@ that is not currently the name of a texture, or if an error occurs,
 A name returned by @code{glGenTextures}, but not yet associated with a
 texture by calling @code{glBindTexture}, is not the name of a texture.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glIsTexture} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLightModelf pname param
+@deftypefunx void glLightModeli pname param
+@deftypefunx void glLightModelfv pname params
+@deftypefunx void glLightModeliv pname params
+Set the lighting model parameters.
 
-@defun glLightModel 
-@heading set the lighting model parameters
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies a single-valued lighting model parameter.
@@ -14397,7 +14169,6 @@ Specifies the value that @var{param} will be set to.
 
 @end table
 
-@heading Description
 @code{glLightModel} sets the lighting model parameter. @var{pname} names
 a parameter and @var{params} gives the new value. There are three
 lighting model parameters:
@@ -14409,7 +14180,7 @@ lighting model parameters:
 @var{params} contains four integer or floating-point values that specify
 the ambient RGBA intensity of the entire scene. Integer values are
 mapped linearly such that the most positive representable value maps to
-1.0, and the most negative representable value maps to @math{-1.0}.
+1.0, and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial ambient scene intensity
 is (0.2, 0.2, 0.2, 1.0).
@@ -14484,7 +14255,6 @@ shininess of the material, and the same reflection and attenuation
 equations as in the RGBA case, determine how much above ambient the
 resulting index is.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
@@ -14496,17 +14266,20 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLightf light pname param
+@deftypefunx void glLighti light pname param
+@deftypefunx void glLightfv light pname params
+@deftypefunx void glLightiv light pname params
+Set light source parameters.
 
-@defun glLight 
-@heading set light source parameters
-@heading Parameters
 @table @asis
 @item @var{light}
 Specifies a light. The number of lights depends on the implementation,
 but at least eight lights are supported. They are identified by symbolic
-names of the form @code{GL_LIGHT}@math{@var{i}}, where i ranges from 0
-to the value of @code{GL_MAX_LIGHTS} - 1.
+names of the form @code{GL_LIGHT}@r{@var{i}}, where i ranges from 0 to
+the value of @code{GL_MAX_LIGHTS} - 1.
 
 @item @var{pname}
 Specifies a single-valued light source parameter for @var{light}.
@@ -14520,10 +14293,9 @@ Specifies the value that parameter @var{pname} of light source
 
 @end table
 
-@heading Description
 @code{glLight} sets the values of individual light source parameters.
 @var{light} names the light and is a symbolic name of the form
-@code{GL_LIGHT}@math{@var{i}}, where i ranges from 0 to the value of
+@code{GL_LIGHT}@r{@var{i}}, where i ranges from 0 to the value of
 @code{GL_MAX_LIGHTS} - 1. @var{pname} specifies one of ten light source
 parameters, again by symbolic name. @var{params} is either a single
 value or a pointer to an array that contains the new values.
@@ -14531,9 +14303,9 @@ value or a pointer to an array that contains the new values.
 To enable and disable lighting calculation, call @code{glEnable} and
 @code{glDisable} with argument @code{GL_LIGHTING}. Lighting is initially
 disabled. When it is enabled, light sources that are enabled contribute
-to the lighting calculation. Light source @math{@var{i}} is enabled and
+to the lighting calculation. Light source @r{@var{i}} is enabled and
 disabled using @code{glEnable} and @code{glDisable} with argument
-@code{GL_LIGHT}@math{@var{i}}.
+@code{GL_LIGHT}@r{@var{i}}.
 
 The ten light parameters are as follows:
 
@@ -14542,7 +14314,7 @@ The ten light parameters are as follows:
 @var{params} contains four integer or floating-point values that specify
 the ambient RGBA intensity of the light. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial ambient light intensity
 is (0, 0, 0, 1).
@@ -14551,7 +14323,7 @@ is (0, 0, 0, 1).
 @var{params} contains four integer or floating-point values that specify
 the diffuse RGBA intensity of the light. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial value for
 @code{GL_LIGHT0} is (1, 1, 1, 1); for other lights, the initial value is
@@ -14561,7 +14333,7 @@ floating-point values are clamped. The initial value for
 @var{params} contains four integer or floating-point values that specify
 the specular RGBA intensity of the light. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial value for
 @code{GL_LIGHT0} is (1, 1, 1, 1); for other lights, the initial value is
@@ -14575,14 +14347,14 @@ nor floating-point values are clamped.
 
 The position is transformed by the modelview matrix when @code{glLight}
 is called (just as if it were a point), and it is stored in eye
-coordinates. If the @math{@var{w}} component of the position is 0, the
+coordinates. If the @r{@var{w}} component of the position is 0, the
 light is treated as a directional source. Diffuse and specular lighting
 calculations take the light's direction, but not its actual position,
 into account, and attenuation is disabled. Otherwise, diffuse and
 specular lighting calculations are based on the actual location of the
 light in eye coordinates, and attenuation is enabled. The initial
 position is (0, 0, 1, 0); thus, the initial light source is directional,
-parallel to, and in the direction of the @math{-@var{z}} axis.
+parallel to, and in the direction of the @r{-@var{z}} axis.
 
 @item @code{GL_SPOT_DIRECTION}
 @var{params} contains three integer or floating-point values that
@@ -14593,12 +14365,12 @@ integer nor floating-point values are clamped.
 The spot direction is transformed by the upper 3x3 of the modelview
 matrix when @code{glLight} is called, and it is stored in eye
 coordinates. It is significant only when @code{GL_SPOT_CUTOFF} is not
-180, which it is initially. The initial direction is @math{(0,0-1)}.
+180, which it is initially. The initial direction is @r{(0,0-1)}.
 
 @item @code{GL_SPOT_EXPONENT}
 @var{params} is a single integer or floating-point value that specifies
 the intensity distribution of the light. Integer and floating-point
-values are mapped directly. Only values in the range @math{[0,128]} are
+values are mapped directly. Only values in the range @r{[0,128]} are
 accepted.
 
 Effective light intensity is attenuated by the cosine of the angle
@@ -14612,12 +14384,12 @@ distribution.
 @item @code{GL_SPOT_CUTOFF}
 @var{params} is a single integer or floating-point value that specifies
 the maximum spread angle of a light source. Integer and floating-point
-values are mapped directly. Only values in the range @math{[0,90]} and
-the special value 180 are accepted. If the angle between the direction
-of the light and the direction from the light to the vertex being
-lighted is greater than the spot cutoff angle, the light is completely
-masked. Otherwise, its intensity is controlled by the spot exponent and
-the attenuation factors. The initial spot cutoff is 180, resulting in
+values are mapped directly. Only values in the range @r{[0,90]} and the
+special value 180 are accepted. If the angle between the direction of
+the light and the direction from the light to the vertex being lighted
+is greater than the spot cutoff angle, the light is completely masked.
+Otherwise, its intensity is controlled by the spot exponent and the
+attenuation factors. The initial spot cutoff is 180, resulting in
 uniform light distribution.
 
 @item @code{GL_CONSTANT_ATTENUATION}
@@ -14635,24 +14407,23 @@ attenuation.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{light} or @var{pname}
 is not an accepted value.
 
 @code{GL_INVALID_VALUE} is generated if a spot exponent value is
-specified outside the range @math{[0,128]}, or if spot cutoff is
-specified outside the range @math{[0,90]} (except for the special value
-180), or if a negative attenuation factor is specified.
+specified outside the range @r{[0,128]}, or if spot cutoff is specified
+outside the range @r{[0,90]} (except for the special value 180), or if a
+negative attenuation factor is specified.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glLight} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLineStipple factor pattern
+Specify the line stipple pattern.
 
-@defun glLineStipple 
-@heading specify the line stipple pattern
-@heading Parameters
 @table @asis
 @item @var{factor}
 Specifies a multiplier for each bit in the line stipple pattern. If
@@ -14667,29 +14438,27 @@ first; the default pattern is all 1's.
 
 @end table
 
-@heading Description
 Line stippling masks out certain fragments produced by rasterization;
 those fragments will not be drawn. The masking is achieved by using
 three parameters: the 16-bit line stipple pattern @var{pattern}, the
-repeat count @var{factor}, and an integer stipple counter
-@math{@var{s}}.
+repeat count @var{factor}, and an integer stipple counter @r{@var{s}}.
 
-Counter @math{@var{s}} is reset to 0 whenever @code{glBegin} is called
-and before each line segment of a
+Counter @r{@var{s}} is reset to 0 whenever @code{glBegin} is called and
+before each line segment of a
 @code{glBegin}(@code{GL_LINES})/@code{glEnd} sequence is generated. It
 is incremented after each fragment of a unit width aliased line segment
-is generated or after each @math{@var{i}} fragments of an @math{@var{i}}
-width line segment are generated. The @math{@var{i}} fragments
-associated with count @math{@var{s}} are masked out if
+is generated or after each @r{@var{i}} fragments of an @r{@var{i}} width
+line segment are generated. The @r{@var{i}} fragments associated with
+count @r{@var{s}} are masked out if
 
-@var{pattern} bit @math{(@var{s}/@var{factor},)%16}
+@var{pattern} bit @r{(@var{s}/@var{factor},)%16}
 
 is 0, otherwise these fragments are sent to the frame buffer. Bit zero
 of @var{pattern} is the least significant bit.
 
-Antialiased lines are treated as a sequence of @math{1×@var{width}}
-rectangles for purposes of stippling. Whether rectangle @math{@var{s}}
-is rasterized or not depends on the fragment rule described for aliased
+Antialiased lines are treated as a sequence of @r{1×@var{width}}
+rectangles for purposes of stippling. Whether rectangle @r{@var{s}} is
+rasterized or not depends on the fragment rule described for aliased
 lines, counting rectangles rather than groups of fragments.
 
 To enable and disable line stippling, call @code{glEnable} and
@@ -14697,23 +14466,21 @@ To enable and disable line stippling, call @code{glEnable} and
 line stipple pattern is applied as described above. When disabled, it is
 as if the pattern were all 1's. Initially, line stippling is disabled.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glLineStipple} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLineWidth width
+Specify the width of rasterized lines.
 
-@defun glLineWidth 
-@heading specify the width of rasterized lines
-@heading Parameters
 @table @asis
 @item @var{width}
 Specifies the width of rasterized lines. The initial value is 1.
 
 @end table
 
-@heading Description
 @code{glLineWidth} specifies the rasterized width of both aliased and
 antialiased lines. Using a line width other than 1 has different
 effects, depending on whether line antialiasing is enabled. To enable
@@ -14724,10 +14491,9 @@ disabled.
 If line antialiasing is disabled, the actual width is determined by
 rounding the supplied width to the nearest integer. (If the rounding
 results in the value 0, it is as if the line width were 1.) If
-@math{∣Δ@var{x},∣>=∣Δ@var{y},∣}, @var{i} pixels are filled in each
-column that is rasterized, where @var{i} is the rounded value of
-@var{width}. Otherwise, @var{i} pixels are filled in each row that is
-rasterized.
+@r{∣Δ@var{x},∣>=∣Δ@var{y},∣}, @var{i} pixels are filled in each column
+that is rasterized, where @var{i} is the rounded value of @var{width}.
+Otherwise, @var{i} pixels are filled in each row that is rasterized.
 
 If antialiasing is enabled, line rasterization produces a fragment for
 each pixel square that intersects the region lying within the rectangle
@@ -14747,7 +14513,6 @@ arguments @code{GL_ALIASED_LINE_WIDTH_RANGE},
 @code{GL_SMOOTH_LINE_WIDTH_RANGE}, and
 @code{GL_SMOOTH_LINE_WIDTH_GRANULARITY}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{width} is less than or
 equal to 0.
 
@@ -14755,18 +14520,17 @@ equal to 0.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLinkProgram program
+Links a program object.
 
-@defun glLinkProgram 
-@heading Links a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the handle of the program object to be linked.
 
 @end table
 
-@heading Description
 @code{glLinkProgram} links the program object specified by
 @var{program}. If any shader objects of type @code{GL_VERTEX_SHADER} are
 attached to @var{program}, they will be used to create an executable
@@ -14867,7 +14631,6 @@ attached shader objects, detach shader objects, delete shader objects,
 and attach additional shader objects. None of these operations affects
 the information log or the program that is part of the program object.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -14878,11 +14641,11 @@ program object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glListBase base
+Set the display-list base for .
 
-@defun glListBase 
-@heading set the display-list base for 
-@heading Parameters
 @table @asis
 @item @var{base}
 Specifies an integer offset that will be added to @code{glCallLists}
@@ -14890,51 +14653,48 @@ offsets to generate display-list names. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glCallLists} specifies an array of offsets. Display-list names are
 generated by adding @var{base} to each offset. Names that reference
 valid display lists are executed; the others are ignored.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glListBase} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLoadIdentity 
+Replace the current matrix with the identity matrix.
 
-@defun glLoadIdentity 
-@heading replace the current matrix with the identity matrix
-@heading Description
 @code{glLoadIdentity} replaces the current matrix with the identity
 matrix. It is semantically equivalent to calling @code{glLoadMatrix}
 with the identity matrix
 
 
 
-@math{((1 0 0 0), (0 1 0 0), (0 0 1 0), (0 0 0 1),,)}
+@r{((1 0 0 0), (0 1 0 0), (0 0 1 0), (0 0 0 1),,)}
 
 
 
 but in some cases it is more efficient.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glLoadIdentity} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLoadMatrixd m
+@deftypefunx void glLoadMatrixf m
+Replace the current matrix with the specified matrix.
 
-@defun glLoadMatrix 
-@heading replace the current matrix with the specified matrix
-@heading Parameters
 @table @asis
 @item @var{m}
 Specifies a pointer to 16 consecutive values, which are used as the
-elements of a @math{4×4} column-major matrix.
+elements of a @r{4×4} column-major matrix.
 
 @end table
 
-@heading Description
 @code{glLoadMatrix} replaces the current matrix with the one whose
 elements are specified by @var{m}. The current matrix is the projection
 matrix, modelview matrix, or texture matrix, depending on the current
@@ -14942,14 +14702,13 @@ matrix mode (see @code{glMatrixMode}).
 
 The current matrix, M, defines a transformation of coordinates. For
 instance, assume M refers to the modelview matrix. If
-@math{@var{v}=(@var{v}⁡[0,],@var{v}⁡[1,]@var{v}⁡[2,]@var{v}⁡[3,])} is
-the set of object coordinates of a vertex, and @var{m} points to an
-array of @math{16} single- or double-precision floating-point values
-@math{@var{m}=@{@var{m}⁡[0,],@var{m}⁡[1,]@var{...}@var{m}⁡[15,]@}}, then
-the modelview transformation @math{@var{M}⁡(@var{v},)} does the
-following:
+@r{@var{v}=(@var{v}⁡[0,],@var{v}⁡[1,]@var{v}⁡[2,]@var{v}⁡[3,])} is the
+set of object coordinates of a vertex, and @var{m} points to an array of
+@r{16} single- or double-precision floating-point values
+@r{@var{m}=@{@var{m}⁡[0,],@var{m}⁡[1,]@var{...}@var{m}⁡[15,]@}}, then
+the modelview transformation @r{@var{M}⁡(@var{v},)} does the following:
 
-@math{@var{M}⁡(@var{v},)=((@var{m}⁡[0,] @var{m}⁡[4,] @var{m}⁡[8,]
+@r{@var{M}⁡(@var{v},)=((@var{m}⁡[0,] @var{m}⁡[4,] @var{m}⁡[8,]
 @var{m}⁡[12,]), (@var{m}⁡[1,] @var{m}⁡[5,] @var{m}⁡[9,] @var{m}⁡[13,]),
 (@var{m}⁡[2,] @var{m}⁡[6,] @var{m}⁡[10,] @var{m}⁡[14,]), (@var{m}⁡[3,]
 @var{m}⁡[7,] @var{m}⁡[11,] @var{m}⁡[15,]),)×((@var{v}⁡[0,]),
@@ -14959,23 +14718,21 @@ following:
 
 Projection and texture transformations are similarly defined.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glLoadMatrix} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLoadName name
+Load a name onto the name stack.
 
-@defun glLoadName 
-@heading load a name onto the name stack
-@heading Parameters
 @table @asis
 @item @var{name}
 Specifies a name that will replace the top value on the name stack.
 
 @end table
 
-@heading Description
 The name stack is used during selection mode to allow sets of rendering
 commands to be uniquely identified. It consists of an ordered set of
 unsigned integers and is initially empty.
@@ -14987,7 +14744,6 @@ The name stack is always empty while the render mode is not
 @code{GL_SELECT}. Calls to @code{glLoadName} while the render mode is
 not @code{GL_SELECT} are ignored.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glLoadName} is called
 while the name stack is empty.
 
@@ -14995,19 +14751,19 @@ while the name stack is empty.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLoadTransposeMatrixd m
+@deftypefunx void glLoadTransposeMatrixf m
+Replace the current matrix with the specified row-major ordered matrix.
 
-@defun glLoadTransposeMatrix 
-@heading replace the current matrix with the specified row-major ordered matrix
-@heading Parameters
 @table @asis
 @item @var{m}
 Specifies a pointer to 16 consecutive values, which are used as the
-elements of a @math{4×4} row-major matrix.
+elements of a @r{4×4} row-major matrix.
 
 @end table
 
-@heading Description
 @code{glLoadTransposeMatrix} replaces the current matrix with the one
 whose elements are specified by @var{m}. The current matrix is the
 projection matrix, modelview matrix, or texture matrix, depending on the
@@ -15015,14 +14771,13 @@ current matrix mode (see @code{glMatrixMode}).
 
 The current matrix, M, defines a transformation of coordinates. For
 instance, assume M refers to the modelview matrix. If
-@math{@var{v}=(@var{v}⁡[0,],@var{v}⁡[1,]@var{v}⁡[2,]@var{v}⁡[3,])} is
-the set of object coordinates of a vertex, and @var{m} points to an
-array of @math{16} single- or double-precision floating-point values
-@math{@var{m}=@{@var{m}⁡[0,],@var{m}⁡[1,]@var{...}@var{m}⁡[15,]@}}, then
-the modelview transformation @math{@var{M}⁡(@var{v},)} does the
-following:
+@r{@var{v}=(@var{v}⁡[0,],@var{v}⁡[1,]@var{v}⁡[2,]@var{v}⁡[3,])} is the
+set of object coordinates of a vertex, and @var{m} points to an array of
+@r{16} single- or double-precision floating-point values
+@r{@var{m}=@{@var{m}⁡[0,],@var{m}⁡[1,]@var{...}@var{m}⁡[15,]@}}, then
+the modelview transformation @r{@var{M}⁡(@var{v},)} does the following:
 
-@math{@var{M}⁡(@var{v},)=((@var{m}⁡[0,] @var{m}⁡[1,] @var{m}⁡[2,]
+@r{@var{M}⁡(@var{v},)=((@var{m}⁡[0,] @var{m}⁡[1,] @var{m}⁡[2,]
 @var{m}⁡[3,]), (@var{m}⁡[4,] @var{m}⁡[5,] @var{m}⁡[6,] @var{m}⁡[7,]),
 (@var{m}⁡[8,] @var{m}⁡[9,] @var{m}⁡[10,] @var{m}⁡[11,]), (@var{m}⁡[12,]
 @var{m}⁡[13,] @var{m}⁡[14,] @var{m}⁡[15,]),)×((@var{v}⁡[0,]),
@@ -15032,20 +14787,19 @@ following:
 
 Projection and texture transformations are similarly defined.
 
-Calling @code{glLoadTransposeMatrix} with matrix @math{@var{M}} is
-identical in operation to @code{glLoadMatrix} with
-@math{@var{M}^@var{T}}, where @math{@var{T}} represents the transpose.
+Calling @code{glLoadTransposeMatrix} with matrix @r{@var{M}} is
+identical in operation to @code{glLoadMatrix} with @r{@var{M}^@var{T}},
+where @r{@var{T}} represents the transpose.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glLoadTransposeMatrix}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glLogicOp opcode
+Specify a logical pixel operation for color index rendering.
 
-@defun glLogicOp 
-@heading specify a logical pixel operation for color index rendering
-@heading Parameters
 @table @asis
 @item @var{opcode}
 Specifies a symbolic constant that selects a logical operation. The
@@ -15058,7 +14812,6 @@ The initial value is @code{GL_COPY}.
 
 @end table
 
-@heading Description
 @code{glLogicOp} specifies a logical operation that, when enabled, is
 applied between the incoming color index or RGBA color and the color
 index or RGBA color at the corresponding location in the frame buffer.
@@ -15130,7 +14883,6 @@ Standard C-language operators are used. As these bitwise operators
 suggest, the logical operation is applied independently to each bit pair
 of the source and destination indices or colors.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{opcode} is not an accepted
 value.
 
@@ -15138,11 +14890,12 @@ value.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMap1f target u1 u2 stride order points
+@deftypefunx void glMap1d target u1 u2 stride order points
+Define a one-dimensional evaluator.
 
-@defun glMap1 
-@heading define a one-dimensional evaluator
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the kind of values that are generated by the evaluator.
@@ -15154,9 +14907,9 @@ accepted.
 
 @item @var{u1}
 @itemx @var{u2}
-Specify a linear mapping of @math{@var{u}}, as presented to
-@code{glEvalCoord1}, to @math{@var{u}^}, the variable that is evaluated
-by the equations specified by this command.
+Specify a linear mapping of @r{@var{u}}, as presented to
+@code{glEvalCoord1}, to @r{@var{u}^}, the variable that is evaluated by
+the equations specified by this command.
 
 @item @var{stride}
 Specifies the number of floats or doubles between the beginning of one
@@ -15173,7 +14926,6 @@ Specifies a pointer to the array of control points.
 
 @end table
 
-@heading Description
 Evaluators provide a way to use polynomial or rational polynomial
 mapping to produce vertices, normals, texture coordinates, and colors.
 The values produced by an evaluator are sent to further stages of GL
@@ -15188,32 +14940,31 @@ using evaluators. These include almost all splines used in computer
 graphics: B-splines, Bezier curves, Hermite splines, and so on.
 
 Evaluators define curves based on Bernstein polynomials. Define
-@math{@var{p}⁡(@var{u}^,)} as
+@r{@var{p}⁡(@var{u}^,)} as
 
-@math{@var{p}⁡(@var{u}^,)=Σ@var{i}=0@var{n}@var{B}_@var{i},^@var{n}⁡(@var{u}^,)⁢@var{R}_@var{i}}
+@r{@var{p}⁡(@var{u}^,)=Σ@var{i}=0@var{n}@var{B}_@var{i},^@var{n}⁡(@var{u}^,)⁢@var{R}_@var{i}}
 
 
 
-where @math{@var{R}_@var{i}} is a control point and
-@math{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)} is the @math{@var{i}}th
-Bernstein polynomial of degree @math{@var{n}} (@var{order} =
-@math{@var{n}+1}):
+where @r{@var{R}_@var{i}} is a control point and
+@r{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)} is the @r{@var{i}}th Bernstein
+polynomial of degree @r{@var{n}} (@var{order} = @r{@var{n}+1}):
 
-@math{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)=((@var{n}),
+@r{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)=((@var{n}),
 (@var{i}),,)⁢@var{u}^,^@var{i}⁢(1-@var{u}^,)^@var{n}-@var{i},,}
 
 Recall that
 
-@math{0^0==1} and @math{((@var{n}), (0),,)==1}
+@r{0^0==1} and @r{((@var{n}), (0),,)==1}
 
 @code{glMap1} is used to define the basis and to specify what kind of
 values are produced. Once defined, a map can be enabled and disabled by
 calling @code{glEnable} and @code{glDisable} with the map name, one of
 the nine predefined values for @var{target} described below.
 @code{glEvalCoord1} evaluates the one-dimensional maps that are enabled.
-When @code{glEvalCoord1} presents a value @math{@var{u}}, the Bernstein
-functions are evaluated using @math{@var{u}^}, where
-@math{@var{u}^=@var{u}-@var{u1},/@var{u2}-@var{u1},}
+When @code{glEvalCoord1} presents a value @r{@var{u}}, the Bernstein
+functions are evaluated using @r{@var{u}^}, where
+@r{@var{u}^=@var{u}-@var{u1},/@var{u2}-@var{u1},}
 
 @var{target} is a symbolic constant that indicates what kind of control
 points are provided in @var{points}, and what output is generated when
@@ -15222,14 +14973,13 @@ the map is evaluated. It can assume one of nine predefined values:
 @table @asis
 @item @code{GL_MAP1_VERTEX_3}
 Each control point is three floating-point values representing
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}}. Internal
-@code{glVertex3} commands are generated when the map is evaluated.
+@r{@var{x}}, @r{@var{y}}, and @r{@var{z}}. Internal @code{glVertex3}
+commands are generated when the map is evaluated.
 
 @item @code{GL_MAP1_VERTEX_4}
 Each control point is four floating-point values representing
-@math{@var{x}}, @math{@var{y}}, @math{@var{z}}, and @math{@var{w}}.
-Internal @code{glVertex4} commands are generated when the map is
-evaluated.
+@r{@var{x}}, @r{@var{y}}, @r{@var{z}}, and @r{@var{w}}. Internal
+@code{glVertex4} commands are generated when the map is evaluated.
 
 @item @code{GL_MAP1_INDEX}
 Each control point is a single floating-point value representing a color
@@ -15245,38 +14995,37 @@ value of these @code{glColor4} commands.
 
 @item @code{GL_MAP1_NORMAL}
 Each control point is three floating-point values representing the
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}} components of a
-normal vector. Internal @code{glNormal} commands are generated when the
-map is evaluated but the current normal is not updated with the value of
-these @code{glNormal} commands.
+@r{@var{x}}, @r{@var{y}}, and @r{@var{z}} components of a normal vector.
+Internal @code{glNormal} commands are generated when the map is
+evaluated but the current normal is not updated with the value of these
+@code{glNormal} commands.
 
 @item @code{GL_MAP1_TEXTURE_COORD_1}
 Each control point is a single floating-point value representing the
-@math{@var{s}} texture coordinate. Internal @code{glTexCoord1} commands
-are generated when the map is evaluated but the current texture
-coordinates are not updated with the value of these @code{glTexCoord}
-commands.
+@r{@var{s}} texture coordinate. Internal @code{glTexCoord1} commands are
+generated when the map is evaluated but the current texture coordinates
+are not updated with the value of these @code{glTexCoord} commands.
 
 @item @code{GL_MAP1_TEXTURE_COORD_2}
 Each control point is two floating-point values representing the
-@math{@var{s}} and @math{@var{t}} texture coordinates. Internal
+@r{@var{s}} and @r{@var{t}} texture coordinates. Internal
 @code{glTexCoord2} commands are generated when the map is evaluated but
 the current texture coordinates are not updated with the value of these
 @code{glTexCoord} commands.
 
 @item @code{GL_MAP1_TEXTURE_COORD_3}
 Each control point is three floating-point values representing the
-@math{@var{s}}, @math{@var{t}}, and @math{@var{r}} texture coordinates.
-Internal @code{glTexCoord3} commands are generated when the map is
-evaluated but the current texture coordinates are not updated with the
-value of these @code{glTexCoord} commands.
+@r{@var{s}}, @r{@var{t}}, and @r{@var{r}} texture coordinates. Internal
+@code{glTexCoord3} commands are generated when the map is evaluated but
+the current texture coordinates are not updated with the value of these
+@code{glTexCoord} commands.
 
 @item @code{GL_MAP1_TEXTURE_COORD_4}
 Each control point is four floating-point values representing the
-@math{@var{s}}, @math{@var{t}}, @math{@var{r}}, and @math{@var{q}}
-texture coordinates. Internal @code{glTexCoord4} commands are generated
-when the map is evaluated but the current texture coordinates are not
-updated with the value of these @code{glTexCoord} commands.
+@r{@var{s}}, @r{@var{t}}, @r{@var{r}}, and @r{@var{q}} texture
+coordinates. Internal @code{glTexCoord4} commands are generated when the
+map is evaluated but the current texture coordinates are not updated
+with the value of these @code{glTexCoord} commands.
 
 @end table
 
@@ -15288,7 +15037,6 @@ is the number of control points in the array. @var{stride} specifies how
 many float or double locations to advance the internal memory pointer to
 reach the next control point.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not an accepted
 value.
 
@@ -15307,11 +15055,12 @@ of @code{glEnd}.
 @code{GL_INVALID_OPERATION} is generated if @code{glMap1} is called and
 the value of @code{GL_ACTIVE_TEXTURE} is not @code{GL_TEXTURE0}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMap2f target u1 u2 ustride uorder v1 v2 vstride vorder points
+@deftypefunx void glMap2d target u1 u2 ustride uorder v1 v2 vstride vorder points
+Define a two-dimensional evaluator.
 
-@defun glMap2 
-@heading define a two-dimensional evaluator
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the kind of values that are generated by the evaluator.
@@ -15323,44 +15072,44 @@ accepted.
 
 @item @var{u1}
 @itemx @var{u2}
-Specify a linear mapping of @math{@var{u}}, as presented to
-@code{glEvalCoord2}, to @math{@var{u}^}, one of the two variables that
-are evaluated by the equations specified by this command. Initially,
+Specify a linear mapping of @r{@var{u}}, as presented to
+@code{glEvalCoord2}, to @r{@var{u}^}, one of the two variables that are
+evaluated by the equations specified by this command. Initially,
 @var{u1} is 0 and @var{u2} is 1.
 
 @item @var{ustride}
 Specifies the number of floats or doubles between the beginning of
-control point @math{@var{R}_@var{ij}} and the beginning of control point
-@math{@var{R}_(@var{i}+1,)⁢@var{j},}, where @math{@var{i}} and
-@math{@var{j}} are the @math{@var{u}} and @math{@var{v}} control point
-indices, respectively. This allows control points to be embedded in
-arbitrary data structures. The only constraint is that the values for a
-particular control point must occupy contiguous memory locations. The
-initial value of @var{ustride} is 0.
+control point @r{@var{R}_@var{ij}} and the beginning of control point
+@r{@var{R}_(@var{i}+1,)⁢@var{j},}, where @r{@var{i}} and @r{@var{j}} are
+the @r{@var{u}} and @r{@var{v}} control point indices, respectively.
+This allows control points to be embedded in arbitrary data structures.
+The only constraint is that the values for a particular control point
+must occupy contiguous memory locations. The initial value of
+@var{ustride} is 0.
 
 @item @var{uorder}
-Specifies the dimension of the control point array in the @math{@var{u}}
+Specifies the dimension of the control point array in the @r{@var{u}}
 axis. Must be positive. The initial value is 1.
 
 @item @var{v1}
 @itemx @var{v2}
-Specify a linear mapping of @math{@var{v}}, as presented to
-@code{glEvalCoord2}, to @math{@var{v}^}, one of the two variables that
-are evaluated by the equations specified by this command. Initially,
+Specify a linear mapping of @r{@var{v}}, as presented to
+@code{glEvalCoord2}, to @r{@var{v}^}, one of the two variables that are
+evaluated by the equations specified by this command. Initially,
 @var{v1} is 0 and @var{v2} is 1.
 
 @item @var{vstride}
 Specifies the number of floats or doubles between the beginning of
-control point @math{@var{R}_@var{ij}} and the beginning of control point
-@math{@var{R}_@var{i}⁡(@var{j}+1,),}, where @math{@var{i}} and
-@math{@var{j}} are the @math{@var{u}} and @math{@var{v}} control point
-indices, respectively. This allows control points to be embedded in
-arbitrary data structures. The only constraint is that the values for a
-particular control point must occupy contiguous memory locations. The
-initial value of @var{vstride} is 0.
+control point @r{@var{R}_@var{ij}} and the beginning of control point
+@r{@var{R}_@var{i}⁡(@var{j}+1,),}, where @r{@var{i}} and @r{@var{j}} are
+the @r{@var{u}} and @r{@var{v}} control point indices, respectively.
+This allows control points to be embedded in arbitrary data structures.
+The only constraint is that the values for a particular control point
+must occupy contiguous memory locations. The initial value of
+@var{vstride} is 0.
 
 @item @var{vorder}
-Specifies the dimension of the control point array in the @math{@var{v}}
+Specifies the dimension of the control point array in the @r{@var{v}}
 axis. Must be positive. The initial value is 1.
 
 @item @var{points}
@@ -15368,7 +15117,6 @@ Specifies a pointer to the array of control points.
 
 @end table
 
-@heading Description
 Evaluators provide a way to use polynomial or rational polynomial
 mapping to produce vertices, normals, texture coordinates, and colors.
 The values produced by an evaluator are sent on to further stages of GL
@@ -15384,40 +15132,39 @@ graphics, including B-spline surfaces, NURBS surfaces, Bezier surfaces,
 and so on.
 
 Evaluators define surfaces based on bivariate Bernstein polynomials.
-Define @math{@var{p}⁡(@var{u}^,@var{v}^)} as
+Define @r{@var{p}⁡(@var{u}^,@var{v}^)} as
 
-@math{@var{p}⁡(@var{u}^,@var{v}^)=Σ@var{i}=0@var{n}Σ@var{j}=0@var{m}@var{B}_@var{i},^@var{n}⁡(@var{u}^,)⁢@var{B}_@var{j},^@var{m}⁡(@var{v}^,)⁢@var{R}_@var{ij}}
+@r{@var{p}⁡(@var{u}^,@var{v}^)=Σ@var{i}=0@var{n}Σ@var{j}=0@var{m}@var{B}_@var{i},^@var{n}⁡(@var{u}^,)⁢@var{B}_@var{j},^@var{m}⁡(@var{v}^,)⁢@var{R}_@var{ij}}
 
 
 
-where @math{@var{R}_@var{ij}} is a control point,
-@math{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)} is the @math{@var{i}}th
-Bernstein polynomial of degree @math{@var{n}} (@var{uorder} =
-@math{@var{n}+1})
+where @r{@var{R}_@var{ij}} is a control point,
+@r{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)} is the @r{@var{i}}th Bernstein
+polynomial of degree @r{@var{n}} (@var{uorder} = @r{@var{n}+1})
 
-@math{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)=((@var{n}),
+@r{@var{B}_@var{i},^@var{n}⁡(@var{u}^,)=((@var{n}),
 (@var{i}),,)⁢@var{u}^,^@var{i}⁢(1-@var{u}^,)^@var{n}-@var{i},,}
 
-and @math{@var{B}_@var{j},^@var{m}⁡(@var{v}^,)} is the @math{@var{j}}th
-Bernstein polynomial of degree @math{@var{m}} (@var{vorder} =
-@math{@var{m}+1})
+and @r{@var{B}_@var{j},^@var{m}⁡(@var{v}^,)} is the @r{@var{j}}th
+Bernstein polynomial of degree @r{@var{m}} (@var{vorder} =
+@r{@var{m}+1})
 
-@math{@var{B}_@var{j},^@var{m}⁡(@var{v}^,)=((@var{m}),
+@r{@var{B}_@var{j},^@var{m}⁡(@var{v}^,)=((@var{m}),
 (@var{j}),,)⁢@var{v}^,^@var{j}⁢(1-@var{v}^,)^@var{m}-@var{j},,}
 
-Recall that @math{0^0==1} and @math{((@var{n}), (0),,)==1}
+Recall that @r{0^0==1} and @r{((@var{n}), (0),,)==1}
 
 @code{glMap2} is used to define the basis and to specify what kind of
 values are produced. Once defined, a map can be enabled and disabled by
 calling @code{glEnable} and @code{glDisable} with the map name, one of
 the nine predefined values for @var{target}, described below. When
-@code{glEvalCoord2} presents values @math{@var{u}} and @math{@var{v}},
-the bivariate Bernstein polynomials are evaluated using @math{@var{u}^}
-and @math{@var{v}^}, where
+@code{glEvalCoord2} presents values @r{@var{u}} and @r{@var{v}}, the
+bivariate Bernstein polynomials are evaluated using @r{@var{u}^} and
+@r{@var{v}^}, where
 
-@math{@var{u}^=@var{u}-@var{u1},/@var{u2}-@var{u1},}
+@r{@var{u}^=@var{u}-@var{u1},/@var{u2}-@var{u1},}
 
-@math{@var{v}^=@var{v}-@var{v1},/@var{v2}-@var{v1},}
+@r{@var{v}^=@var{v}-@var{v1},/@var{v2}-@var{v1},}
 
 @var{target} is a symbolic constant that indicates what kind of control
 points are provided in @var{points}, and what output is generated when
@@ -15426,14 +15173,13 @@ the map is evaluated. It can assume one of nine predefined values:
 @table @asis
 @item @code{GL_MAP2_VERTEX_3}
 Each control point is three floating-point values representing
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}}. Internal
-@code{glVertex3} commands are generated when the map is evaluated.
+@r{@var{x}}, @r{@var{y}}, and @r{@var{z}}. Internal @code{glVertex3}
+commands are generated when the map is evaluated.
 
 @item @code{GL_MAP2_VERTEX_4}
 Each control point is four floating-point values representing
-@math{@var{x}}, @math{@var{y}}, @math{@var{z}}, and @math{@var{w}}.
-Internal @code{glVertex4} commands are generated when the map is
-evaluated.
+@r{@var{x}}, @r{@var{y}}, @r{@var{z}}, and @r{@var{w}}. Internal
+@code{glVertex4} commands are generated when the map is evaluated.
 
 @item @code{GL_MAP2_INDEX}
 Each control point is a single floating-point value representing a color
@@ -15449,38 +15195,37 @@ value of these @code{glColor4} commands.
 
 @item @code{GL_MAP2_NORMAL}
 Each control point is three floating-point values representing the
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}} components of a
-normal vector. Internal @code{glNormal} commands are generated when the
-map is evaluated but the current normal is not updated with the value of
-these @code{glNormal} commands.
+@r{@var{x}}, @r{@var{y}}, and @r{@var{z}} components of a normal vector.
+Internal @code{glNormal} commands are generated when the map is
+evaluated but the current normal is not updated with the value of these
+@code{glNormal} commands.
 
 @item @code{GL_MAP2_TEXTURE_COORD_1}
 Each control point is a single floating-point value representing the
-@math{@var{s}} texture coordinate. Internal @code{glTexCoord1} commands
-are generated when the map is evaluated but the current texture
-coordinates are not updated with the value of these @code{glTexCoord}
-commands.
+@r{@var{s}} texture coordinate. Internal @code{glTexCoord1} commands are
+generated when the map is evaluated but the current texture coordinates
+are not updated with the value of these @code{glTexCoord} commands.
 
 @item @code{GL_MAP2_TEXTURE_COORD_2}
 Each control point is two floating-point values representing the
-@math{@var{s}} and @math{@var{t}} texture coordinates. Internal
+@r{@var{s}} and @r{@var{t}} texture coordinates. Internal
 @code{glTexCoord2} commands are generated when the map is evaluated but
 the current texture coordinates are not updated with the value of these
 @code{glTexCoord} commands.
 
 @item @code{GL_MAP2_TEXTURE_COORD_3}
 Each control point is three floating-point values representing the
-@math{@var{s}}, @math{@var{t}}, and @math{@var{r}} texture coordinates.
-Internal @code{glTexCoord3} commands are generated when the map is
-evaluated but the current texture coordinates are not updated with the
-value of these @code{glTexCoord} commands.
+@r{@var{s}}, @r{@var{t}}, and @r{@var{r}} texture coordinates. Internal
+@code{glTexCoord3} commands are generated when the map is evaluated but
+the current texture coordinates are not updated with the value of these
+@code{glTexCoord} commands.
 
 @item @code{GL_MAP2_TEXTURE_COORD_4}
 Each control point is four floating-point values representing the
-@math{@var{s}}, @math{@var{t}}, @math{@var{r}}, and @math{@var{q}}
-texture coordinates. Internal @code{glTexCoord4} commands are generated
-when the map is evaluated but the current texture coordinates are not
-updated with the value of these @code{glTexCoord} commands.
+@r{@var{s}}, @r{@var{t}}, @r{@var{r}}, and @r{@var{q}} texture
+coordinates. Internal @code{glTexCoord4} commands are generated when the
+map is evaluated but the current texture coordinates are not updated
+with the value of these @code{glTexCoord} commands.
 
 @end table
 
@@ -15488,17 +15233,15 @@ updated with the value of these @code{glTexCoord} commands.
 @var{points} define the array addressing for accessing the control
 points. @var{points} is the location of the first control point, which
 occupies one, two, three, or four contiguous memory locations, depending
-on which map is being defined. There are
-@math{@var{uorder}×@var{vorder}} control points in the array.
-@var{ustride} specifies how many float or double locations are skipped
-to advance the internal memory pointer from control point
-@math{@var{R}_@var{i}⁢@var{j},} to control point
-@math{@var{R}_(@var{i}+1,)⁢@var{j},}. @var{vstride} specifies how many
+on which map is being defined. There are @r{@var{uorder}×@var{vorder}}
+control points in the array. @var{ustride} specifies how many float or
+double locations are skipped to advance the internal memory pointer from
+control point @r{@var{R}_@var{i}⁢@var{j},} to control point
+@r{@var{R}_(@var{i}+1,)⁢@var{j},}. @var{vstride} specifies how many
 float or double locations are skipped to advance the internal memory
-pointer from control point @math{@var{R}_@var{i}⁢@var{j},} to control
-point @math{@var{R}_@var{i}⁡(@var{j}+1,),}.
+pointer from control point @r{@var{R}_@var{i}⁢@var{j},} to control point
+@r{@var{R}_@var{i}⁡(@var{j}+1,),}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not an accepted
 value.
 
@@ -15519,11 +15262,12 @@ of @code{glEnd}.
 @code{GL_INVALID_OPERATION} is generated if @code{glMap2} is called and
 the value of @code{GL_ACTIVE_TEXTURE} is not @code{GL_TEXTURE0}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void-* glMapBuffer target access
+@deftypefunx GLboolean glUnmapBuffer target
+Map a buffer object's data store.
 
-@defun glMapBuffer 
-@heading map a buffer object's data store
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target buffer object being mapped. The symbolic constant
@@ -15538,7 +15282,6 @@ mapped data store. The symbolic constant must be @code{GL_READ_ONLY},
 
 @end table
 
-@heading Description
 @code{glMapBuffer} maps to the client's address space the entire data
 store of the buffer object currently bound to @var{target}. The data can
 then be directly read and/or written relative to the returned pointer,
@@ -15573,7 +15316,6 @@ A buffer object's mapped data store is automatically unmapped when the
 buffer object is deleted or its data store is recreated with
 @code{glBufferData}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_ARRAY_BUFFER}, @code{GL_ELEMENT_ARRAY_BUFFER},
 @code{GL_PIXEL_PACK_BUFFER}, or @code{GL_PIXEL_UNPACK_BUFFER}.
@@ -15599,11 +15341,14 @@ executed for a buffer object whose data store is not currently mapped.
 @code{glUnmapBuffer} is executed between the execution of @code{glBegin}
 and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMapGrid1d un u1 u2
+@deftypefunx void glMapGrid1f un u1 u2
+@deftypefunx void glMapGrid2d un u1 u2 vn v1 v2
+@deftypefunx void glMapGrid2f un u1 u2 vn v1 v2
+Define a one- or two-dimensional mesh.
 
-@defun glMapGrid 
-@heading define a one- or two-dimensional mesh
-@heading Parameters
 @table @asis
 @item @var{un}
 Specifies the number of partitions in the grid range interval [@var{u1},
@@ -15611,8 +15356,8 @@ Specifies the number of partitions in the grid range interval [@var{u1},
 
 @item @var{u1}
 @itemx @var{u2}
-Specify the mappings for integer grid domain values @math{@var{i}=0} and
-@math{@var{i}=@var{un}}.
+Specify the mappings for integer grid domain values @r{@var{i}=0} and
+@r{@var{i}=@var{un}}.
 
 @item @var{vn}
 Specifies the number of partitions in the grid range interval [@var{v1},
@@ -15620,12 +15365,11 @@ Specifies the number of partitions in the grid range interval [@var{v1},
 
 @item @var{v1}
 @itemx @var{v2}
-Specify the mappings for integer grid domain values @math{@var{j}=0} and
-@math{@var{j}=@var{vn}} (@code{glMapGrid2} only).
+Specify the mappings for integer grid domain values @r{@var{j}=0} and
+@r{@var{j}=@var{vn}} (@code{glMapGrid2} only).
 
 @end table
 
-@heading Description
 @code{glMapGrid} and @code{glEvalMesh} are used together to efficiently
 generate and evaluate a series of evenly-spaced map domain values.
 @code{glEvalMesh} steps through the integer domain of a one- or
@@ -15633,35 +15377,33 @@ two-dimensional grid, whose range is the domain of the evaluation maps
 specified by @code{glMap1} and @code{glMap2}.
 
 @code{glMapGrid1} and @code{glMapGrid2} specify the linear grid mappings
-between the @math{@var{i}} (or @math{@var{i}} and @math{@var{j}})
-integer grid coordinates, to the @math{@var{u}} (or @math{@var{u}} and
-@math{@var{v}}) floating-point evaluation map coordinates. See
-@code{glMap1} and @code{glMap2} for details of how @math{@var{u}} and
-@math{@var{v}} coordinates are evaluated.
+between the @r{@var{i}} (or @r{@var{i}} and @r{@var{j}}) integer grid
+coordinates, to the @r{@var{u}} (or @r{@var{u}} and @r{@var{v}})
+floating-point evaluation map coordinates. See @code{glMap1} and
+@code{glMap2} for details of how @r{@var{u}} and @r{@var{v}} coordinates
+are evaluated.
 
 @code{glMapGrid1} specifies a single linear mapping such that integer
 grid coordinate 0 maps exactly to @var{u1}, and integer grid coordinate
 @var{un} maps exactly to @var{u2}. All other integer grid coordinates
-@math{@var{i}} are mapped so that
+@r{@var{i}} are mapped so that
 
-@math{@var{u}=@var{i}⁡(@var{u2}-@var{u1},)/@var{un}+@var{u1}}
+@r{@var{u}=@var{i}⁡(@var{u2}-@var{u1},)/@var{un}+@var{u1}}
 
 @code{glMapGrid2} specifies two such linear mappings. One maps integer
-grid coordinate @math{@var{i}=0} exactly to @var{u1}, and integer grid
-coordinate @math{@var{i}=@var{un}} exactly to @var{u2}. The other maps
-integer grid coordinate @math{@var{j}=0} exactly to @var{v1}, and
-integer grid coordinate @math{@var{j}=@var{vn}} exactly to @var{v2}.
-Other integer grid coordinates @math{@var{i}} and @math{@var{j}} are
-mapped such that
+grid coordinate @r{@var{i}=0} exactly to @var{u1}, and integer grid
+coordinate @r{@var{i}=@var{un}} exactly to @var{u2}. The other maps
+integer grid coordinate @r{@var{j}=0} exactly to @var{v1}, and integer
+grid coordinate @r{@var{j}=@var{vn}} exactly to @var{v2}. Other integer
+grid coordinates @r{@var{i}} and @r{@var{j}} are mapped such that
 
-@math{@var{u}=@var{i}⁡(@var{u2}-@var{u1},)/@var{un}+@var{u1}}
+@r{@var{u}=@var{i}⁡(@var{u2}-@var{u1},)/@var{un}+@var{u1}}
 
-@math{@var{v}=@var{j}⁡(@var{v2}-@var{v1},)/@var{vn}+@var{v1}}
+@r{@var{v}=@var{j}⁡(@var{v2}-@var{v1},)/@var{vn}+@var{v1}}
 
 The mappings specified by @code{glMapGrid} are used identically by
 @code{glEvalMesh} and @code{glEvalPoint}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if either @var{un} or @var{vn} is
 not positive.
 
@@ -15669,11 +15411,14 @@ not positive.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMaterialf face pname param
+@deftypefunx void glMateriali face pname param
+@deftypefunx void glMaterialfv face pname params
+@deftypefunx void glMaterialiv face pname params
+Specify material parameters for the lighting model.
 
-@defun glMaterial 
-@heading specify material parameters for the lighting model
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies which face or faces are being updated. Must be one of
@@ -15688,7 +15433,6 @@ Specifies the value that parameter @code{GL_SHININESS} will be set to.
 
 @end table
 
-@heading Description
 @code{glMaterial} assigns values to material parameters. There are two
 matched sets of material parameters. One, the @var{front-facing} set, is
 used to shade points, lines, bitmaps, and all polygons (when two-sided
@@ -15716,7 +15460,7 @@ equation, are as follows:
 @var{params} contains four integer or floating-point values that specify
 the ambient RGBA reflectance of the material. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial ambient reflectance for
 both front- and back-facing materials is (0.2, 0.2, 0.2, 1.0).
@@ -15725,7 +15469,7 @@ both front- and back-facing materials is (0.2, 0.2, 0.2, 1.0).
 @var{params} contains four integer or floating-point values that specify
 the diffuse RGBA reflectance of the material. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial diffuse reflectance for
 both front- and back-facing materials is (0.8, 0.8, 0.8, 1.0).
@@ -15734,7 +15478,7 @@ both front- and back-facing materials is (0.8, 0.8, 0.8, 1.0).
 @var{params} contains four integer or floating-point values that specify
 the specular RGBA reflectance of the material. Integer values are mapped
 linearly such that the most positive representable value maps to 1.0,
-and the most negative representable value maps to @math{-1.0}.
+and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial specular reflectance for
 both front- and back-facing materials is (0, 0, 0, 1).
@@ -15743,7 +15487,7 @@ both front- and back-facing materials is (0, 0, 0, 1).
 @var{params} contains four integer or floating-point values that specify
 the RGBA emitted light intensity of the material. Integer values are
 mapped linearly such that the most positive representable value maps to
-1.0, and the most negative representable value maps to @math{-1.0}.
+1.0, and the most negative representable value maps to @r{-1.0}.
 Floating-point values are mapped directly. Neither integer nor
 floating-point values are clamped. The initial emission intensity for
 both front- and back-facing materials is (0, 0, 0, 1).
@@ -15751,7 +15495,7 @@ both front- and back-facing materials is (0, 0, 0, 1).
 @item @code{GL_SHININESS}
 @var{params} is a single integer or floating-point value that specifies
 the RGBA specular exponent of the material. Integer and floating-point
-values are mapped directly. Only values in the range @math{[0,128]} are
+values are mapped directly. Only values in the range @r{[0,128]} are
 accepted. The initial specular exponent for both front- and back-facing
 materials is 0.
 
@@ -15769,18 +15513,17 @@ lighting.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{face} or @var{pname}
 is not an accepted value.
 
 @code{GL_INVALID_VALUE} is generated if a specular exponent outside the
-range @math{[0,128]} is specified.
+range @r{[0,128]} is specified.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMatrixMode mode
+Specify which matrix is the current matrix.
 
-@defun glMatrixMode 
-@heading specify which matrix is the current matrix
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies which matrix stack is the target for subsequent matrix
@@ -15791,7 +15534,6 @@ is supported, @code{GL_COLOR} is also accepted.
 
 @end table
 
-@heading Description
 @code{glMatrixMode} sets the current matrix mode. @var{mode} can assume
 one of four values:
 
@@ -15814,7 +15556,6 @@ To find out which matrix stack is currently the target of all matrix
 operations, call @code{glGet} with argument @code{GL_MATRIX_MODE}. The
 initial value is @code{GL_MODELVIEW}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -15822,11 +15563,11 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMinmax target internalformat sink
+Define minmax table.
 
-@defun glMinmax 
-@heading define minmax table
-@heading Parameters
 @table @asis
 @item @var{target}
 The minmax table whose parameters are to be set. Must be
@@ -15853,7 +15594,6 @@ will proceed to the final conversion process after minmax.
 
 @end table
 
-@heading Description
 When @code{GL_MINMAX} is enabled, the RGBA components of incoming pixels
 are compared to the minimum and maximum values for each component, which
 are stored in the two-element minmax table. (The first element stores
@@ -15880,7 +15620,6 @@ or pixel readback will result.
 
 
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -15891,11 +15630,11 @@ of the allowable values.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMultiDrawArrays mode first count primcount
+Render multiple sets of primitives from array data.
 
-@defun glMultiDrawArrays 
-@heading render multiple sets of primitives from array data
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies what kind of primitives to render. Symbolic constants
@@ -15915,7 +15654,6 @@ Specifies the size of the first and count
 
 @end table
 
-@heading Description
 @code{glMultiDrawArrays} specifies multiple sets of geometric primitives
 with very few subroutine calls. Instead of calling a GL procedure to
 pass each individual vertex, normal, texture coordinate, edge flag, or
@@ -15940,7 +15678,6 @@ if @code{GL_COLOR_ARRAY} is enabled, the value of the current color is
 undefined after @code{glMultiDrawArrays} executes. Attributes that
 aren't modified remain well defined.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -15954,11 +15691,12 @@ currently mapped.
 executed between the execution of @code{glBegin} and the corresponding
 @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMultiDrawElements mode count type indices primcount
+Render multiple sets of primitives by specifying indices of array data
+elements.
 
-@defun glMultiDrawElements 
-@heading render multiple sets of primitives by specifying indices of array data elements
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies what kind of primitives to render. Symbolic constants
@@ -15983,7 +15721,6 @@ Specifies the size of the @var{count} array.
 
 @end table
 
-@heading Description
 @code{glMultiDrawElements} specifies multiple sets of geometric
 primitives with very few subroutine calls. Instead of calling a GL
 function to pass each individual vertex, normal, texture coordinate,
@@ -16001,7 +15738,6 @@ example, if @code{GL_COLOR_ARRAY} is enabled, the value of the current
 color is undefined after @code{glMultiDrawElements} executes. Attributes
 that aren't modified maintain their previous values.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
 value.
 
@@ -16015,17 +15751,48 @@ object's data store is currently mapped.
 is executed between the execution of @code{glBegin} and the
 corresponding @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMultiTexCoord1s target s
+@deftypefunx void glMultiTexCoord1i target s
+@deftypefunx void glMultiTexCoord1f target s
+@deftypefunx void glMultiTexCoord1d target s
+@deftypefunx void glMultiTexCoord2s target s t
+@deftypefunx void glMultiTexCoord2i target s t
+@deftypefunx void glMultiTexCoord2f target s t
+@deftypefunx void glMultiTexCoord2d target s t
+@deftypefunx void glMultiTexCoord3s target s t r
+@deftypefunx void glMultiTexCoord3i target s t r
+@deftypefunx void glMultiTexCoord3f target s t r
+@deftypefunx void glMultiTexCoord3d target s t r
+@deftypefunx void glMultiTexCoord4s target s t r q
+@deftypefunx void glMultiTexCoord4i target s t r q
+@deftypefunx void glMultiTexCoord4f target s t r q
+@deftypefunx void glMultiTexCoord4d target s t r q
+@deftypefunx void glMultiTexCoord1sv target v
+@deftypefunx void glMultiTexCoord1iv target v
+@deftypefunx void glMultiTexCoord1fv target v
+@deftypefunx void glMultiTexCoord1dv target v
+@deftypefunx void glMultiTexCoord2sv target v
+@deftypefunx void glMultiTexCoord2iv target v
+@deftypefunx void glMultiTexCoord2fv target v
+@deftypefunx void glMultiTexCoord2dv target v
+@deftypefunx void glMultiTexCoord3sv target v
+@deftypefunx void glMultiTexCoord3iv target v
+@deftypefunx void glMultiTexCoord3fv target v
+@deftypefunx void glMultiTexCoord3dv target v
+@deftypefunx void glMultiTexCoord4sv target v
+@deftypefunx void glMultiTexCoord4iv target v
+@deftypefunx void glMultiTexCoord4fv target v
+@deftypefunx void glMultiTexCoord4dv target v
+Set the current texture coordinates.
 
-@defun glMultiTexCoord 
-@heading set the current texture coordinates
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the texture unit whose coordinates should be modified. The
 number of texture units is implementation dependent, but must be at
 least two. Symbolic constant must be one of
-@code{GL_TEXTURE}@math{@var{i}}, where i ranges from 0 to
+@code{GL_TEXTURE}@r{@var{i}}, where i ranges from 0 to
 @code{GL_MAX_TEXTURE_COORDS} - 1, which is an implementation-dependent
 value.
 
@@ -16039,35 +15806,33 @@ of the command.
 
 @end table
 
-@heading Description
 @code{glMultiTexCoord} specifies texture coordinates in one, two, three,
 or four dimensions. @code{glMultiTexCoord1} sets the current texture
-coordinates to @math{(@var{s},001)}; a call to @code{glMultiTexCoord2}
-sets them to @math{(@var{s},@var{t}01)}. Similarly,
-@code{glMultiTexCoord3} specifies the texture coordinates as
-@math{(@var{s},@var{t}@var{r}1)}, and @code{glMultiTexCoord4} defines
-all four components explicitly as
-@math{(@var{s},@var{t}@var{r}@var{q})}.
+coordinates to @r{(@var{s},001)}; a call to @code{glMultiTexCoord2} sets
+them to @r{(@var{s},@var{t}01)}. Similarly, @code{glMultiTexCoord3}
+specifies the texture coordinates as @r{(@var{s},@var{t}@var{r}1)}, and
+@code{glMultiTexCoord4} defines all four components explicitly as
+@r{(@var{s},@var{t}@var{r}@var{q})}.
 
 The current texture coordinates are part of the data that is associated
 with each vertex and with the current raster position. Initially, the
-values for @math{(@var{s},@var{t}@var{r}@var{q})} are @math{(0,001)}.
+values for @r{(@var{s},@var{t}@var{r}@var{q})} are @r{(0,001)}.
+
 
 
+@end deftypefun
 
-@end defun
+@deftypefun void glMultMatrixd m
+@deftypefunx void glMultMatrixf m
+Multiply the current matrix with the specified matrix.
 
-@defun glMultMatrix 
-@heading multiply the current matrix with the specified matrix
-@heading Parameters
 @table @asis
 @item @var{m}
 Points to 16 consecutive values that are used as the elements of a
-@math{4×4} column-major matrix.
+@r{4×4} column-major matrix.
 
 @end table
 
-@heading Description
 @code{glMultMatrix} multiplies the current matrix with the one specified
 using @var{m}, and replaces the current matrix with the product.
 
@@ -16075,24 +15840,23 @@ The current matrix is determined by the current matrix mode (see
 @code{glMatrixMode}). It is either the projection matrix, modelview
 matrix, or the texture matrix.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glMultMatrix} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glMultTransposeMatrixd m
+@deftypefunx void glMultTransposeMatrixf m
+Multiply the current matrix with the specified row-major ordered matrix.
 
-@defun glMultTransposeMatrix 
-@heading multiply the current matrix with the specified row-major ordered matrix
-@heading Parameters
 @table @asis
 @item @var{m}
 Points to 16 consecutive values that are used as the elements of a
-@math{4×4} row-major matrix.
+@r{4×4} row-major matrix.
 
 @end table
 
-@heading Description
 @code{glMultTransposeMatrix} multiplies the current matrix with the one
 specified using @var{m}, and replaces the current matrix with the
 product.
@@ -16101,16 +15865,16 @@ The current matrix is determined by the current matrix mode (see
 @code{glMatrixMode}). It is either the projection matrix, modelview
 matrix, or the texture matrix.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glMultTransposeMatrix}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glNewList list mode
+@deftypefunx void glEndList 
+Create or replace a display list.
 
-@defun glNewList 
-@heading create or replace a display list
-@heading Parameters
 @table @asis
 @item @var{list}
 Specifies the display-list name.
@@ -16121,7 +15885,6 @@ Specifies the compilation mode, which can be @code{GL_COMPILE} or
 
 @end table
 
-@heading Description
 Display lists are groups of GL commands that have been stored for
 subsequent execution. Display lists are created with @code{glNewList}.
 All subsequent commands are placed in the display list, in the order
@@ -16178,7 +15941,6 @@ completed by associating the list with the unique name @var{list}
 @var{list} already exists, it is replaced only when @code{glEndList} is
 called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{list} is 0.
 
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not an accepted
@@ -16198,11 +15960,11 @@ is made to the previous contents of the display list, if any, and no
 other change is made to the GL state. (It is as if no attempt had been
 made to create the new display list.)
 
-@end defun
+@end deftypefun
+
+@deftypefun void glNormalPointer type stride pointer
+Define an array of normals.
 
-@defun glNormalPointer 
-@heading define an array of normals
-@heading Parameters
 @table @asis
 @item @var{type}
 Specifies the data type of each coordinate in the array. Symbolic
@@ -16221,7 +15983,6 @@ array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glNormalPointer} specifies the location and data format of an
 array of normals to use when rendering. @var{type} specifies the data
 type of each normal coordinate, and @var{stride} specifies the byte
@@ -16248,35 +16009,42 @@ and @code{glDisableClientState} with the argument
 @code{glMultiDrawElements}, @code{glDrawRangeElements}, or
 @code{glArrayElement} is called.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
 value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glNormal3b nx ny nz
+@deftypefunx void glNormal3d nx ny nz
+@deftypefunx void glNormal3f nx ny nz
+@deftypefunx void glNormal3i nx ny nz
+@deftypefunx void glNormal3s nx ny nz
+@deftypefunx void glNormal3bv v
+@deftypefunx void glNormal3dv v
+@deftypefunx void glNormal3fv v
+@deftypefunx void glNormal3iv v
+@deftypefunx void glNormal3sv v
+Set the current normal vector.
 
-@defun glNormal 
-@heading set the current normal vector
-@heading Parameters
 @table @asis
 @item @var{nx}
 @itemx @var{ny}
 @itemx @var{nz}
-Specify the @math{@var{x}}, @math{@var{y}}, and @math{@var{z}}
-coordinates of the new current normal. The initial value of the current
-normal is the unit vector, (0, 0, 1).
+Specify the @r{@var{x}}, @r{@var{y}}, and @r{@var{z}} coordinates of the
+new current normal. The initial value of the current normal is the unit
+vector, (0, 0, 1).
 
 
 
 @end table
 
-@heading Description
 The current normal is set to the given coordinates whenever
 @code{glNormal} is issued. Byte, short, or integer arguments are
 converted to floating-point format with a linear mapping that maps the
 most positive representable integer value to 1.0 and the most negative
-representable integer value to @math{-1.0}.
+representable integer value to @r{-1.0}.
 
 Normals specified with @code{glNormal} need not have unit length. If
 @code{GL_NORMALIZE} is enabled, then normals of any length specified
@@ -16289,11 +16057,11 @@ results. To enable and disable normalization, call @code{glEnable} and
 @code{glDisable} with either @code{GL_NORMALIZE} or
 @code{GL_RESCALE_NORMAL}. Normalization is initially disabled.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glOrtho left right bottom top nearVal farVal
+Multiply the current matrix with an orthographic matrix.
 
-@defun glOrtho 
-@heading multiply the current matrix with an orthographic matrix
-@heading Parameters
 @table @asis
 @item @var{left}
 @itemx @var{right}
@@ -16311,33 +16079,30 @@ These values are negative if the plane is to be behind the viewer.
 
 @end table
 
-@heading Description
 @code{glOrtho} describes a transformation that produces a parallel
 projection. The current matrix (see @code{glMatrixMode}) is multiplied
 by this matrix and the result replaces the current matrix, as if
 @code{glMultMatrix} were called with the following matrix as its
 argument:
 
-@math{((2/@var{right}-@var{left},, 0 0 @var{t}_@var{x},), (0
+@r{((2/@var{right}-@var{left},, 0 0 @var{t}_@var{x},), (0
 2/@var{top}-@var{bottom},, 0 @var{t}_@var{y},), (0 0
 -2/@var{farVal}-@var{nearVal},, @var{t}_@var{z},), (0 0 0 1),)}
 
 where
-@math{@var{t}_@var{x}=-@var{right}+@var{left},/@var{right}-@var{left},,}@math{@var{t}_@var{y}=-@var{top}+@var{bottom},/@var{top}-@var{bottom},,}@math{@var{t}_@var{z}=-@var{farVal}+@var{nearVal},/@var{farVal}-@var{nearVal},,}
+@r{@var{t}_@var{x}=-@var{right}+@var{left},/@var{right}-@var{left},,}@r{@var{t}_@var{y}=-@var{top}+@var{bottom},/@var{top}-@var{bottom},,}@r{@var{t}_@var{z}=-@var{farVal}+@var{nearVal},/@var{farVal}-@var{nearVal},,}
 
 Typically, the matrix mode is @code{GL_PROJECTION}, and
-@math{(@var{left},@var{bottom}-@var{nearVal})} and
-@math{(@var{right},@var{top}-@var{nearVal})} specify the points on the
-near clipping plane that are mapped to the lower left and upper right
-corners of the window, respectively, assuming that the eye is located at
-(0, 0, 0). @math{-@var{farVal}} specifies the location of the far
-clipping plane. Both @var{nearVal} and @var{farVal} can be either
-positive or negative.
+@r{(@var{left},@var{bottom}-@var{nearVal})} and
+@r{(@var{right},@var{top}-@var{nearVal})} specify the points on the near
+clipping plane that are mapped to the lower left and upper right corners
+of the window, respectively, assuming that the eye is located at (0, 0,
+0). @r{-@var{farVal}} specifies the location of the far clipping plane.
+Both @var{nearVal} and @var{farVal} can be either positive or negative.
 
 Use @code{glPushMatrix} and @code{glPopMatrix} to save and restore the
 current matrix stack.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{left} = @var{right}, or
 @var{bottom} = @var{top}, or @var{near} = @var{far}.
 
@@ -16345,11 +16110,11 @@ current matrix stack.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPassThrough token
+Place a marker in the feedback buffer.
 
-@defun glPassThrough 
-@heading place a marker in the feedback buffer
-@heading Parameters
 @table @asis
 @item @var{token}
 Specifies a marker value to be placed in the feedback buffer following a
@@ -16357,7 +16122,6 @@ Specifies a marker value to be placed in the feedback buffer following a
 
 @end table
 
-@heading Description
 
 
 Feedback is a GL render mode. The mode is selected by calling
@@ -16374,16 +16138,17 @@ value: @code{GL_PASS_THROUGH_TOKEN}. The order of @code{glPassThrough}
 commands with respect to the specification of graphics primitives is
 maintained.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glPassThrough} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPixelMapfv map mapsize values
+@deftypefunx void glPixelMapuiv map mapsize values
+@deftypefunx void glPixelMapusv map mapsize values
+Set up pixel transfer maps.
 
-@defun glPixelMap 
-@heading set up pixel transfer maps
-@heading Parameters
 @table @asis
 @item @var{map}
 Specifies a symbolic map name. Must be one of the following:
@@ -16401,7 +16166,6 @@ Specifies an array of @var{mapsize} values.
 
 @end table
 
-@heading Description
 @code{glPixelMap} sets up translation tables, or @var{maps}, used by
 @code{glCopyPixels}, @code{glCopyTexImage1D}, @code{glCopyTexImage2D},
 @code{glCopyTexSubImage1D}, @code{glCopyTexSubImage2D},
@@ -16483,8 +16247,8 @@ of the binary point.
 
 The following table shows the initial sizes and values for each of the
 maps. Maps that are indexed by either color or stencil indices must have
-@var{mapsize} = @math{2^@var{n}} for some @math{@var{n}} or the results
-are undefined. The maximum allowable size for each map depends on the
+@var{mapsize} = @r{2^@var{n}} for some @r{@var{n}} or the results are
+undefined. The maximum allowable size for each map depends on the
 implementation and can be determined by calling @code{glGet} with
 argument @code{GL_MAX_PIXEL_MAP_TABLE}. The single maximum applies to
 all maps; it is at least 32.
@@ -16526,7 +16290,6 @@ A , A , 1 , 0
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{map} is not an accepted
 value.
 
@@ -16570,11 +16333,12 @@ datum.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPixelStoref pname param
+@deftypefunx void glPixelStorei pname param
+Set pixel storage modes.
 
-@defun glPixelStore 
-@heading set pixel storage modes
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies the symbolic name of the parameter to be set. Six values
@@ -16594,7 +16358,6 @@ Specifies the value that @var{pname} is set to.
 
 @end table
 
-@heading Description
 @code{glPixelStore} sets pixel storage modes that affect the operation
 of subsequent @code{glDrawPixels} and @code{glReadPixels} as well as the
 unpacking of polygon stipple patterns (see @code{glPolygonStipple}),
@@ -16616,15 +16379,14 @@ affect how pixel data is returned to client memory. They are as follows:
 @item @code{GL_PACK_SWAP_BYTES}
 If true, byte ordering for multibyte color components, depth components,
 color indices, or stencil indices is reversed. That is, if a four-byte
-component consists of bytes @math{@var{b}_0}, @math{@var{b}_1},
-@math{@var{b}_2}, @math{@var{b}_3}, it is stored in memory as
-@math{@var{b}_3}, @math{@var{b}_2}, @math{@var{b}_1}, @math{@var{b}_0}
-if @code{GL_PACK_SWAP_BYTES} is true. @code{GL_PACK_SWAP_BYTES} has no
-effect on the memory order of components within a pixel, only on the
-order of bytes within components or indices. For example, the three
-components of a @code{GL_RGB} format pixel are always stored with red
-first, green second, and blue third, regardless of the value of
-@code{GL_PACK_SWAP_BYTES}.
+component consists of bytes @r{@var{b}_0}, @r{@var{b}_1}, @r{@var{b}_2},
+@r{@var{b}_3}, it is stored in memory as @r{@var{b}_3}, @r{@var{b}_2},
+@r{@var{b}_1}, @r{@var{b}_0} if @code{GL_PACK_SWAP_BYTES} is true.
+@code{GL_PACK_SWAP_BYTES} has no effect on the memory order of
+components within a pixel, only on the order of bytes within components
+or indices. For example, the three components of a @code{GL_RGB} format
+pixel are always stored with red first, green second, and blue third,
+regardless of the value of @code{GL_PACK_SWAP_BYTES}.
 
 @item @code{GL_PACK_LSB_FIRST}
 If true, bits are ordered within a byte from least significant to most
@@ -16634,24 +16396,23 @@ significant one. This parameter is significant for bitmap data only.
 @item @code{GL_PACK_ROW_LENGTH}
 If greater than 0, @code{GL_PACK_ROW_LENGTH} defines the number of
 pixels in a row. If the first pixel of a row is placed at location
-@math{@var{p}} in memory, then the location of the first pixel of the
-next row is obtained by skipping
+@r{@var{p}} in memory, then the location of the first pixel of the next
+row is obtained by skipping
 
-@math{@var{k}=@{(@var{n}⁢@var{l}),
+@r{@var{k}=@{(@var{n}⁢@var{l}),
 (@var{a}/@var{s},⁢⌈@var{s}⁢@var{n}⁢@var{l},/@var{a},⌉)⁢(@var{s}>=@var{a}),
 (@var{s}<@var{a}),}
 
-components or indices, where @math{@var{n}} is the number of components
-or indices in a pixel, @math{@var{l}} is the number of pixels in a row
-(@code{GL_PACK_ROW_LENGTH} if it is greater than 0, the
-@math{@var{width}} argument to the pixel routine otherwise),
-@math{@var{a}} is the value of @code{GL_PACK_ALIGNMENT}, and
-@math{@var{s}} is the size, in bytes, of a single component (if
-@math{@var{a}<@var{s}}, then it is as if @math{@var{a}=@var{s}}). In the
-case of 1-bit values, the location of the next row is obtained by
-skipping
+components or indices, where @r{@var{n}} is the number of components or
+indices in a pixel, @r{@var{l}} is the number of pixels in a row
+(@code{GL_PACK_ROW_LENGTH} if it is greater than 0, the @r{@var{width}}
+argument to the pixel routine otherwise), @r{@var{a}} is the value of
+@code{GL_PACK_ALIGNMENT}, and @r{@var{s}} is the size, in bytes, of a
+single component (if @r{@var{a}<@var{s}}, then it is as if
+@r{@var{a}=@var{s}}). In the case of 1-bit values, the location of the
+next row is obtained by skipping
 
-@math{@var{k}=8⁢@var{a}⁢⌈@var{n}⁢@var{l},/8⁢@var{a},,⌉}
+@r{@var{k}=8⁢@var{a}⁢⌈@var{n}⁢@var{l},/8⁢@var{a},,⌉}
 
 components or indices.
 
@@ -16664,24 +16425,22 @@ finally blue.
 If greater than 0, @code{GL_PACK_IMAGE_HEIGHT} defines the number of
 pixels in an image three-dimensional texture volume, where ``image'' is
 defined by all pixels sharing the same third dimension index. If the
-first pixel of a row is placed at location @math{@var{p}} in memory,
-then the location of the first pixel of the next row is obtained by
-skipping
+first pixel of a row is placed at location @r{@var{p}} in memory, then
+the location of the first pixel of the next row is obtained by skipping
 
-@math{@var{k}=@{(@var{n}⁢@var{l}⁢@var{h}),
+@r{@var{k}=@{(@var{n}⁢@var{l}⁢@var{h}),
 (@var{a}/@var{s},⁢⌈@var{s}⁢@var{n}⁢@var{l}⁢@var{h},/@var{a},⌉)⁢(@var{s}>=@var{a}),
 (@var{s}<@var{a}),}
 
-components or indices, where @math{@var{n}} is the number of components
-or indices in a pixel, @math{@var{l}} is the number of pixels in a row
-(@code{GL_PACK_ROW_LENGTH} if it is greater than 0, the
-@math{@var{width}} argument to @code{glTexImage3D} otherwise),
-@math{@var{h}} is the number of rows in a pixel image
-(@code{GL_PACK_IMAGE_HEIGHT} if it is greater than 0, the
-@math{@var{height}} argument to the @code{glTexImage3D} routine
-otherwise), @math{@var{a}} is the value of @code{GL_PACK_ALIGNMENT}, and
-@math{@var{s}} is the size, in bytes, of a single component (if
-@math{@var{a}<@var{s}}, then it is as if @math{@var{a}=@var{s}}).
+components or indices, where @r{@var{n}} is the number of components or
+indices in a pixel, @r{@var{l}} is the number of pixels in a row
+(@code{GL_PACK_ROW_LENGTH} if it is greater than 0, the @r{@var{width}}
+argument to @code{glTexImage3D} otherwise), @r{@var{h}} is the number of
+rows in a pixel image (@code{GL_PACK_IMAGE_HEIGHT} if it is greater than
+0, the @r{@var{height}} argument to the @code{glTexImage3D} routine
+otherwise), @r{@var{a}} is the value of @code{GL_PACK_ALIGNMENT}, and
+@r{@var{s}} is the size, in bytes, of a single component (if
+@r{@var{a}<@var{s}}, then it is as if @r{@var{a}=@var{s}}).
 
 The word @var{component} in this description refers to the nonindex
 values red, green, blue, alpha, and depth. Storage format @code{GL_RGB},
@@ -16692,17 +16451,17 @@ finally blue.
 These values are provided as a convenience to the programmer; they
 provide no functionality that cannot be duplicated simply by
 incrementing the pointer passed to @code{glReadPixels}. Setting
-@code{GL_PACK_SKIP_PIXELS} to @math{@var{i}} is equivalent to
-incrementing the pointer by @math{@var{i}⁢@var{n}} components or
-indices, where @math{@var{n}} is the number of components or indices in
-each pixel. Setting @code{GL_PACK_SKIP_ROWS} to @math{@var{j}} is
-equivalent to incrementing the pointer by @math{@var{j}⁢@var{m}}
-components or indices, where @math{@var{m}} is the number of components
-or indices per row, as just computed in the @code{GL_PACK_ROW_LENGTH}
-section. Setting @code{GL_PACK_SKIP_IMAGES} to @math{@var{k}} is
-equivalent to incrementing the pointer by @math{@var{k}⁢@var{p}}, where
-@math{@var{p}} is the number of components or indices per image, as
-computed in the @code{GL_PACK_IMAGE_HEIGHT} section.
+@code{GL_PACK_SKIP_PIXELS} to @r{@var{i}} is equivalent to incrementing
+the pointer by @r{@var{i}⁢@var{n}} components or indices, where
+@r{@var{n}} is the number of components or indices in each pixel.
+Setting @code{GL_PACK_SKIP_ROWS} to @r{@var{j}} is equivalent to
+incrementing the pointer by @r{@var{j}⁢@var{m}} components or indices,
+where @r{@var{m}} is the number of components or indices per row, as
+just computed in the @code{GL_PACK_ROW_LENGTH} section. Setting
+@code{GL_PACK_SKIP_IMAGES} to @r{@var{k}} is equivalent to incrementing
+the pointer by @r{@var{k}⁢@var{p}}, where @r{@var{p}} is the number of
+components or indices per image, as computed in the
+@code{GL_PACK_IMAGE_HEIGHT} section.
 
 @item @code{GL_PACK_ALIGNMENT}
 Specifies the alignment requirements for the start of each pixel row in
@@ -16727,15 +16486,14 @@ Additionally, if the @code{ARB_imaging} extension is supported,
 @item @code{GL_UNPACK_SWAP_BYTES}
 If true, byte ordering for multibyte color components, depth components,
 color indices, or stencil indices is reversed. That is, if a four-byte
-component consists of bytes @math{@var{b}_0}, @math{@var{b}_1},
-@math{@var{b}_2}, @math{@var{b}_3}, it is taken from memory as
-@math{@var{b}_3}, @math{@var{b}_2}, @math{@var{b}_1}, @math{@var{b}_0}
-if @code{GL_UNPACK_SWAP_BYTES} is true. @code{GL_UNPACK_SWAP_BYTES} has
-no effect on the memory order of components within a pixel, only on the
-order of bytes within components or indices. For example, the three
-components of a @code{GL_RGB} format pixel are always stored with red
-first, green second, and blue third, regardless of the value of
-@code{GL_UNPACK_SWAP_BYTES}.
+component consists of bytes @r{@var{b}_0}, @r{@var{b}_1}, @r{@var{b}_2},
+@r{@var{b}_3}, it is taken from memory as @r{@var{b}_3}, @r{@var{b}_2},
+@r{@var{b}_1}, @r{@var{b}_0} if @code{GL_UNPACK_SWAP_BYTES} is true.
+@code{GL_UNPACK_SWAP_BYTES} has no effect on the memory order of
+components within a pixel, only on the order of bytes within components
+or indices. For example, the three components of a @code{GL_RGB} format
+pixel are always stored with red first, green second, and blue third,
+regardless of the value of @code{GL_UNPACK_SWAP_BYTES}.
 
 @item @code{GL_UNPACK_LSB_FIRST}
 If true, bits are ordered within a byte from least significant to most
@@ -16745,24 +16503,23 @@ significant one. This is relevant only for bitmap data.
 @item @code{GL_UNPACK_ROW_LENGTH}
 If greater than 0, @code{GL_UNPACK_ROW_LENGTH} defines the number of
 pixels in a row. If the first pixel of a row is placed at location
-@math{@var{p}} in memory, then the location of the first pixel of the
-next row is obtained by skipping
+@r{@var{p}} in memory, then the location of the first pixel of the next
+row is obtained by skipping
 
-@math{@var{k}=@{(@var{n}⁢@var{l}),
+@r{@var{k}=@{(@var{n}⁢@var{l}),
 (@var{a}/@var{s},⁢⌈@var{s}⁢@var{n}⁢@var{l},/@var{a},⌉)⁢(@var{s}>=@var{a}),
 (@var{s}<@var{a}),}
 
-components or indices, where @math{@var{n}} is the number of components
-or indices in a pixel, @math{@var{l}} is the number of pixels in a row
+components or indices, where @r{@var{n}} is the number of components or
+indices in a pixel, @r{@var{l}} is the number of pixels in a row
 (@code{GL_UNPACK_ROW_LENGTH} if it is greater than 0, the
-@math{@var{width}} argument to the pixel routine otherwise),
-@math{@var{a}} is the value of @code{GL_UNPACK_ALIGNMENT}, and
-@math{@var{s}} is the size, in bytes, of a single component (if
-@math{@var{a}<@var{s}}, then it is as if @math{@var{a}=@var{s}}). In the
-case of 1-bit values, the location of the next row is obtained by
-skipping
+@r{@var{width}} argument to the pixel routine otherwise), @r{@var{a}} is
+the value of @code{GL_UNPACK_ALIGNMENT}, and @r{@var{s}} is the size, in
+bytes, of a single component (if @r{@var{a}<@var{s}}, then it is as if
+@r{@var{a}=@var{s}}). In the case of 1-bit values, the location of the
+next row is obtained by skipping
 
-@math{@var{k}=8⁢@var{a}⁢⌈@var{n}⁢@var{l},/8⁢@var{a},,⌉}
+@r{@var{k}=8⁢@var{a}⁢⌈@var{n}⁢@var{l},/8⁢@var{a},,⌉}
 
 components or indices.
 
@@ -16775,24 +16532,23 @@ finally blue.
 If greater than 0, @code{GL_UNPACK_IMAGE_HEIGHT} defines the number of
 pixels in an image of a three-dimensional texture volume. Where
 ``image'' is defined by all pixel sharing the same third dimension
-index. If the first pixel of a row is placed at location @math{@var{p}}
-in memory, then the location of the first pixel of the next row is
-obtained by skipping
+index. If the first pixel of a row is placed at location @r{@var{p}} in
+memory, then the location of the first pixel of the next row is obtained
+by skipping
 
-@math{@var{k}=@{(@var{n}⁢@var{l}⁢@var{h}),
+@r{@var{k}=@{(@var{n}⁢@var{l}⁢@var{h}),
 (@var{a}/@var{s},⁢⌈@var{s}⁢@var{n}⁢@var{l}⁢@var{h},/@var{a},⌉)⁢(@var{s}>=@var{a}),
 (@var{s}<@var{a}),}
 
-components or indices, where @math{@var{n}} is the number of components
-or indices in a pixel, @math{@var{l}} is the number of pixels in a row
+components or indices, where @r{@var{n}} is the number of components or
+indices in a pixel, @r{@var{l}} is the number of pixels in a row
 (@code{GL_UNPACK_ROW_LENGTH} if it is greater than 0, the
-@math{@var{width}} argument to @code{glTexImage3D} otherwise),
-@math{@var{h}} is the number of rows in an image
-(@code{GL_UNPACK_IMAGE_HEIGHT} if it is greater than 0, the
-@math{@var{height}} argument to @code{glTexImage3D} otherwise),
-@math{@var{a}} is the value of @code{GL_UNPACK_ALIGNMENT}, and
-@math{@var{s}} is the size, in bytes, of a single component (if
-@math{@var{a}<@var{s}}, then it is as if @math{@var{a}=@var{s}}).
+@r{@var{width}} argument to @code{glTexImage3D} otherwise), @r{@var{h}}
+is the number of rows in an image (@code{GL_UNPACK_IMAGE_HEIGHT} if it
+is greater than 0, the @r{@var{height}} argument to @code{glTexImage3D}
+otherwise), @r{@var{a}} is the value of @code{GL_UNPACK_ALIGNMENT}, and
+@r{@var{s}} is the size, in bytes, of a single component (if
+@r{@var{a}<@var{s}}, then it is as if @r{@var{a}=@var{s}}).
 
 The word @var{component} in this description refers to the nonindex
 values red, green, blue, alpha, and depth. Storage format @code{GL_RGB},
@@ -16805,14 +16561,13 @@ provide no functionality that cannot be duplicated by incrementing the
 pointer passed to @code{glDrawPixels}, @code{glTexImage1D},
 @code{glTexImage2D}, @code{glTexSubImage1D}, @code{glTexSubImage2D},
 @code{glBitmap}, or @code{glPolygonStipple}. Setting
-@code{GL_UNPACK_SKIP_PIXELS} to @math{@var{i}} is equivalent to
-incrementing the pointer by @math{@var{i}⁢@var{n}} components or
-indices, where @math{@var{n}} is the number of components or indices in
-each pixel. Setting @code{GL_UNPACK_SKIP_ROWS} to @math{@var{j}} is
-equivalent to incrementing the pointer by @math{@var{j}⁢@var{k}}
-components or indices, where @math{@var{k}} is the number of components
-or indices per row, as just computed in the @code{GL_UNPACK_ROW_LENGTH}
-section.
+@code{GL_UNPACK_SKIP_PIXELS} to @r{@var{i}} is equivalent to
+incrementing the pointer by @r{@var{i}⁢@var{n}} components or indices,
+where @r{@var{n}} is the number of components or indices in each pixel.
+Setting @code{GL_UNPACK_SKIP_ROWS} to @r{@var{j}} is equivalent to
+incrementing the pointer by @r{@var{j}⁢@var{k}} components or indices,
+where @r{@var{k}} is the number of components or indices per row, as
+just computed in the @code{GL_UNPACK_ROW_LENGTH} section.
 
 @item @code{GL_UNPACK_ALIGNMENT}
 Specifies the alignment requirements for the start of each pixel row in
@@ -16839,19 +16594,19 @@ boolean , false , true or false
 boolean , false , true or false
 
 @item @code{GL_PACK_ROW_LENGTH}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_PACK_IMAGE_HEIGHT}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_PACK_SKIP_ROWS}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_PACK_SKIP_PIXELS}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_PACK_SKIP_IMAGES}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_PACK_ALIGNMENT}
 integer , 4 , 1, 2, 4, or 8
@@ -16863,19 +16618,19 @@ boolean , false , true or false
 boolean , false , true or false
 
 @item @code{GL_UNPACK_ROW_LENGTH}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_UNPACK_IMAGE_HEIGHT}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_UNPACK_SKIP_ROWS}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_UNPACK_SKIP_PIXELS}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_UNPACK_SKIP_IMAGES}
-integer , 0 , @math{[0,∞)}
+integer , 0 , @r{[0,∞)}
 
 @item @code{GL_UNPACK_ALIGNMENT}
 integer , 4 , 1, 2, 4, or 8
@@ -16891,7 +16646,6 @@ Likewise, @code{glPixelStorei} can also be used to set any of the pixel
 store parameters. Boolean parameters are set to false if @var{param} is
 0 and true otherwise.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
@@ -16903,11 +16657,12 @@ other than 1, 2, 4, or 8.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPixelTransferf pname param
+@deftypefunx void glPixelTransferi pname param
+Set pixel transfer modes.
 
-@defun glPixelTransfer 
-@heading set pixel transfer modes
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies the symbolic name of the pixel transfer parameter to be set.
@@ -16942,7 +16697,6 @@ Specifies the value that @var{pname} is set to.
 
 @end table
 
-@heading Description
 @code{glPixelTransfer} sets pixel transfer modes that affect the
 operation of subsequent @code{glCopyPixels}, @code{glCopyTexImage1D},
 @code{glCopyTexImage2D}, @code{glCopyTexSubImage1D},
@@ -16994,7 +16748,7 @@ component is multiplied by @code{GL_GREEN_SCALE}, then added to
 @code{GL_BLUE_SCALE}, then added to @code{GL_BLUE_BIAS}; and the alpha
 component is multiplied by @code{GL_ALPHA_SCALE}, then added to
 @code{GL_ALPHA_BIAS}. After all four color components are scaled and
-biased, each is clamped to the range @math{[0,1]}. All color, scale, and
+biased, each is clamped to the range @r{[0,1]}. All color, scale, and
 bias values are specified with @code{glPixelTransfer}.
 
 If @code{GL_MAP_COLOR} is true, each color component is scaled by the
@@ -17009,9 +16763,8 @@ the contents of @code{GL_PIXEL_MAP_B_TO_B} indexed by itself. And the
 alpha component is scaled by @code{GL_PIXEL_MAP_A_TO_A_SIZE}, then
 replaced by the contents of @code{GL_PIXEL_MAP_A_TO_A} indexed by
 itself. All components taken from the maps are then clamped to the range
-@math{[0,1]}. @code{GL_MAP_COLOR} is specified with
-@code{glPixelTransfer}. The contents of the various maps are specified
-with @code{glPixelMap}.
+@r{[0,1]}. @code{GL_MAP_COLOR} is specified with @code{glPixelTransfer}.
+The contents of the various maps are specified with @code{glPixelMap}.
 
 If the @code{ARB_imaging} extension is supported, each of the four color
 components may be scaled and biased after transformation by the color
@@ -17024,7 +16777,7 @@ by @code{GL_POST_COLOR_MATRIX_BLUE_SCALE}, then added to
 @code{GL_POST_COLOR_MATRIX_BLUE_BIAS}; and the alpha component is
 multiplied by @code{GL_POST_COLOR_MATRIX_ALPHA_SCALE}, then added to
 @code{GL_POST_COLOR_MATRIX_ALPHA_BIAS}. After all four color components
-are scaled and biased, each is clamped to the range @math{[0,1]}.
+are scaled and biased, each is clamped to the range @r{[0,1]}.
 
 Similarly, if the @code{ARB_imaging} extension is supported, each of the
 four color components may be scaled and biased after processing by the
@@ -17037,7 +16790,7 @@ by @code{GL_POST_CONVOLUTION_BLUE_SCALE}, then added to
 @code{GL_POST_CONVOLUTION_BLUE_BIAS}; and the alpha component is
 multiplied by @code{GL_POST_CONVOLUTION_ALPHA_SCALE}, then added to
 @code{GL_POST_CONVOLUTION_ALPHA_BIAS}. After all four color components
-are scaled and biased, each is clamped to the range @math{[0,1]}.
+are scaled and biased, each is clamped to the range @r{[0,1]}.
 
 @item @var{Color index}
 Each color index is shifted left by @code{GL_INDEX_SHIFT} bits; any bits
@@ -17052,11 +16805,11 @@ the resulting pixels. If the resulting pixels are to be written to a
 color index buffer, or if they are being read back to client memory in
 @code{GL_COLOR_INDEX} format, the pixels continue to be treated as
 indices. If @code{GL_MAP_COLOR} is true, each index is masked by
-@math{2^@var{n}-1}, where @math{@var{n}} is
-@code{GL_PIXEL_MAP_I_TO_I_SIZE}, then replaced by the contents of
-@code{GL_PIXEL_MAP_I_TO_I} indexed by the masked value.
-@code{GL_MAP_COLOR} is specified with @code{glPixelTransfer}. The
-contents of the index map is specified with @code{glPixelMap}.
+@r{2^@var{n}-1}, where @r{@var{n}} is @code{GL_PIXEL_MAP_I_TO_I_SIZE},
+then replaced by the contents of @code{GL_PIXEL_MAP_I_TO_I} indexed by
+the masked value. @code{GL_MAP_COLOR} is specified with
+@code{glPixelTransfer}. The contents of the index map is specified with
+@code{glPixelMap}.
 
 If the resulting pixels are to be written to an RGBA color buffer, or if
 they are read back to client memory in a format other than
@@ -17064,23 +16817,23 @@ they are read back to client memory in a format other than
 by referencing the four maps @code{GL_PIXEL_MAP_I_TO_R},
 @code{GL_PIXEL_MAP_I_TO_G}, @code{GL_PIXEL_MAP_I_TO_B}, and
 @code{GL_PIXEL_MAP_I_TO_A}. Before being dereferenced, the index is
-masked by @math{2^@var{n}-1}, where @math{@var{n}} is
+masked by @r{2^@var{n}-1}, where @r{@var{n}} is
 @code{GL_PIXEL_MAP_I_TO_R_SIZE} for the red map,
 @code{GL_PIXEL_MAP_I_TO_G_SIZE} for the green map,
 @code{GL_PIXEL_MAP_I_TO_B_SIZE} for the blue map, and
 @code{GL_PIXEL_MAP_I_TO_A_SIZE} for the alpha map. All components taken
-from the maps are then clamped to the range @math{[0,1]}. The contents
-of the four maps is specified with @code{glPixelMap}.
+from the maps are then clamped to the range @r{[0,1]}. The contents of
+the four maps is specified with @code{glPixelMap}.
 
 @item @var{Depth}
 Each depth value is multiplied by @code{GL_DEPTH_SCALE}, added to
-@code{GL_DEPTH_BIAS}, then clamped to the range @math{[0,1]}.
+@code{GL_DEPTH_BIAS}, then clamped to the range @r{[0,1]}.
 
 @item @var{Stencil}
 Each index is shifted @code{GL_INDEX_SHIFT} bits just as a color index
 is, then added to @code{GL_INDEX_OFFSET}. If @code{GL_MAP_STENCIL} is
-true, each index is masked by @math{2^@var{n}-1}, where @math{@var{n}}
-is @code{GL_PIXEL_MAP_S_TO_S_SIZE}, then replaced by the contents of
+true, each index is masked by @r{2^@var{n}-1}, where @r{@var{n}} is
+@code{GL_PIXEL_MAP_S_TO_S_SIZE}, then replaced by the contents of
 @code{GL_PIXEL_MAP_S_TO_S} indexed by the masked value.
 
 @end table
@@ -17102,88 +16855,88 @@ boolean , false , true/false
 boolean , false , true/false
 
 @item @code{GL_INDEX_SHIFT}
-integer , 0 , @math{(-∞,∞)}
+integer , 0 , @r{(-∞,∞)}
 
 @item @code{GL_INDEX_OFFSET}
-integer , 0 , @math{(-∞,∞)}
+integer , 0 , @r{(-∞,∞)}
 
 @item @code{GL_RED_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_GREEN_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_BLUE_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_ALPHA_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_DEPTH_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_RED_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_GREEN_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_BLUE_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_ALPHA_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_DEPTH_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_RED_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_GREEN_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_BLUE_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_ALPHA_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_RED_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_GREEN_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_BLUE_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_COLOR_MATRIX_ALPHA_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_RED_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_GREEN_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_BLUE_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_ALPHA_SCALE}
-float , 1 , @math{(-∞,∞)}
+float , 1 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_RED_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_GREEN_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_BLUE_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @item @code{GL_POST_CONVOLUTION_ALPHA_BIAS}
-float , 0 , @math{(-∞,∞)}
+float , 0 , @r{(-∞,∞)}
 
 @end table
 
@@ -17197,7 +16950,6 @@ transfer parameters. Boolean parameters are set to false if @var{param}
 is 0 and to true otherwise. @var{param} is converted to floating point
 before being assigned to real-valued parameters.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{pname} is not an accepted
 value.
 
@@ -17205,32 +16957,30 @@ value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPixelZoom xfactor yfactor
+Specify the pixel zoom factors.
 
-@defun glPixelZoom 
-@heading specify the pixel zoom factors
-@heading Parameters
 @table @asis
 @item @var{xfactor}
 @itemx @var{yfactor}
-Specify the @math{@var{x}} and @math{@var{y}} zoom factors for pixel
-write operations.
+Specify the @r{@var{x}} and @r{@var{y}} zoom factors for pixel write
+operations.
 
 @end table
 
-@heading Description
-@code{glPixelZoom} specifies values for the @math{@var{x}} and
-@math{@var{y}} zoom factors. During the execution of @code{glDrawPixels}
-or @code{glCopyPixels}, if (@math{@var{xr}}, @math{@var{yr}}) is the
-current raster position, and a given element is in the @math{@var{m}}th
-row and @math{@var{n}}th column of the pixel rectangle, then pixels
-whose centers are in the rectangle with corners at
+@code{glPixelZoom} specifies values for the @r{@var{x}} and @r{@var{y}}
+zoom factors. During the execution of @code{glDrawPixels} or
+@code{glCopyPixels}, if (@r{@var{xr}}, @r{@var{yr}}) is the current
+raster position, and a given element is in the @r{@var{m}}th row and
+@r{@var{n}}th column of the pixel rectangle, then pixels whose centers
+are in the rectangle with corners at
 
-(@math{@var{xr}+@var{n}·@var{xfactor}},
-@math{@var{yr}+@var{m}·@var{yfactor}})
+(@r{@var{xr}+@var{n}·@var{xfactor}}, @r{@var{yr}+@var{m}·@var{yfactor}})
 
-(@math{@var{xr}+(@var{n}+1,)·@var{xfactor}},
-@math{@var{yr}+(@var{m}+1,)·@var{yfactor}})
+(@r{@var{xr}+(@var{n}+1,)·@var{xfactor}},
+@r{@var{yr}+(@var{m}+1,)·@var{yfactor}})
 
 are candidates for replacement. Any pixel whose center lies on the
 bottom or left edge of this rectangular region is also modified.
@@ -17238,16 +16988,18 @@ bottom or left edge of this rectangular region is also modified.
 Pixel zoom factors are not limited to positive values. Negative zoom
 factors reflect the resulting image about the current raster position.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glPixelZoom} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPointParameterf pname param
+@deftypefunx void glPointParameteri pname param
+@deftypefunx void glPointParameterfv pname params
+@deftypefunx void glPointParameteriv pname params
+Specify point parameters.
 
-@defun glPointParameter 
-@heading specify point parameters
-@heading Parameters
 @table @asis
 @item @var{pname}
 Specifies a single-valued point parameter. @code{GL_POINT_SIZE_MIN},
@@ -17259,7 +17011,6 @@ Specifies the value that @var{pname} will be set to.
 
 @end table
 
-@heading Description
 The following values are accepted for @var{pname}:
 
 @table @asis
@@ -17287,7 +17038,7 @@ specified value. The default value is 1.0.
 
 @var{params} is an array of three floating-point values that specify the
 coefficients used for scaling the computed point size. The default
-values are @math{(1,00)}.
+values are @r{(1,00)}.
 
 @item @code{GL_POINT_SPRITE_COORD_ORIGIN}
 
@@ -17298,7 +17049,6 @@ The default value is @code{GL_UPPER_LEFT}.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated If the value specified for
 @code{GL_POINT_SIZE_MIN}, @code{GL_POINT_SIZE_MAX}, or
 @code{GL_POINT_FADE_THRESHOLD_SIZE} is less than zero.
@@ -17313,18 +17063,17 @@ but no error is generated.
 
 
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPointSize size
+Specify the diameter of rasterized points.
 
-@defun glPointSize 
-@heading specify the diameter of rasterized points
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the diameter of rasterized points. The initial value is 1.
 
 @end table
 
-@heading Description
 @code{glPointSize} specifies the rasterized diameter of both aliased and
 antialiased points. Using a point size other than 1 has different
 effects, depending on whether point antialiasing is enabled. To enable
@@ -17337,11 +17086,11 @@ factor and clamped to the specified point size range, and further
 clamped to the implementation-dependent point size range to produce the
 derived point size using
 
-@math{@var{pointSize}=@var{clamp}⁢(@var{size}×√(1/@var{a}+@var{b}×@var{d}+@var{c}×@var{d}^2,,,),,)}
+@r{@var{pointSize}=@var{clamp}⁢(@var{size}×√(1/@var{a}+@var{b}×@var{d}+@var{c}×@var{d}^2,,,),,)}
 
-where @math{@var{d}} is the eye-coordinate distance from the eye to the
-vertex, and @math{@var{a}}, @math{@var{b}}, and @math{@var{c}} are the
-distance attenuation coefficients (see @code{glPointParameter}).
+where @r{@var{d}} is the eye-coordinate distance from the eye to the
+vertex, and @r{@var{a}}, @r{@var{b}}, and @r{@var{c}} are the distance
+attenuation coefficients (see @code{glPointParameter}).
 
 If multisampling is disabled, the computed point size is used as the
 point's width.
@@ -17351,42 +17100,41 @@ point alpha value (see @code{glSampleCoverage}) instead of allowing the
 point width to go below a given threshold (see @code{glPointParameter}).
 In this case, the width is further modified in the following manner:
 
-@math{@var{pointWidth}=@{(@var{pointSize}),
+@r{@var{pointWidth}=@{(@var{pointSize}),
 (@var{threshold})⁢(@var{pointSize}>=@var{threshold}),
 (@var{otherwise}),}
 
 The point alpha value is modified by computing:
 
-@math{@var{pointAlpha}=@{(1),
+@r{@var{pointAlpha}=@{(1),
 ((@var{pointSize}/@var{threshold},)^2)⁢(@var{pointSize}>=@var{threshold}),
 (@var{otherwise}),}
 
 If point antialiasing is disabled, the actual size is determined by
 rounding the supplied size to the nearest integer. (If the rounding
 results in the value 0, it is as if the point size were 1.) If the
-rounded size is odd, then the center point (@math{@var{x}},
-@math{@var{y}}) of the pixel fragment that represents the point is
-computed as
+rounded size is odd, then the center point (@r{@var{x}}, @r{@var{y}}) of
+the pixel fragment that represents the point is computed as
 
-@math{(⌊@var{x}_@var{w},⌋+.5,⌊@var{y}_@var{w},⌋+.5)}
+@r{(⌊@var{x}_@var{w},⌋+.5,⌊@var{y}_@var{w},⌋+.5)}
 
-where @math{@var{w}} subscripts indicate window coordinates. All pixels
+where @r{@var{w}} subscripts indicate window coordinates. All pixels
 that lie within the square grid of the rounded size centered at
-(@math{@var{x}}, @math{@var{y}}) make up the fragment. If the size is
-even, the center point is
+(@r{@var{x}}, @r{@var{y}}) make up the fragment. If the size is even,
+the center point is
 
-@math{(⌊@var{x}_@var{w}+.5,⌋,⌊@var{y}_@var{w}+.5,⌋)}
+@r{(⌊@var{x}_@var{w}+.5,⌋,⌊@var{y}_@var{w}+.5,⌋)}
 
 and the rasterized fragment's centers are the half-integer window
 coordinates within the square of the rounded size centered at
-@math{(@var{x},@var{y})}. All pixel fragments produced in rasterizing a
+@r{(@var{x},@var{y})}. All pixel fragments produced in rasterizing a
 nonantialiased point are assigned the same associated data, that of the
 vertex corresponding to the point.
 
 If antialiasing is enabled, then point rasterization produces a fragment
 for each pixel square that intersects the region lying within the circle
 having diameter equal to the current point size and centered at the
-point's @math{(@var{x}_@var{w},@var{y}_@var{w})}. The coverage value for
+point's @r{(@var{x}_@var{w},@var{y}_@var{w})}. The coverage value for
 each fragment is the window coordinate area of the intersection of the
 circular region with the corresponding pixel square. This value is saved
 and used in the final rasterization step. The data associated with each
@@ -17402,7 +17150,6 @@ with arguments @code{GL_SMOOTH_POINT_SIZE_RANGE} and
 supported ranges and granularity with @code{glGet} with arguments
 @code{GL_ALIASED_POINT_SIZE_RANGE}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is less than or equal
 to 0.
 
@@ -17410,11 +17157,11 @@ to 0.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPolygonMode face mode
+Select a polygon rasterization mode.
 
-@defun glPolygonMode 
-@heading select a polygon rasterization mode
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies the polygons that @var{mode} applies to. Must be
@@ -17429,7 +17176,6 @@ is @code{GL_FILL} for both front- and back-facing polygons.
 
 @end table
 
-@heading Description
 @code{glPolygonMode} controls the interpretation of polygons for
 rasterization. @var{face} describes which polygons @var{mode} applies
 to: front-facing polygons (@code{GL_FRONT}), back-facing polygons
@@ -17464,7 +17210,6 @@ rasterization of the polygon.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if either @var{face} or @var{mode}
 is not an accepted value.
 
@@ -17472,11 +17217,11 @@ is not an accepted value.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPolygonOffset factor units
+Set the scale and units used to calculate depth values.
 
-@defun glPolygonOffset 
-@heading set the scale and units used to calculate depth values
-@heading Parameters
 @table @asis
 @item @var{factor}
 Specifies a scale factor that is used to create a variable depth offset
@@ -17488,15 +17233,14 @@ depth offset. The initial value is 0.
 
 @end table
 
-@heading Description
 When @code{GL_POLYGON_OFFSET_FILL}, @code{GL_POLYGON_OFFSET_LINE}, or
 @code{GL_POLYGON_OFFSET_POINT} is enabled, each fragment's @var{depth}
 value will be offset after it is interpolated from the @var{depth}
 values of the appropriate vertices. The value of the offset is
-@math{@var{factor}×@var{DZ}+@var{r}×@var{units}}, where @math{@var{DZ}}
-is a measurement of the change in depth relative to the screen area of
-the polygon, and @math{@var{r}} is the smallest value that is guaranteed
-to produce a resolvable offset for a given implementation. The offset is
+@r{@var{factor}×@var{DZ}+@var{r}×@var{units}}, where @r{@var{DZ}} is a
+measurement of the change in depth relative to the screen area of the
+polygon, and @r{@var{r}} is the smallest value that is guaranteed to
+produce a resolvable offset for a given implementation. The offset is
 added before the depth test is performed and before the value is written
 into the depth buffer.
 
@@ -17504,39 +17248,36 @@ into the depth buffer.
 applying decals to surfaces, and for rendering solids with highlighted
 edges.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glPolygonOffset} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPolygonStipple pattern
+Set the polygon stippling pattern.
 
-@defun glPolygonStipple 
-@heading set the polygon stippling pattern
-@heading Parameters
 @table @asis
 @item @var{pattern}
-Specifies a pointer to a @math{32×32} stipple pattern that will be
-unpacked from memory in the same way that @code{glDrawPixels} unpacks
-pixels.
+Specifies a pointer to a @r{32×32} stipple pattern that will be unpacked
+from memory in the same way that @code{glDrawPixels} unpacks pixels.
 
 @end table
 
-@heading Description
 Polygon stippling, like line stippling (see @code{glLineStipple}), masks
 out certain fragments produced by rasterization, creating a pattern.
 Stippling is independent of polygon antialiasing.
 
-@var{pattern} is a pointer to a @math{32×32} stipple pattern that is
-stored in memory just like the pixel data supplied to a
-@code{glDrawPixels} call with height and @var{width} both equal to 32, a
-pixel format of @code{GL_COLOR_INDEX}, and data type of
-@code{GL_BITMAP}. That is, the stipple pattern is represented as a
-@math{32×32} array of 1-bit color indices packed in unsigned bytes.
-@code{glPixelStore} parameters like @code{GL_UNPACK_SWAP_BYTES} and
-@code{GL_UNPACK_LSB_FIRST} affect the assembling of the bits into a
-stipple pattern. Pixel transfer operations (shift, offset, pixel map)
-are not applied to the stipple image, however.
+@var{pattern} is a pointer to a @r{32×32} stipple pattern that is stored
+in memory just like the pixel data supplied to a @code{glDrawPixels}
+call with height and @var{width} both equal to 32, a pixel format of
+@code{GL_COLOR_INDEX}, and data type of @code{GL_BITMAP}. That is, the
+stipple pattern is represented as a @r{32×32} array of 1-bit color
+indices packed in unsigned bytes. @code{glPixelStore} parameters like
+@code{GL_UNPACK_SWAP_BYTES} and @code{GL_UNPACK_LSB_FIRST} affect the
+assembling of the bits into a stipple pattern. Pixel transfer operations
+(shift, offset, pixel map) are not applied to the stipple image,
+however.
 
 If a non-zero named buffer object is bound to the
 @code{GL_PIXEL_UNPACK_BUFFER} target (see @code{glBindBuffer}) while a
@@ -17546,14 +17287,12 @@ into the buffer object's data store.
 To enable and disable polygon stippling, call @code{glEnable} and
 @code{glDisable} with argument @code{GL_POLYGON_STIPPLE}. Polygon
 stippling is initially disabled. If it's enabled, a rasterized polygon
-fragment with window coordinates @math{@var{x}_@var{w}} and
-@math{@var{y}_@var{w}} is sent to the next stage of the GL if and only
-if the (@math{@var{x}_@var{w}%32})th bit in the
-(@math{@var{y}_@var{w}%32})th row of the stipple pattern is 1 (one).
-When polygon stippling is disabled, it is as if the stipple pattern
-consists of all 1's.
-
-@heading Errors
+fragment with window coordinates @r{@var{x}_@var{w}} and
+@r{@var{y}_@var{w}} is sent to the next stage of the GL if and only if
+the (@r{@var{x}_@var{w}%32})th bit in the (@r{@var{y}_@var{w}%32})th row
+of the stipple pattern is 1 (one). When polygon stippling is disabled,
+it is as if the stipple pattern consists of all 1's.
+
 @code{GL_INVALID_OPERATION} is generated if a non-zero buffer object
 name is bound to the @code{GL_PIXEL_UNPACK_BUFFER} target and the buffer
 object's data store is currently mapped.
@@ -17567,11 +17306,11 @@ required would exceed the data store size.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPrioritizeTextures n textures priorities
+Set texture residence priority.
 
-@defun glPrioritizeTextures 
-@heading set texture residence priority
-@heading Parameters
 @table @asis
 @item @var{n}
 Specifies the number of textures to be prioritized.
@@ -17587,7 +17326,6 @@ corresponding element of @var{textures}.
 
 @end table
 
-@heading Description
 @code{glPrioritizeTextures} assigns the @var{n} texture priorities given
 in @var{priorities} to the @var{n} textures named in @var{textures}.
 
@@ -17599,7 +17337,7 @@ applications to guide the GL implementation in determining which
 textures should be resident.
 
 The priorities given in @var{priorities} are clamped to the range
-@math{[0,1]} before they are assigned. 0 indicates the lowest priority;
+@r{[0,1]} before they are assigned. 0 indicates the lowest priority;
 textures with priority 0 are least likely to be resident. 1 indicates
 the highest priority; textures with priority 1 are most likely to be
 resident. However, textures are not guaranteed to be resident until they
@@ -17615,18 +17353,18 @@ named by @var{textures} be bound to a texture target.
 only if the texture is currently bound. This is the only way to set the
 priority of a default texture.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{n} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glPrioritizeTextures}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPushAttrib mask
+@deftypefunx void glPopAttrib 
+Push and pop the server attribute stack.
 
-@defun glPushAttrib 
-@heading push and pop the server attribute stack
-@heading Parameters
 @table @asis
 @item @var{mask}
 Specifies a mask that indicates which attributes to save. Values for
@@ -17634,7 +17372,6 @@ Specifies a mask that indicates which attributes to save. Values for
 
 @end table
 
-@heading Description
 @code{glPushAttrib} takes one argument, a mask that indicates which
 groups of state variables to save on the attribute stack. Symbolic
 constants are used to set bits in the mask. @var{mask} is typically
@@ -18125,7 +17862,6 @@ change is made to GL state.
 
 Initially, the attribute stack is empty.
 
-@heading Errors
 @code{GL_STACK_OVERFLOW} is generated if @code{glPushAttrib} is called
 while the attribute stack is full.
 
@@ -18136,11 +17872,12 @@ while the attribute stack is empty.
 @code{glPopAttrib} is executed between the execution of @code{glBegin}
 and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPushClientAttrib mask
+@deftypefunx void glPopClientAttrib 
+Push and pop the client attribute stack.
 
-@defun glPushClientAttrib 
-@heading push and pop the client attribute stack
-@heading Parameters
 @table @asis
 @item @var{mask}
 Specifies a mask that indicates which attributes to save. Values for
@@ -18148,7 +17885,6 @@ Specifies a mask that indicates which attributes to save. Values for
 
 @end table
 
-@heading Description
 @code{glPushClientAttrib} takes one argument, a mask that indicates
 which groups of client-state variables to save on the client attribute
 stack. Symbolic constants are used to set bits in the mask. @var{mask}
@@ -18173,18 +17909,18 @@ set, and no other change is made to GL state.
 
 Initially, the client attribute stack is empty.
 
-@heading Errors
 @code{GL_STACK_OVERFLOW} is generated if @code{glPushClientAttrib} is
 called while the attribute stack is full.
 
 @code{GL_STACK_UNDERFLOW} is generated if @code{glPopClientAttrib} is
 called while the attribute stack is empty.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPushMatrix 
+@deftypefunx void glPopMatrix 
+Push and pop the current matrix stack.
 
-@defun glPushMatrix 
-@heading push and pop the current matrix stack
-@heading Description
 There is a stack of matrices for each of the matrix modes. In
 @code{GL_MODELVIEW} mode, the stack depth is at least 32. In the other
 modes, @code{GL_COLOR}, @code{GL_PROJECTION}, and @code{GL_TEXTURE}, the
@@ -18204,7 +17940,6 @@ It is an error to push a full matrix stack or to pop a matrix stack that
 contains only a single matrix. In either case, the error flag is set and
 no other change is made to GL state.
 
-@heading Errors
 @code{GL_STACK_OVERFLOW} is generated if @code{glPushMatrix} is called
 while the current matrix stack is full.
 
@@ -18215,18 +17950,18 @@ while the current matrix stack contains only a single matrix.
 @code{glPopMatrix} is executed between the execution of @code{glBegin}
 and the corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glPushName name
+@deftypefunx void glPopName 
+Push and pop the name stack.
 
-@defun glPushName 
-@heading push and pop the name stack
-@heading Parameters
 @table @asis
 @item @var{name}
 Specifies a name that will be pushed onto the name stack.
 
 @end table
 
-@heading Description
 The name stack is used during selection mode to allow sets of rendering
 commands to be uniquely identified. It consists of an ordered set of
 unsigned integers and is initially empty.
@@ -18246,7 +17981,6 @@ The name stack is always empty while the render mode is not
 @code{GL_SELECT}. Calls to @code{glPushName} or @code{glPopName} while
 the render mode is not @code{GL_SELECT} are ignored.
 
-@heading Errors
 @code{GL_STACK_OVERFLOW} is generated if @code{glPushName} is called
 while the name stack is full.
 
@@ -18257,39 +17991,61 @@ while the name stack is empty.
 @code{glPopName} is executed between a call to @code{glBegin} and the
 corresponding call to @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glRasterPos2s x y
+@deftypefunx void glRasterPos2i x y
+@deftypefunx void glRasterPos2f x y
+@deftypefunx void glRasterPos2d x y
+@deftypefunx void glRasterPos3s x y z
+@deftypefunx void glRasterPos3i x y z
+@deftypefunx void glRasterPos3f x y z
+@deftypefunx void glRasterPos3d x y z
+@deftypefunx void glRasterPos4s x y z w
+@deftypefunx void glRasterPos4i x y z w
+@deftypefunx void glRasterPos4f x y z w
+@deftypefunx void glRasterPos4d x y z w
+@deftypefunx void glRasterPos2sv v
+@deftypefunx void glRasterPos2iv v
+@deftypefunx void glRasterPos2fv v
+@deftypefunx void glRasterPos2dv v
+@deftypefunx void glRasterPos3sv v
+@deftypefunx void glRasterPos3iv v
+@deftypefunx void glRasterPos3fv v
+@deftypefunx void glRasterPos3dv v
+@deftypefunx void glRasterPos4sv v
+@deftypefunx void glRasterPos4iv v
+@deftypefunx void glRasterPos4fv v
+@deftypefunx void glRasterPos4dv v
+Specify the raster position for pixel operations.
 
-@defun glRasterPos 
-@heading specify the raster position for pixel operations
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
 @itemx @var{z}
 @itemx @var{w}
-Specify the @math{@var{x}}, @math{@var{y}}, @math{@var{z}}, and
-@math{@var{w}} object coordinates (if present) for the raster position.
+Specify the @r{@var{x}}, @r{@var{y}}, @r{@var{z}}, and @r{@var{w}}
+object coordinates (if present) for the raster position.
 
 @end table
 
-@heading Description
 The GL maintains a 3D position in window coordinates. This position,
 called the raster position, is used to position pixel and bitmap write
 operations. It is maintained with subpixel accuracy. See
 @code{glBitmap}, @code{glDrawPixels}, and @code{glCopyPixels}.
 
 The current raster position consists of three window coordinates
-(@math{@var{x}}, @math{@var{y}}, @math{@var{z}}), a clip coordinate
-value (@math{@var{w}}), an eye coordinate distance, a valid bit, and
-associated color data and texture coordinates. The @math{@var{w}}
-coordinate is a clip coordinate, because @math{@var{w}} is not projected
-to window coordinates. @code{glRasterPos4} specifies object coordinates
-@math{@var{x}}, @math{@var{y}}, @math{@var{z}}, and @math{@var{w}}
-explicitly. @code{glRasterPos3} specifies object coordinate
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}} explicitly, while
-@math{@var{w}} is implicitly set to 1. @code{glRasterPos2} uses the
-argument values for @math{@var{x}} and @math{@var{y}} while implicitly
-setting @math{@var{z}} and @math{@var{w}} to 0 and 1.
+(@r{@var{x}}, @r{@var{y}}, @r{@var{z}}), a clip coordinate value
+(@r{@var{w}}), an eye coordinate distance, a valid bit, and associated
+color data and texture coordinates. The @r{@var{w}} coordinate is a clip
+coordinate, because @r{@var{w}} is not projected to window coordinates.
+@code{glRasterPos4} specifies object coordinates @r{@var{x}},
+@r{@var{y}}, @r{@var{z}}, and @r{@var{w}} explicitly.
+@code{glRasterPos3} specifies object coordinate @r{@var{x}},
+@r{@var{y}}, and @r{@var{z}} explicitly, while @r{@var{w}} is implicitly
+set to 1. @code{glRasterPos2} uses the argument values for @r{@var{x}}
+and @r{@var{y}} while implicitly setting @r{@var{z}} and @r{@var{w}} to
+0 and 1.
 
 The object coordinates presented by @code{glRasterPos} are treated just
 like those of a @code{glVertex} command: They are transformed by the
@@ -18326,16 +18082,15 @@ texture coordinates are (0, 0, 0, 1). In RGBA mode,
 @code{GL_CURRENT_RASTER_INDEX} is always 1; in color index mode, the
 current raster RGBA color always maintains its initial value.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glRasterPos} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glReadBuffer mode
+Select a color buffer source for pixels.
 
-@defun glReadBuffer 
-@heading select a color buffer source for pixels
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies a color buffer. Accepted values are @code{GL_FRONT_LEFT},
@@ -18346,7 +18101,6 @@ Specifies a color buffer. Accepted values are @code{GL_FRONT_LEFT},
 
 @end table
 
-@heading Description
 @code{glReadBuffer} specifies a color buffer as the source for
 subsequent @code{glReadPixels}, @code{glCopyTexImage1D},
 @code{glCopyTexImage2D}, @code{glCopyTexSubImage1D},
@@ -18366,7 +18120,6 @@ It is an error to specify a nonexistent buffer to @code{glReadBuffer}.
 @var{mode} is initially @code{GL_FRONT} in single-buffered
 configurations and @code{GL_BACK} in double-buffered configurations.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not one of the
 twelve (or more) accepted values.
 
@@ -18377,11 +18130,11 @@ buffer that does not exist.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glReadPixels x y width height format type data
+Read a block of pixels from the frame buffer.
 
-@defun glReadPixels 
-@heading read a block of pixels from the frame buffer
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -18419,7 +18172,6 @@ Returns the pixel data.
 
 @end table
 
-@heading Description
 @code{glReadPixels} returns pixel data from the frame buffer, starting
 with the pixel whose lower left corner is at location (@var{x},
 @var{y}), into client memory starting at location @var{data}. Several
@@ -18441,11 +18193,11 @@ color matrix transformations, convolutions, histograms, and minimum and
 maximum pixel value computations.
 
 @code{glReadPixels} returns values from each pixel with lower left
-corner at @math{(@var{x}+@var{i},@var{y}+@var{j})} for
-@math{0<=@var{i}<@var{width}} and @math{0<=@var{j}<@var{height}}. This
-pixel is said to be the @math{@var{i}}th pixel in the @math{@var{j}}th
-row. Pixels are returned in row order from the lowest to the highest
-row, left to right in each row.
+corner at @r{(@var{x}+@var{i},@var{y}+@var{j})} for
+@r{0<=@var{i}<@var{width}} and @r{0<=@var{j}<@var{height}}. This pixel
+is said to be the @r{@var{i}}th pixel in the @r{@var{j}}th row. Pixels
+are returned in row order from the lowest to the highest row, left to
+right in each row.
 
 @var{format} specifies the format for the returned pixel values;
 accepted values are:
@@ -18471,7 +18223,7 @@ Depth values are read from the depth buffer. Each component is converted
 to floating point such that the minimum depth value maps to 0 and the
 maximum value maps to 1. Each component is then multiplied by
 @code{GL_DEPTH_SCALE}, added to @code{GL_DEPTH_BIAS}, and finally
-clamped to the range @math{[0,1]}.
+clamped to the range @r{[0,1]}.
 
 @item @code{GL_RED}
 @item @code{GL_GREEN}
@@ -18492,10 +18244,9 @@ value and sign of @code{GL_INDEX_SHIFT}, and added to
 blue, and alpha values obtained by indexing the tables
 @code{GL_PIXEL_MAP_I_TO_R}, @code{GL_PIXEL_MAP_I_TO_G},
 @code{GL_PIXEL_MAP_I_TO_B}, and @code{GL_PIXEL_MAP_I_TO_A}. Each table
-must be of size @math{2^@var{n}}, but @math{@var{n}} may be different
-for different tables. Before an index is used to look up a value in a
-table of size @math{2^@var{n}}, it must be masked against
-@math{2^@var{n}-1}.
+must be of size @r{2^@var{n}}, but @r{@var{n}} may be different for
+different tables. Before an index is used to look up a value in a table
+of size @r{2^@var{n}}, it must be masked against @r{2^@var{n}-1}.
 
 If RGBA color components are stored in the color buffers, they are read
 from the color buffer selected by @code{glReadBuffer}. Each color
@@ -18503,17 +18254,17 @@ component is converted to floating point such that zero intensity maps
 to 0.0 and full intensity maps to 1.0. Each component is then multiplied
 by @code{GL_c_SCALE} and added to @code{GL_c_BIAS}, where @var{c} is
 RED, GREEN, BLUE, or ALPHA. Finally, if @code{GL_MAP_COLOR} is
-@code{GL_TRUE}, each component is clamped to the range @math{[0,1]},
-scaled to the size of its corresponding table, and is then replaced by
-its mapping in the table @code{GL_PIXEL_MAP_c_TO_c}, where @var{c} is R,
-G, B, or A.
+@code{GL_TRUE}, each component is clamped to the range @r{[0,1]}, scaled
+to the size of its corresponding table, and is then replaced by its
+mapping in the table @code{GL_PIXEL_MAP_c_TO_c}, where @var{c} is R, G,
+B, or A.
 
 Unneeded data is then discarded. For example, @code{GL_RED} discards the
 green, blue, and alpha components, while @code{GL_RGB} discards only the
 alpha component. @code{GL_LUMINANCE} computes a single-component value
 as the sum of the red, green, and blue components, and
 @code{GL_LUMINANCE_ALPHA} does the same, while keeping alpha as a second
-value. The final values are clamped to the range @math{[0,1]}.
+value. The final values are clamped to the range @r{[0,1]}.
 
 @end table
 
@@ -18544,28 +18295,28 @@ used by the GL).
 @strong{Index Mask}, @strong{Component Conversion}
 
 @item @code{GL_UNSIGNED_BYTE}
-@math{2^8-1}, @math{(2^8-1,)⁢@var{c}}
+@r{2^8-1}, @r{(2^8-1,)⁢@var{c}}
 
 @item @code{GL_BYTE}
-@math{2^7-1}, @math{(2^8-1,)⁢@var{c}-1,/2}
+@r{2^7-1}, @r{(2^8-1,)⁢@var{c}-1,/2}
 
 @item @code{GL_BITMAP}
-@math{1}, @math{1}
+@r{1}, @r{1}
 
 @item @code{GL_UNSIGNED_SHORT}
-@math{2^16-1}, @math{(2^16-1,)⁢@var{c}}
+@r{2^16-1}, @r{(2^16-1,)⁢@var{c}}
 
 @item @code{GL_SHORT}
-@math{2^15-1}, @math{(2^16-1,)⁢@var{c}-1,/2}
+@r{2^15-1}, @r{(2^16-1,)⁢@var{c}-1,/2}
 
 @item @code{GL_UNSIGNED_INT}
-@math{2^32-1}, @math{(2^32-1,)⁢@var{c}}
+@r{2^32-1}, @r{(2^32-1,)⁢@var{c}}
 
 @item @code{GL_INT}
-@math{2^31-1}, @math{(2^32-1,)⁢@var{c}-1,/2}
+@r{2^31-1}, @r{(2^32-1,)⁢@var{c}-1,/2}
 
 @item @code{GL_FLOAT}
-none , @math{@var{c}}
+none , @r{@var{c}}
 
 @end table
 
@@ -18573,9 +18324,9 @@ Return values are placed in memory as follows. If @var{format} is
 @code{GL_COLOR_INDEX}, @code{GL_STENCIL_INDEX},
 @code{GL_DEPTH_COMPONENT}, @code{GL_RED}, @code{GL_GREEN},
 @code{GL_BLUE}, @code{GL_ALPHA}, or @code{GL_LUMINANCE}, a single value
-is returned and the data for the @math{@var{i}}th pixel in the
-@math{@var{j}}th row is placed in location
-@math{(@var{j},)⁢@var{width}+@var{i}}. @code{GL_RGB} and @code{GL_BGR}
+is returned and the data for the @r{@var{i}}th pixel in the
+@r{@var{j}}th row is placed in location
+@r{(@var{j},)⁢@var{width}+@var{i}}. @code{GL_RGB} and @code{GL_BGR}
 return three values, @code{GL_RGBA} and @code{GL_BGRA} return four
 values, and @code{GL_LUMINANCE_ALPHA} returns two values for each pixel,
 with all values corresponding to a single pixel occupying contiguous
@@ -18584,7 +18335,6 @@ as @code{GL_PACK_LSB_FIRST} and @code{GL_PACK_SWAP_BYTES}, affect the
 way that data is written into memory. See @code{glPixelStore} for a
 description.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{format} or @var{type} is not
 an accepted value.
 
@@ -18645,11 +18395,18 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glRectd x1 y1 x2 y2
+@deftypefunx void glRectf x1 y1 x2 y2
+@deftypefunx void glRecti x1 y1 x2 y2
+@deftypefunx void glRects x1 y1 x2 y2
+@deftypefunx void glRectdv v1 v2
+@deftypefunx void glRectfv v1 v2
+@deftypefunx void glRectiv v1 v2
+@deftypefunx void glRectsv v1 v2
+Draw a rectangle.
 
-@defun glRect 
-@heading draw a rectangle
-@heading Parameters
 @table @asis
 @item @var{x1}
 @itemx @var{y1}
@@ -18661,13 +18418,11 @@ Specify the opposite vertex of the rectangle.
 
 @end table
 
-@heading Description
 @code{glRect} supports efficient specification of rectangles as two
 corner points. Each rectangle command takes four arguments, organized
-either as two consecutive pairs of @math{(@var{x},@var{y})} coordinates
-or as two pointers to arrays, each containing an
-@math{(@var{x},@var{y})} pair. The resulting rectangle is defined in the
-@math{@var{z}=0} plane.
+either as two consecutive pairs of @r{(@var{x},@var{y})} coordinates or
+as two pointers to arrays, each containing an @r{(@var{x},@var{y})}
+pair. The resulting rectangle is defined in the @r{@var{z}=0} plane.
 
 @code{glRect}(@var{x1}, @var{y1}, @var{x2}, @var{y2}) is exactly
 equivalent to the following sequence: Note that if the second vertex is
@@ -18684,16 +18439,15 @@ glVertex2(@var{x1}, @var{y2});
 glEnd(); 
 @end example
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glRect} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun GLint glRenderMode mode
+Set rasterization mode.
 
-@defun glRenderMode 
-@heading set rasterization mode
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies the rasterization mode. Three values are accepted:
@@ -18702,7 +18456,6 @@ value is @code{GL_RENDER}.
 
 @end table
 
-@heading Description
 @code{glRenderMode} sets the rasterization mode. It takes one argument,
 @var{mode}, which can assume one of three predefined values:
 
@@ -18747,7 +18500,6 @@ The number of values (not vertices) transferred to the feedback buffer.
 See the @code{glSelectBuffer} and @code{glFeedbackBuffer} reference
 pages for more details concerning selection and feedback operation.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is not one of the
 three accepted values.
 
@@ -18765,22 +18517,20 @@ called while the render mode is @code{GL_FEEDBACK}, or if
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glResetHistogram target
+Reset histogram table entries to zero.
 
-@defun glResetHistogram 
-@heading reset histogram table entries to zero
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_HISTOGRAM}.
 
 @end table
 
-@heading Description
 @code{glResetHistogram} resets all the elements of the current histogram
 table to zero.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_HISTOGRAM}.
 
@@ -18788,24 +18538,22 @@ table to zero.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glResetMinmax target
+Reset minmax table entries to initial values.
 
-@defun glResetMinmax 
-@heading reset minmax table entries to initial values
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_MINMAX}.
 
 @end table
 
-@heading Description
 @code{glResetMinmax} resets the elements of the current minmax table to
 their initial values: the ``maximum'' element receives the minimum
 possible component values, and the ``minimum'' element receives the
 maximum possible component values.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_MINMAX}.
 
@@ -18813,11 +18561,12 @@ maximum possible component values.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glRotated angle x y z
+@deftypefunx void glRotatef angle x y z
+Multiply the current matrix by a rotation matrix.
 
-@defun glRotate 
-@heading multiply the current matrix by a rotation matrix
-@heading Parameters
 @table @asis
 @item @var{angle}
 Specifies the angle of rotation, in degrees.
@@ -18830,14 +18579,13 @@ respectively.
 
 @end table
 
-@heading Description
 @code{glRotate} produces a rotation of @var{angle} degrees around the
-vector @math{(@var{x},@var{y}@var{z})}. The current matrix (see
+vector @r{(@var{x},@var{y}@var{z})}. The current matrix (see
 @code{glMatrixMode}) is multiplied by a rotation matrix with the product
 replacing the current matrix, as if @code{glMultMatrix} were called with
 the following matrix as its argument:
 
-@math{((@var{x}^2⁡(1-@var{c},)+@var{c}
+@r{((@var{x}^2⁡(1-@var{c},)+@var{c}
 @var{x}⁢@var{y}⁡(1-@var{c},)-@var{z}⁢@var{s}
 @var{x}⁢@var{z}⁡(1-@var{c},)+@var{y}⁢@var{s} 0),
 (@var{y}⁢@var{x}⁡(1-@var{c},)+@var{z}⁢@var{s}
@@ -18849,9 +18597,9 @@ the following matrix as its argument:
 
 
 
-Where @math{@var{c}=@var{cos}⁡(@var{angle},)},
-@math{@var{s}=@var{sin}⁡(@var{angle},)}, and
-@math{∥(@var{x},@var{y}@var{z}),∥=1} (if not, the GL will normalize this
+Where @r{@var{c}=@var{cos}⁡(@var{angle},)},
+@r{@var{s}=@var{sin}⁡(@var{angle},)}, and
+@r{∥(@var{x},@var{y}@var{z}),∥=1} (if not, the GL will normalize this
 vector).
 
 
@@ -18863,20 +18611,19 @@ If the matrix mode is either @code{GL_MODELVIEW} or
 are rotated. Use @code{glPushMatrix} and @code{glPopMatrix} to save and
 restore the unrotated coordinate system.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glRotate} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glSampleCoverage value invert
+Specify multisample coverage parameters.
 
-@defun glSampleCoverage 
-@heading specify multisample coverage parameters
-@heading Parameters
 @table @asis
 @item @var{value}
 Specify a single floating-point sample coverage value. The value is
-clamped to the range @math{[0,1]}. The initial value is 1.0.
+clamped to the range @r{[0,1]}. The initial value is 1.0.
 
 @item @var{invert}
 Specify a single boolean value representing if the coverage masks should
@@ -18885,7 +18632,6 @@ initial value is @code{GL_FALSE}.
 
 @end table
 
-@heading Description
 Multisampling samples a pixel multiple times at various
 implementation-dependent subpixel locations to generate antialiasing
 effects. Multisampling transparently antialiases points, lines,
@@ -18908,16 +18654,16 @@ combining several samples per pixel. Each sample contains color, depth,
 and stencil information, allowing those operations to be performed on
 each sample.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glSampleCoverage} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glScaled x y z
+@deftypefunx void glScalef x y z
+Multiply the current matrix by a general scaling matrix.
 
-@defun glScale 
-@heading multiply the current matrix by a general scaling matrix
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -18927,7 +18673,6 @@ respectively.
 
 @end table
 
-@heading Description
 @code{glScale} produces a nonuniform scaling along the @var{x}, @var{y},
 and @var{z} axes. The three parameters indicate the desired scale factor
 along each of the three axes.
@@ -18937,7 +18682,7 @@ matrix, and the product replaces the current matrix as if
 @code{glMultMatrix} were called with the following matrix as its
 argument:
 
-@math{((@var{x} 0 0 0), (0 @var{y} 0 0), (0 0 @var{z} 0), (0 0 0 1),)}
+@r{((@var{x} 0 0 0), (0 @var{y} 0 0), (0 0 @var{z} 0), (0 0 0 1),)}
 
 If the matrix mode is either @code{GL_MODELVIEW} or
 @code{GL_PROJECTION}, all objects drawn after @code{glScale} is called
@@ -18946,16 +18691,15 @@ are scaled.
 Use @code{glPushMatrix} and @code{glPopMatrix} to save and restore the
 unscaled coordinate system.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glScale} is executed
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glScissor x y width height
+Define the scissor box.
 
-@defun glScissor 
-@heading define the scissor box
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -18969,7 +18713,6 @@ dimensions of that window.
 
 @end table
 
-@heading Description
 @code{glScissor} defines a rectangle, called the scissor box, in window
 coordinates. The first two arguments, @var{x} and @var{y}, specify the
 lower left corner of the box. @var{width} and @var{height} specify the
@@ -18987,7 +18730,6 @@ modification of any pixels in the window.
 When the scissor test is disabled, it is as though the scissor box
 includes the entire window.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if either @var{width} or
 @var{height} is negative.
 
@@ -18995,11 +18737,11 @@ includes the entire window.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glSecondaryColorPointer size type stride pointer
+Define an array of secondary colors.
 
-@defun glSecondaryColorPointer 
-@heading define an array of secondary colors
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the number of components per color. Must be 3.
@@ -19022,7 +18764,6 @@ the array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glSecondaryColorPointer} specifies the location and data format of
 an array of color components to use when rendering. @var{size} specifies
 the number of components per color, and must be 3. @var{type} specifies
@@ -19049,7 +18790,6 @@ color array is used when @code{glArrayElement}, @code{glDrawArrays},
 @code{glMultiDrawArrays}, @code{glDrawElements},
 @code{glMultiDrawElements}, or @code{glDrawRangeElements} is called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is not 3.
 
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
@@ -19057,11 +18797,26 @@ value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glSecondaryColor3b red green blue
+@deftypefunx void glSecondaryColor3s red green blue
+@deftypefunx void glSecondaryColor3i red green blue
+@deftypefunx void glSecondaryColor3f red green blue
+@deftypefunx void glSecondaryColor3d red green blue
+@deftypefunx void glSecondaryColor3ub red green blue
+@deftypefunx void glSecondaryColor3us red green blue
+@deftypefunx void glSecondaryColor3ui red green blue
+@deftypefunx void glSecondaryColor3bv v
+@deftypefunx void glSecondaryColor3sv v
+@deftypefunx void glSecondaryColor3iv v
+@deftypefunx void glSecondaryColor3fv v
+@deftypefunx void glSecondaryColor3dv v
+@deftypefunx void glSecondaryColor3ubv v
+@deftypefunx void glSecondaryColor3usv v
+@deftypefunx void glSecondaryColor3uiv v
+Set the current secondary color.
 
-@defun glSecondaryColor 
-@heading set the current secondary color
-@heading Parameters
 @table @asis
 @item @var{red}
 @itemx @var{green}
@@ -19070,7 +18825,6 @@ Specify new red, green, and blue values for the current secondary color.
 
 @end table
 
-@heading Description
 The GL stores both a primary four-valued RGBA color and a secondary
 four-valued RGBA color (where alpha is always set to 0.0) that is
 associated with every vertex.
@@ -19097,19 +18851,19 @@ largest representable value maps to 1.0 (full intensity), and 0 maps to
 0.0 (zero intensity). Signed integer color components, when specified,
 are linearly mapped to floating-point values such that the most positive
 representable value maps to 1.0, and the most negative representable
-value maps to @math{-1.0}. (Note that this mapping does not convert 0
+value maps to @r{-1.0}. (Note that this mapping does not convert 0
 precisely to 0.0). Floating-point values are mapped directly.
 
 Neither floating-point nor signed integer values are clamped to the
-range @math{[0,1]} before the current color is updated. However, color
+range @r{[0,1]} before the current color is updated. However, color
 components are clamped to this range before they are interpolated or
 written into a color buffer.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glSelectBuffer size buffer
+Establish a buffer for selection mode values.
 
-@defun glSelectBuffer 
-@heading establish a buffer for selection mode values
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the size of @var{buffer}.
@@ -19119,7 +18873,6 @@ Returns the selection data.
 
 @end table
 
-@heading Description
 @code{glSelectBuffer} has two arguments: @var{buffer} is a pointer to an
 array of unsigned integers, and @var{size} indicates the size of the
 array. @var{buffer} returns values from the name stack (see
@@ -19146,7 +18899,7 @@ the previous event, followed by the name stack contents, bottom name
 first.
 
 Depth values (which are in the range [0,1]) are multiplied by
-@math{2^32-1}, before being placed in the hit record.
+@r{2^32-1}, before being placed in the hit record.
 
 An internal index into @var{buffer} is reset to 0 whenever selection
 mode is entered. Each time a hit record is copied into @var{buffer}, the
@@ -19165,7 +18918,6 @@ buffer pointer, and initializes the name stack to be empty. If the
 overflow bit was set when @code{glRenderMode} was called, a negative hit
 record count is returned.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is negative.
 
 @code{GL_INVALID_OPERATION} is generated if @code{glSelectBuffer} is
@@ -19177,11 +18929,11 @@ called while the render mode is @code{GL_SELECT}, or if
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glSeparableFilter2D target internalformat width height format type row column
+Define a separable two-dimensional convolution filter.
 
-@defun glSeparableFilter2D 
-@heading define a separable two-dimensional convolution filter
-@heading Parameters
 @table @asis
 @item @var{target}
 Must be @code{GL_SEPARABLE_2D}.
@@ -19239,7 +18991,6 @@ build the column filter kernel.
 
 @end table
 
-@heading Description
 @code{glSeparableFilter2D} builds a two-dimensional separable
 convolution filter kernel from two arrays of pixels.
 
@@ -19310,7 +19061,6 @@ corresponding @code{GL_POST_CONVOLUTION_c_BIAS} parameters (where
 @var{c} takes on the values @strong{RED}, @strong{GREEN}, @strong{BLUE},
 and @strong{ALPHA}). These parameters are set by @code{glPixelTransfer}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_SEPARABLE_2D}.
 
@@ -19364,11 +19114,11 @@ to store in memory a datum indicated by @var{type}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glShadeModel mode
+Select flat or smooth shading.
 
-@defun glShadeModel 
-@heading select flat or smooth shading
-@heading Parameters
 @table @asis
 @item @var{mode}
 Specifies a symbolic value representing a shading technique. Accepted
@@ -19377,7 +19127,6 @@ values are @code{GL_FLAT} and @code{GL_SMOOTH}. The initial value is
 
 @end table
 
-@heading Description
 GL primitives can have either flat or smooth shading. Smooth shading,
 the default, causes the computed colors of vertices to be interpolated
 as the primitive is rasterized, typically assigning different colors to
@@ -19390,8 +19139,8 @@ disabled.
 
 Flat and smooth shading are indistinguishable for points. Starting when
 @code{glBegin} is issued and counting vertices and primitives from 1,
-the GL gives each flat-shaded line segment @math{@var{i}} the computed
-color of vertex @math{@var{i}+1}, its second vertex. Counting similarly
+the GL gives each flat-shaded line segment @r{@var{i}} the computed
+color of vertex @r{@var{i}+1}, its second vertex. Counting similarly
 from 1, the GL gives each flat-shaded polygon the computed color of the
 vertex listed in the following table. This is the last vertex to specify
 the polygon in all cases except single polygons, where the first vertex
@@ -19401,40 +19150,39 @@ specifies the flat-shaded color.
 
 @table @asis
 @item @strong{
-Primitive Type of Polygon @math{@var{i}}}
+Primitive Type of Polygon @r{@var{i}}}
 @strong{Vertex}
 
 @item 
 Single polygon 
-                        (@math{@var{i}==1}) 
+                        (@r{@var{i}==1}) 
 1
 
 @item 
 Triangle strip 
-@math{@var{i}+2}
+@r{@var{i}+2}
 
 @item 
 Triangle fan 
-@math{@var{i}+2}
+@r{@var{i}+2}
 
 @item 
 Independent triangle 
-@math{3⁢@var{i}}
+@r{3⁢@var{i}}
 
 @item 
 Quad strip 
-@math{2⁢@var{i}+2}
+@r{2⁢@var{i}+2}
 
 @item 
 Independent quad 
-@math{4⁢@var{i}}
+@r{4⁢@var{i}}
 
 @end table
 
 Flat and smooth shading are specified by @code{glShadeModel} with
 @var{mode} set to @code{GL_FLAT} and @code{GL_SMOOTH}, respectively.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{mode} is any value other
 than @code{GL_FLAT} or @code{GL_SMOOTH}.
 
@@ -19442,11 +19190,11 @@ than @code{GL_FLAT} or @code{GL_SMOOTH}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glShaderSource shader count string length
+Replaces the source code in a shader object.
 
-@defun glShaderSource 
-@heading Replaces the source code in a shader object
-@heading Parameters
 @table @asis
 @item @var{shader}
 Specifies the handle of the shader object whose source code is to be
@@ -19465,7 +19213,6 @@ Specifies an array of string lengths.
 
 @end table
 
-@heading Description
 @code{glShaderSource} sets the source code in @var{shader} to the source
 code in the array of strings specified by @var{string}. Any source code
 previously stored in the shader object is completely replaced. The
@@ -19480,7 +19227,6 @@ indicate that the string is null terminated. The source code strings are
 not scanned or parsed at this time; they are simply copied into the
 specified shader object.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
 generated by OpenGL.
 
@@ -19493,11 +19239,11 @@ object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilFuncSeparate face func ref mask
+Set front and/or back function and reference value for stencil testing.
 
-@defun glStencilFuncSeparate 
-@heading set front and/or back function and reference value for stencil testing
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies whether front and/or back stencil state is updated. Three
@@ -19512,8 +19258,8 @@ Specifies the test function. Eight symbolic constants are valid:
 
 @item @var{ref}
 Specifies the reference value for the stencil test. @var{ref} is clamped
-to the range @math{[0,2^@var{n}-1]}, where @math{@var{n}} is the number
-of bitplanes in the stencil buffer. The initial value is 0.
+to the range @r{[0,2^@var{n}-1]}, where @r{@var{n}} is the number of
+bitplanes in the stencil buffer. The initial value is 0.
 
 @item @var{mask}
 Specifies a mask that is ANDed with both the reference value and the
@@ -19522,7 +19268,6 @@ stored stencil value when the test is done. The initial value is all
 
 @end table
 
-@heading Description
 Stenciling, like depth-buffering, enables and disables drawing on a
 per-pixel basis. You draw into the stencil planes using GL drawing
 primitives, then render geometry and images, using the stencil planes to
@@ -19547,10 +19292,10 @@ set to @code{GL_FRONT_AND_BACK}.
 @var{func} is a symbolic constant that determines the stencil comparison
 function. It accepts one of eight values, shown in the following list.
 @var{ref} is an integer reference value that is used in the stencil
-comparison. It is clamped to the range @math{[0,2^@var{n}-1]}, where
-@math{@var{n}} is the number of bitplanes in the stencil buffer.
-@var{mask} is bitwise ANDed with both the reference value and the stored
-stencil value, with the ANDed values participating in the comparison.
+comparison. It is clamped to the range @r{[0,2^@var{n}-1]}, where
+@r{@var{n}} is the number of bitplanes in the stencil buffer. @var{mask}
+is bitwise ANDed with both the reference value and the stored stencil
+value, with the ANDed values participating in the comparison.
 
 If @var{stencil} represents the value stored in the corresponding
 stencil buffer location, the following list shows the effect of each
@@ -19558,8 +19303,8 @@ comparison function that can be specified by @var{func}. Only if the
 comparison succeeds is the pixel passed through to the next stage in the
 rasterization process (see @code{glStencilOp}). All tests treat
 @var{stencil} values as unsigned integers in the range
-@math{[0,2^@var{n}-1]}, where @math{@var{n}} is the number of bitplanes
-in the stencil buffer.
+@r{[0,2^@var{n}-1]}, where @r{@var{n}} is the number of bitplanes in the
+stencil buffer.
 
 The following values are accepted by @var{func}:
 
@@ -19590,7 +19335,6 @@ Always passes.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{func} is not one of the
 eight accepted values.
 
@@ -19598,11 +19342,11 @@ eight accepted values.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilFunc func ref mask
+Set front and back function and reference value for stencil testing.
 
-@defun glStencilFunc 
-@heading set front and back function and reference value for stencil testing
-@heading Parameters
 @table @asis
 @item @var{func}
 Specifies the test function. Eight symbolic constants are valid:
@@ -19612,8 +19356,8 @@ Specifies the test function. Eight symbolic constants are valid:
 
 @item @var{ref}
 Specifies the reference value for the stencil test. @var{ref} is clamped
-to the range @math{[0,2^@var{n}-1]}, where @math{@var{n}} is the number
-of bitplanes in the stencil buffer. The initial value is 0.
+to the range @r{[0,2^@var{n}-1]}, where @r{@var{n}} is the number of
+bitplanes in the stencil buffer. The initial value is 0.
 
 @item @var{mask}
 Specifies a mask that is ANDed with both the reference value and the
@@ -19622,7 +19366,6 @@ stored stencil value when the test is done. The initial value is all
 
 @end table
 
-@heading Description
 Stenciling, like depth-buffering, enables and disables drawing on a
 per-pixel basis. Stencil planes are first drawn into using GL drawing
 primitives, then geometry and images are rendered using the stencil
@@ -19647,10 +19390,10 @@ state to different values.
 @var{func} is a symbolic constant that determines the stencil comparison
 function. It accepts one of eight values, shown in the following list.
 @var{ref} is an integer reference value that is used in the stencil
-comparison. It is clamped to the range @math{[0,2^@var{n}-1]}, where
-@math{@var{n}} is the number of bitplanes in the stencil buffer.
-@var{mask} is bitwise ANDed with both the reference value and the stored
-stencil value, with the ANDed values participating in the comparison.
+comparison. It is clamped to the range @r{[0,2^@var{n}-1]}, where
+@r{@var{n}} is the number of bitplanes in the stencil buffer. @var{mask}
+is bitwise ANDed with both the reference value and the stored stencil
+value, with the ANDed values participating in the comparison.
 
 If @var{stencil} represents the value stored in the corresponding
 stencil buffer location, the following list shows the effect of each
@@ -19658,8 +19401,8 @@ comparison function that can be specified by @var{func}. Only if the
 comparison succeeds is the pixel passed through to the next stage in the
 rasterization process (see @code{glStencilOp}). All tests treat
 @var{stencil} values as unsigned integers in the range
-@math{[0,2^@var{n}-1]}, where @math{@var{n}} is the number of bitplanes
-in the stencil buffer.
+@r{[0,2^@var{n}-1]}, where @r{@var{n}} is the number of bitplanes in the
+stencil buffer.
 
 The following values are accepted by @var{func}:
 
@@ -19690,7 +19433,6 @@ Always passes.
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{func} is not one of the
 eight accepted values.
 
@@ -19698,11 +19440,12 @@ eight accepted values.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilMaskSeparate face mask
+Control the front and/or back writing of individual bits in the stencil
+planes.
 
-@defun glStencilMaskSeparate 
-@heading control the front and/or back writing of individual bits in the stencil planes
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies whether the front and/or back stencil writemask is updated.
@@ -19715,10 +19458,9 @@ the stencil planes. Initially, the mask is all 1's.
 
 @end table
 
-@heading Description
 @code{glStencilMaskSeparate} controls the writing of individual bits in
-the stencil planes. The least significant @math{@var{n}} bits of
-@var{mask}, where @math{@var{n}} is the number of bits in the stencil
+the stencil planes. The least significant @r{@var{n}} bits of
+@var{mask}, where @r{@var{n}} is the number of bits in the stencil
 buffer, specify a mask. Where a 1 appears in the mask, it's possible to
 write to the corresponding bit in the stencil buffer. Where a 0 appears,
 the corresponding bit is write-protected. Initially, all bits are
@@ -19731,16 +19473,16 @@ stencil writemasks to the same values, as if
 @code{glStencilMaskSeparate} were called with @var{face} set to
 @code{GL_FRONT_AND_BACK}.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glStencilMaskSeparate}
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilMask mask
+Control the front and back writing of individual bits in the stencil
+planes.
 
-@defun glStencilMask 
-@heading control the front and back writing of individual bits in the stencil planes
-@heading Parameters
 @table @asis
 @item @var{mask}
 Specifies a bit mask to enable and disable writing of individual bits in
@@ -19748,12 +19490,11 @@ the stencil planes. Initially, the mask is all 1's.
 
 @end table
 
-@heading Description
 @code{glStencilMask} controls the writing of individual bits in the
-stencil planes. The least significant @math{@var{n}} bits of @var{mask},
-where @math{@var{n}} is the number of bits in the stencil buffer,
-specify a mask. Where a 1 appears in the mask, it's possible to write to
-the corresponding bit in the stencil buffer. Where a 0 appears, the
+stencil planes. The least significant @r{@var{n}} bits of @var{mask},
+where @r{@var{n}} is the number of bits in the stencil buffer, specify a
+mask. Where a 1 appears in the mask, it's possible to write to the
+corresponding bit in the stencil buffer. Where a 0 appears, the
 corresponding bit is write-protected. Initially, all bits are enabled
 for writing.
 
@@ -19763,16 +19504,15 @@ non-polygon primitives. @code{glStencilMask} sets both front and back
 stencil writemasks to the same values. Use @code{glStencilMaskSeparate}
 to set front and back stencil writemasks to different values.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glStencilMask} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilOpSeparate face sfail dpfail dppass
+Set front and/or back stencil test actions.
 
-@defun glStencilOpSeparate 
-@heading set front and/or back stencil test actions
-@heading Parameters
 @table @asis
 @item @var{face}
 Specifies whether front and/or back stencil state is updated. Three
@@ -19799,7 +19539,6 @@ symbolic constants as @var{sfail}. The initial value is @code{GL_KEEP}.
 
 @end table
 
-@heading Description
 Stenciling, like depth-buffering, enables and disables drawing on a
 per-pixel basis. You draw into the stencil planes using GL drawing
 primitives, then render geometry and images, using the stencil planes to
@@ -19859,8 +19598,8 @@ Bitwise inverts the current stencil buffer value.
 @end table
 
 Stencil buffer values are treated as unsigned integers. When incremented
-and decremented, values are clamped to 0 and @math{2^@var{n}-1}, where
-@math{@var{n}} is the value returned by querying @code{GL_STENCIL_BITS}.
+and decremented, values are clamped to 0 and @r{2^@var{n}-1}, where
+@r{@var{n}} is the value returned by querying @code{GL_STENCIL_BITS}.
 
 The other two arguments to @code{glStencilOpSeparate} specify stencil
 buffer actions that depend on whether subsequent depth buffer tests
@@ -19871,7 +19610,6 @@ buffer, or when the depth buffer is not enabled. In these cases,
 @var{sfail} and @var{dppass} specify stencil action when the stencil
 test fails and passes, respectively.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{face} is any value other
 than @code{GL_FRONT}, @code{GL_BACK}, or @code{GL_FRONT_AND_BACK}.
 
@@ -19882,11 +19620,11 @@ than @code{GL_FRONT}, @code{GL_BACK}, or @code{GL_FRONT_AND_BACK}.
 is executed between the execution of @code{glBegin} and the
 corresponding execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glStencilOp sfail dpfail dppass
+Set front and back stencil test actions.
 
-@defun glStencilOp 
-@heading set front and back stencil test actions
-@heading Parameters
 @table @asis
 @item @var{sfail}
 Specifies the action to take when the stencil test fails. Eight symbolic
@@ -19908,7 +19646,6 @@ symbolic constants as @var{sfail}. The initial value is @code{GL_KEEP}.
 
 @end table
 
-@heading Description
 Stenciling, like depth-buffering, enables and disables drawing on a
 per-pixel basis. You draw into the stencil planes using GL drawing
 primitives, then render geometry and images, using the stencil planes to
@@ -19968,8 +19705,8 @@ Bitwise inverts the current stencil buffer value.
 @end table
 
 Stencil buffer values are treated as unsigned integers. When incremented
-and decremented, values are clamped to 0 and @math{2^@var{n}-1}, where
-@math{@var{n}} is the value returned by querying @code{GL_STENCIL_BITS}.
+and decremented, values are clamped to 0 and @r{2^@var{n}-1}, where
+@r{@var{n}} is the value returned by querying @code{GL_STENCIL_BITS}.
 
 The other two arguments to @code{glStencilOp} specify stencil buffer
 actions that depend on whether subsequent depth buffer tests succeed
@@ -19980,7 +19717,6 @@ buffer, or when the depth buffer is not enabled. In these cases,
 @var{sfail} and @var{dppass} specify stencil action when the stencil
 test fails and passes, respectively.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{sfail}, @var{dpfail}, or
 @var{dppass} is any value other than the eight defined constant values.
 
@@ -19988,11 +19724,11 @@ test fails and passes, respectively.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexCoordPointer size type stride pointer
+Define an array of texture coordinates.
 
-@defun glTexCoordPointer 
-@heading define an array of texture coordinates
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the number of coordinates per array element. Must be 1, 2, 3,
@@ -20014,7 +19750,6 @@ coordinate set in the array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glTexCoordPointer} specifies the location and data format of an
 array of texture coordinates to use when rendering. @var{size} specifies
 the number of coordinates per texture coordinate set, and must be 1, 2,
@@ -20042,7 +19777,6 @@ coordinate array is used when @code{glArrayElement},
 @code{glDrawArrays}, @code{glMultiDrawArrays}, @code{glDrawElements},
 @code{glMultiDrawElements}, or @code{glDrawRangeElements} is called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is not 1, 2, 3, or 4.
 
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
@@ -20050,11 +19784,42 @@ value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexCoord1s s
+@deftypefunx void glTexCoord1i s
+@deftypefunx void glTexCoord1f s
+@deftypefunx void glTexCoord1d s
+@deftypefunx void glTexCoord2s s t
+@deftypefunx void glTexCoord2i s t
+@deftypefunx void glTexCoord2f s t
+@deftypefunx void glTexCoord2d s t
+@deftypefunx void glTexCoord3s s t r
+@deftypefunx void glTexCoord3i s t r
+@deftypefunx void glTexCoord3f s t r
+@deftypefunx void glTexCoord3d s t r
+@deftypefunx void glTexCoord4s s t r q
+@deftypefunx void glTexCoord4i s t r q
+@deftypefunx void glTexCoord4f s t r q
+@deftypefunx void glTexCoord4d s t r q
+@deftypefunx void glTexCoord1sv v
+@deftypefunx void glTexCoord1iv v
+@deftypefunx void glTexCoord1fv v
+@deftypefunx void glTexCoord1dv v
+@deftypefunx void glTexCoord2sv v
+@deftypefunx void glTexCoord2iv v
+@deftypefunx void glTexCoord2fv v
+@deftypefunx void glTexCoord2dv v
+@deftypefunx void glTexCoord3sv v
+@deftypefunx void glTexCoord3iv v
+@deftypefunx void glTexCoord3fv v
+@deftypefunx void glTexCoord3dv v
+@deftypefunx void glTexCoord4sv v
+@deftypefunx void glTexCoord4iv v
+@deftypefunx void glTexCoord4fv v
+@deftypefunx void glTexCoord4dv v
+Set the current texture coordinates.
 
-@defun glTexCoord 
-@heading set the current texture coordinates
-@heading Parameters
 @table @asis
 @item @var{s}
 @itemx @var{t}
@@ -20065,14 +19830,13 @@ all parameters are present in all forms of the command.
 
 @end table
 
-@heading Description
 @code{glTexCoord} specifies texture coordinates in one, two, three, or
 four dimensions. @code{glTexCoord1} sets the current texture coordinates
-to @math{(@var{s},001)}; a call to @code{glTexCoord2} sets them to
-@math{(@var{s},@var{t}01)}. Similarly, @code{glTexCoord3} specifies the
-texture coordinates as @math{(@var{s},@var{t}@var{r}1)}, and
+to @r{(@var{s},001)}; a call to @code{glTexCoord2} sets them to
+@r{(@var{s},@var{t}01)}. Similarly, @code{glTexCoord3} specifies the
+texture coordinates as @r{(@var{s},@var{t}@var{r}1)}, and
 @code{glTexCoord4} defines all four components explicitly as
-@math{(@var{s},@var{t}@var{r}@var{q})}.
+@r{(@var{s},@var{t}@var{r}@var{q})}.
 
 The current texture coordinates are part of the data that is associated
 with each vertex and with the current raster position. Initially, the
@@ -20080,11 +19844,14 @@ values for @var{s}, @var{t}, @var{r}, and @var{q} are (0, 0, 0, 1).
 
 
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexEnvf target pname param
+@deftypefunx void glTexEnvi target pname param
+@deftypefunx void glTexEnvfv target pname params
+@deftypefunx void glTexEnviv target pname params
+Set texture environment parameters.
 
-@defun glTexEnv 
-@heading set texture environment parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies a texture environment. May be @code{GL_TEXTURE_ENV},
@@ -20115,7 +19882,6 @@ the @code{GL_RGB_SCALE} or @code{GL_ALPHA_SCALE}.
 
 @end table
 
-@heading Description
 A texture environment specifies how texture values are interpreted when
 a fragment is textured. When @var{target} is
 @code{GL_TEXTURE_FILTER_CONTROL}, @var{pname} must be
@@ -20133,41 +19899,38 @@ functions may be specified: @code{GL_ADD}, @code{GL_MODULATE},
 @code{GL_COMBINE}.
 
 The following table shows the correspondence of filtered texture values
-@math{@var{R}_@var{t}}, @math{@var{G}_@var{t}}, @math{@var{B}_@var{t}},
-@math{@var{A}_@var{t}}, @math{@var{L}_@var{t}}, @math{@var{I}_@var{t}}
-to texture source components. @math{@var{C}_@var{s}} and
-@math{@var{A}_@var{s}} are used by the texture functions described
-below.
+@r{@var{R}_@var{t}}, @r{@var{G}_@var{t}}, @r{@var{B}_@var{t}},
+@r{@var{A}_@var{t}}, @r{@var{L}_@var{t}}, @r{@var{I}_@var{t}} to texture
+source components. @r{@var{C}_@var{s}} and @r{@var{A}_@var{s}} are used
+by the texture functions described below.
 
 
 
 @table @asis
 @item 
 Texture Base Internal Format 
-@math{@code{C}_@var{s}}, @math{@code{A}_@var{s}}
+@r{@code{C}_@var{s}}, @r{@code{A}_@var{s}}
 
 @item @code{GL_ALPHA}
-(0, 0, 0) , @math{@var{A}_@var{t}}
+(0, 0, 0) , @r{@var{A}_@var{t}}
 
 @item @code{GL_LUMINANCE}
-( @math{@var{L}_@var{t}}, @math{@var{L}_@var{t}}, @math{@var{L}_@var{t}}
-) , 1
+( @r{@var{L}_@var{t}}, @r{@var{L}_@var{t}}, @r{@var{L}_@var{t}} ) , 1
 
 @item @code{GL_LUMINANCE_ALPHA}
-( @math{@var{L}_@var{t}}, @math{@var{L}_@var{t}}, @math{@var{L}_@var{t}}
-) , @math{@var{A}_@var{t}}
+( @r{@var{L}_@var{t}}, @r{@var{L}_@var{t}}, @r{@var{L}_@var{t}} ) ,
+@r{@var{A}_@var{t}}
 
 @item @code{GL_INTENSITY}
-( @math{@var{I}_@var{t}}, @math{@var{I}_@var{t}}, @math{@var{I}_@var{t}}
-) , @math{@var{I}_@var{t}}
+( @r{@var{I}_@var{t}}, @r{@var{I}_@var{t}}, @r{@var{I}_@var{t}} ) ,
+@r{@var{I}_@var{t}}
 
 @item @code{GL_RGB}
-( @math{@var{R}_@var{t}}, @math{@var{G}_@var{t}}, @math{@var{B}_@var{t}}
-) , 1
+( @r{@var{R}_@var{t}}, @r{@var{G}_@var{t}}, @r{@var{B}_@var{t}} ) , 1
 
 @item @code{GL_RGBA}
-( @math{@var{R}_@var{t}}, @math{@var{G}_@var{t}}, @math{@var{B}_@var{t}}
-) , @math{@var{A}_@var{t}}
+( @r{@var{R}_@var{t}}, @r{@var{G}_@var{t}}, @r{@var{B}_@var{t}} ) ,
+@r{@var{A}_@var{t}}
 
 @end table
 
@@ -20175,14 +19938,14 @@ A texture function acts on the fragment to be textured using the texture
 image value that applies to the fragment (see @code{glTexParameter}) and
 produces an RGBA color for that fragment. The following table shows how
 the RGBA color is produced for each of the first five texture functions
-that can be chosen. @math{@var{C}} is a triple of color values (RGB) and
-@math{@var{A}} is the associated alpha value. RGBA values extracted from
-a texture image are in the range [0,1]. The subscript @math{@var{p}}
-refers to the color computed from the previous texture stage (or the
-incoming fragment if processing texture stage 0), the subscript
-@math{@var{s}} to the texture source color, the subscript @math{@var{c}}
-to the texture environment color, and the subscript @math{@var{v}}
-indicates a value produced by the texture function.
+that can be chosen. @r{@var{C}} is a triple of color values (RGB) and
+@r{@var{A}} is the associated alpha value. RGBA values extracted from a
+texture image are in the range [0,1]. The subscript @r{@var{p}} refers
+to the color computed from the previous texture stage (or the incoming
+fragment if processing texture stage 0), the subscript @r{@var{s}} to
+the texture source color, the subscript @r{@var{c}} to the texture
+environment color, and the subscript @r{@var{v}} indicates a value
+produced by the texture function.
 
 
 
@@ -20194,75 +19957,73 @@ Texture Base Internal Format
 Function
 
 @item @code{GL_ALPHA}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{p}}, @math{@var{C}_@var{p}},
-undefined , @math{@var{C}_@var{p}}, @math{@var{C}_@var{p}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{p}}, @r{@var{C}_@var{p}},
+undefined , @r{@var{C}_@var{p}}, @r{@var{C}_@var{p}}
 
 @item 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
-@math{@var{A}_@var{v}=@var{A}_@var{p}⁢@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{s}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
+@r{@var{A}_@var{v}=@var{A}_@var{p}⁢@var{A}_@var{s}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}
 
 @item @code{GL_LUMINANCE}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
-@math{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}+@var{C}_@var{s}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
+@r{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}+@var{C}_@var{s}}
 
 @item 
 (or 1) 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{p}}, @math{@var{A}_@var{p}},
-, @math{@var{A}_@var{p}}, @math{@var{A}_@var{p}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{p}}, @r{@var{A}_@var{p}}, ,
+@r{@var{A}_@var{p}}, @r{@var{A}_@var{p}}
 
 @item @code{GL_LUMINANCE_ALPHA}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
-@math{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}+@var{C}_@var{s}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
+@r{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}+@var{C}_@var{s}}
 
 @item 
 (or 2) 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{s}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, @r{@var{A}_@var{p}⁢@var{A}_@var{s}}
 
 @item @code{GL_INTENSITY}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
-@math{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}+@var{C}_@var{s}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢@var{C}_@var{s}}, undefined ,
+@r{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}+@var{C}_@var{s}}
 
 @item 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
-@math{@var{A}_@var{p}⁢(1-@var{A}_@var{s},)+@var{A}_@var{c}⁢@var{A}_@var{s}},
-@math{@var{A}_@var{p}+@var{A}_@var{s}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{s}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, ,
+@r{@var{A}_@var{p}⁢(1-@var{A}_@var{s},)+@var{A}_@var{c}⁢@var{A}_@var{s}},
+@r{@var{A}_@var{p}+@var{A}_@var{s}}
 
 @item @code{GL_RGB}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢@var{C}_@var{s}}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}+@var{C}_@var{s}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢@var{C}_@var{s}}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}+@var{C}_@var{s}}
 
 @item 
 (or 3) 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{p}}, @math{@var{A}_@var{p}},
-@math{@var{A}_@var{p}}, @math{@var{A}_@var{p}}, @math{@var{A}_@var{p}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{p}}, @r{@var{A}_@var{p}},
+@r{@var{A}_@var{p}}, @r{@var{A}_@var{p}}, @r{@var{A}_@var{p}}
 
 @item @code{GL_RGBA}
-@math{@var{C}_@var{v}=}, @math{@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}⁢(1-@var{A}_@var{s},)+@var{C}_@var{s}⁢@var{A}_@var{s}},
-@math{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
-@math{@var{C}_@var{p}+@var{C}_@var{s}}
+@r{@var{C}_@var{v}=}, @r{@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}⁢(1-@var{A}_@var{s},)+@var{C}_@var{s}⁢@var{A}_@var{s}},
+@r{@var{C}_@var{p}⁢(1-@var{C}_@var{s},)+@var{C}_@var{c}⁢@var{C}_@var{s}},
+@r{@var{C}_@var{p}+@var{C}_@var{s}}
 
 @item 
 (or 4) 
-@math{@var{A}_@var{v}=}, @math{@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}, @math{@var{A}_@var{p}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}},
-@math{@var{A}_@var{p}⁢@var{A}_@var{s}}
+@r{@var{A}_@var{v}=}, @r{@var{A}_@var{s}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, @r{@var{A}_@var{p}},
+@r{@var{A}_@var{p}⁢@var{A}_@var{s}}, @r{@var{A}_@var{p}⁢@var{A}_@var{s}}
 
 @end table
 
@@ -20274,9 +20035,9 @@ The following describes how the texture sources, as specified by
 @code{GL_SRC0_RGB}, @code{GL_SRC1_RGB}, @code{GL_SRC2_RGB},
 @code{GL_SRC0_ALPHA}, @code{GL_SRC1_ALPHA}, and @code{GL_SRC2_ALPHA},
 are combined to produce a final texture color. In the following tables,
-@code{GL_SRC0_c} is represented by @math{@var{Arg0}}, @code{GL_SRC1_c}
-is represented by @math{@var{Arg1}}, and @code{GL_SRC2_c} is represented
-by @math{@var{Arg2}}.
+@code{GL_SRC0_c} is represented by @r{@var{Arg0}}, @code{GL_SRC1_c} is
+represented by @r{@var{Arg1}}, and @code{GL_SRC2_c} is represented by
+@r{@var{Arg2}}.
 
 @code{GL_COMBINE_RGB} accepts any of @code{GL_REPLACE},
 @code{GL_MODULATE}, @code{GL_ADD}, @code{GL_ADD_SIGNED},
@@ -20290,26 +20051,26 @@ by @math{@var{Arg2}}.
 @strong{Texture Function}
 
 @item @code{GL_REPLACE}
-@math{@var{Arg0}}
+@r{@var{Arg0}}
 
 @item @code{GL_MODULATE}
-@math{@var{Arg0}×@var{Arg1}}
+@r{@var{Arg0}×@var{Arg1}}
 
 @item @code{GL_ADD}
-@math{@var{Arg0}+@var{Arg1}}
+@r{@var{Arg0}+@var{Arg1}}
 
 @item @code{GL_ADD_SIGNED}
-@math{@var{Arg0}+@var{Arg1}-0.5}
+@r{@var{Arg0}+@var{Arg1}-0.5}
 
 @item @code{GL_INTERPOLATE}
-@math{@var{Arg0}×@var{Arg2}+@var{Arg1}×(1-@var{Arg2},)}
+@r{@var{Arg0}×@var{Arg2}+@var{Arg1}×(1-@var{Arg2},)}
 
 @item @code{GL_SUBTRACT}
-@math{@var{Arg0}-@var{Arg1}}
+@r{@var{Arg0}-@var{Arg1}}
 
 @item @code{GL_DOT3_RGB}
 or @code{GL_DOT3_RGBA}
-@math{4×(((@var{Arg0}_@var{r},-0.5,)×(@var{Arg1}_@var{r},-0.5,),)+((@var{Arg0}_@var{g},-0.5,)×(@var{Arg1}_@var{g},-0.5,),)+((@var{Arg0}_@var{b},-0.5,)×(@var{Arg1}_@var{b},-0.5,),),)}
+@r{4×(((@var{Arg0}_@var{r},-0.5,)×(@var{Arg1}_@var{r},-0.5,),)+((@var{Arg0}_@var{g},-0.5,)×(@var{Arg1}_@var{g},-0.5,),)+((@var{Arg0}_@var{b},-0.5,)×(@var{Arg1}_@var{b},-0.5,),),)}
 
 @end table
 
@@ -20328,37 +20089,36 @@ describes how alpha values are combined:
 @strong{Texture Function}
 
 @item @code{GL_REPLACE}
-@math{@var{Arg0}}
+@r{@var{Arg0}}
 
 @item @code{GL_MODULATE}
-@math{@var{Arg0}×@var{Arg1}}
+@r{@var{Arg0}×@var{Arg1}}
 
 @item @code{GL_ADD}
-@math{@var{Arg0}+@var{Arg1}}
+@r{@var{Arg0}+@var{Arg1}}
 
 @item @code{GL_ADD_SIGNED}
-@math{@var{Arg0}+@var{Arg1}-0.5}
+@r{@var{Arg0}+@var{Arg1}-0.5}
 
 @item @code{GL_INTERPOLATE}
-@math{@var{Arg0}×@var{Arg2}+@var{Arg1}×(1-@var{Arg2},)}
+@r{@var{Arg0}×@var{Arg2}+@var{Arg1}×(1-@var{Arg2},)}
 
 @item @code{GL_SUBTRACT}
-@math{@var{Arg0}-@var{Arg1}}
+@r{@var{Arg0}-@var{Arg1}}
 
 @end table
 
-In the following tables, the value @math{@var{C}_@var{s}} represents the
-color sampled from the currently bound texture, @math{@var{C}_@var{c}}
-represents the constant texture-environment color,
-@math{@var{C}_@var{f}} represents the primary color of the incoming
-fragment, and @math{@var{C}_@var{p}} represents the color computed from
-the previous texture stage or @math{@var{C}_@var{f}} if processing
-texture stage 0. Likewise, @math{@var{A}_@var{s}},
-@math{@var{A}_@var{c}}, @math{@var{A}_@var{f}}, and
-@math{@var{A}_@var{p}} represent the respective alpha values.
+In the following tables, the value @r{@var{C}_@var{s}} represents the
+color sampled from the currently bound texture, @r{@var{C}_@var{c}}
+represents the constant texture-environment color, @r{@var{C}_@var{f}}
+represents the primary color of the incoming fragment, and
+@r{@var{C}_@var{p}} represents the color computed from the previous
+texture stage or @r{@var{C}_@var{f}} if processing texture stage 0.
+Likewise, @r{@var{A}_@var{s}}, @r{@var{A}_@var{c}}, @r{@var{A}_@var{f}},
+and @r{@var{A}_@var{p}} represent the respective alpha values.
 
-The following table describes the values assigned to @math{@var{Arg0}},
-@math{@var{Arg1}}, and @math{@var{Arg2}} based upon the RGB sources and
+The following table describes the values assigned to @r{@var{Arg0}},
+@r{@var{Arg1}}, and @r{@var{Arg2}} based upon the RGB sources and
 operands:
 
 
@@ -20368,74 +20128,74 @@ operands:
 @strong{@code{GL_OPERANDn_RGB}}, @strong{Argument Value}
 
 @item @code{GL_TEXTURE}
-@code{GL_SRC_COLOR}, @math{@var{C}_@var{s},}
+@code{GL_SRC_COLOR}, @r{@var{C}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_COLOR}, @math{1-@var{C}_@var{s},}
+@code{GL_ONE_MINUS_SRC_COLOR}, @r{1-@var{C}_@var{s},}
 
 @item 
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{s},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{s},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{s},}
 
 @item @code{GL_TEXTUREn}
-@code{GL_SRC_COLOR}, @math{@var{C}_@var{s},}
+@code{GL_SRC_COLOR}, @r{@var{C}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_COLOR}, @math{1-@var{C}_@var{s},}
+@code{GL_ONE_MINUS_SRC_COLOR}, @r{1-@var{C}_@var{s},}
 
 @item 
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{s},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{s},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{s},}
 
 @item @code{GL_CONSTANT}
-@code{GL_SRC_COLOR}, @math{@var{C}_@var{c},}
+@code{GL_SRC_COLOR}, @r{@var{C}_@var{c},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_COLOR}, @math{1-@var{C}_@var{c},}
+@code{GL_ONE_MINUS_SRC_COLOR}, @r{1-@var{C}_@var{c},}
 
 @item 
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{c},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{c},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{c},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{c},}
 
 @item @code{GL_PRIMARY_COLOR}
-@code{GL_SRC_COLOR}, @math{@var{C}_@var{f},}
+@code{GL_SRC_COLOR}, @r{@var{C}_@var{f},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_COLOR}, @math{1-@var{C}_@var{f},}
+@code{GL_ONE_MINUS_SRC_COLOR}, @r{1-@var{C}_@var{f},}
 
 @item 
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{f},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{f},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{f},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{f},}
 
 @item @code{GL_PREVIOUS}
-@code{GL_SRC_COLOR}, @math{@var{C}_@var{p},}
+@code{GL_SRC_COLOR}, @r{@var{C}_@var{p},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_COLOR}, @math{1-@var{C}_@var{p},}
+@code{GL_ONE_MINUS_SRC_COLOR}, @r{1-@var{C}_@var{p},}
 
 @item 
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{p},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{p},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{p},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{p},}
 
 @end table
 
-For @code{GL_TEXTUREn} sources, @math{@var{C}_@var{s}} and
-@math{@var{A}_@var{s}} represent the color and alpha, respectively,
-produced from texture stage @math{@var{n}}.
+For @code{GL_TEXTUREn} sources, @r{@var{C}_@var{s}} and
+@r{@var{A}_@var{s}} represent the color and alpha, respectively,
+produced from texture stage @r{@var{n}}.
 
-The follow table describes the values assigned to @math{@var{Arg0}},
-@math{@var{Arg1}}, and @math{@var{Arg2}} based upon the alpha sources
-and operands:
+The follow table describes the values assigned to @r{@var{Arg0}},
+@r{@var{Arg1}}, and @r{@var{Arg2}} based upon the alpha sources and
+operands:
 
 
 
@@ -20444,47 +20204,47 @@ and operands:
 @strong{@code{GL_OPERANDn_ALPHA}}, @strong{Argument Value}
 
 @item @code{GL_TEXTURE}
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{s},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{s},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{s},}
 
 @item @code{GL_TEXTUREn}
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{s},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{s},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{s},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{s},}
 
 @item @code{GL_CONSTANT}
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{c},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{c},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{c},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{c},}
 
 @item @code{GL_PRIMARY_COLOR}
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{f},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{f},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{f},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{f},}
 
 @item @code{GL_PREVIOUS}
-@code{GL_SRC_ALPHA}, @math{@var{A}_@var{p},}
+@code{GL_SRC_ALPHA}, @r{@var{A}_@var{p},}
 
 @item 
-@code{GL_ONE_MINUS_SRC_ALPHA}, @math{1-@var{A}_@var{p},}
+@code{GL_ONE_MINUS_SRC_ALPHA}, @r{1-@var{A}_@var{p},}
 
 @end table
 
 The RGB and alpha results of the texture function are multipled by the
 values of @code{GL_RGB_SCALE} and @code{GL_ALPHA_SCALE}, respectively,
-and clamped to the range @math{[0,1]}.
+and clamped to the range @r{[0,1]}.
 
 If @var{pname} is @code{GL_TEXTURE_ENV_COLOR}, @var{params} is a pointer
 to an array that holds an RGBA color consisting of four values. Integer
 color components are interpreted linearly such that the most positive
 integer maps to 1.0, and the most negative integer maps to -1.0. The
 values are clamped to the range [0,1] when they are specified.
-@math{@var{C}_@var{c}} takes these four values.
+@r{@var{C}_@var{c}} takes these four values.
 
 If @var{pname} is @code{GL_TEXTURE_LOD_BIAS}, the value specified is
 added to the texture level-of-detail parameter, that selects which
@@ -20499,7 +20259,6 @@ If @var{target} is @code{GL_POINT_SPRITE} and @var{pname} is
 enable or disable point sprite texture coordinate replacement. The
 default value is @code{GL_FALSE}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated when @var{target} or @var{pname} is
 not one of the accepted defined values, or when @var{params} should have
 a defined constant value (based on the value of @var{pname}) and does
@@ -20513,11 +20272,16 @@ not.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexGeni coord pname param
+@deftypefunx void glTexGenf coord pname param
+@deftypefunx void glTexGend coord pname param
+@deftypefunx void glTexGeniv coord pname params
+@deftypefunx void glTexGenfv coord pname params
+@deftypefunx void glTexGendv coord pname params
+Control the generation of texture coordinates.
 
-@defun glTexGen 
-@heading control the generation of texture coordinates
-@heading Parameters
 @table @asis
 @item @var{coord}
 Specifies a texture coordinate. Must be one of @code{GL_S}, @code{GL_T},
@@ -20534,7 +20298,6 @@ Specifies a single-valued texture generation parameter, one of
 
 @end table
 
-@heading Description
 @code{glTexGen} selects a texture-coordinate generation function or
 supplies coefficients for one of the functions. @var{coord} names one of
 the (@var{s}, @var{t}, @var{r}, @var{q}) texture coordinates; it must be
@@ -20551,35 +20314,34 @@ coefficients for the corresponding texture generation function.
 If the texture generation function is @code{GL_OBJECT_LINEAR}, the
 function
 
-@math{@var{g}=@var{p}_1×@var{x}_@var{o}+@var{p}_2×@var{y}_@var{o}+@var{p}_3×@var{z}_@var{o}+@var{p}_4×@var{w}_@var{o}}
-
-is used, where @math{@var{g}} is the value computed for the coordinate
-named in @var{coord}, @math{@var{p}_1}, @math{@var{p}_2},
-@math{@var{p}_3}, and @math{@var{p}_4} are the four values supplied in
-@var{params}, and @math{@var{x}_@var{o}}, @math{@var{y}_@var{o}},
-@math{@var{z}_@var{o}}, and @math{@var{w}_@var{o}} are the object
-coordinates of the vertex. This function can be used, for example, to
-texture-map terrain using sea level as a reference plane (defined by
-@math{@var{p}_1}, @math{@var{p}_2}, @math{@var{p}_3}, and
-@math{@var{p}_4}). The altitude of a terrain vertex is computed by the
-@code{GL_OBJECT_LINEAR} coordinate generation function as its distance
-from sea level; that altitude can then be used to index the texture
-image to map white snow onto peaks and green grass onto foothills.
+@r{@var{g}=@var{p}_1×@var{x}_@var{o}+@var{p}_2×@var{y}_@var{o}+@var{p}_3×@var{z}_@var{o}+@var{p}_4×@var{w}_@var{o}}
+
+is used, where @r{@var{g}} is the value computed for the coordinate
+named in @var{coord}, @r{@var{p}_1}, @r{@var{p}_2}, @r{@var{p}_3}, and
+@r{@var{p}_4} are the four values supplied in @var{params}, and
+@r{@var{x}_@var{o}}, @r{@var{y}_@var{o}}, @r{@var{z}_@var{o}}, and
+@r{@var{w}_@var{o}} are the object coordinates of the vertex. This
+function can be used, for example, to texture-map terrain using sea
+level as a reference plane (defined by @r{@var{p}_1}, @r{@var{p}_2},
+@r{@var{p}_3}, and @r{@var{p}_4}). The altitude of a terrain vertex is
+computed by the @code{GL_OBJECT_LINEAR} coordinate generation function
+as its distance from sea level; that altitude can then be used to index
+the texture image to map white snow onto peaks and green grass onto
+foothills.
 
 If the texture generation function is @code{GL_EYE_LINEAR}, the function
 
-@math{@var{g}=@var{p}_1,^″×@var{x}_@var{e}+@var{p}_2,^″×@var{y}_@var{e}+@var{p}_3,^″×@var{z}_@var{e}+@var{p}_4,^″×@var{w}_@var{e}}
+@r{@var{g}=@var{p}_1,^″×@var{x}_@var{e}+@var{p}_2,^″×@var{y}_@var{e}+@var{p}_3,^″×@var{z}_@var{e}+@var{p}_4,^″×@var{w}_@var{e}}
 
 is used, where
 
-@math{(@var{p}_1,^″⁢@var{p}_2,^″⁢@var{p}_3,^″⁢@var{p}_4,^″,)=(@var{p}_1⁢@var{p}_2⁢@var{p}_3⁢@var{p}_4,)⁢@var{M}^-1}
+@r{(@var{p}_1,^″⁢@var{p}_2,^″⁢@var{p}_3,^″⁢@var{p}_4,^″,)=(@var{p}_1⁢@var{p}_2⁢@var{p}_3⁢@var{p}_4,)⁢@var{M}^-1}
 
-and @math{@var{x}_@var{e}}, @math{@var{y}_@var{e}},
-@math{@var{z}_@var{e}}, and @math{@var{w}_@var{e}} are the eye
-coordinates of the vertex, @math{@var{p}_1}, @math{@var{p}_2},
-@math{@var{p}_3}, and @math{@var{p}_4} are the values supplied in
-@var{params}, and @math{@var{M}} is the modelview matrix when
-@code{glTexGen} is invoked. If @math{@var{M}} is poorly conditioned or
+and @r{@var{x}_@var{e}}, @r{@var{y}_@var{e}}, @r{@var{z}_@var{e}}, and
+@r{@var{w}_@var{e}} are the eye coordinates of the vertex,
+@r{@var{p}_1}, @r{@var{p}_2}, @r{@var{p}_3}, and @r{@var{p}_4} are the
+values supplied in @var{params}, and @r{@var{M}} is the modelview matrix
+when @code{glTexGen} is invoked. If @r{@var{M}} is poorly conditioned or
 singular, texture coordinates generated by the resulting function may be
 inaccurate or undefined.
 
@@ -20590,25 +20352,25 @@ function establishes a field of texture coordinates that can produce
 dynamic contour lines on moving objects.
 
 If the texture generation function is @code{GL_SPHERE_MAP} and
-@var{coord} is either @code{GL_S} or @code{GL_T}, @math{@var{s}} and
-@math{@var{t}} texture coordinates are generated as follows. Let @var{u}
-be the unit vector pointing from the origin to the polygon vertex (in
-eye coordinates). Let @var{n} sup prime be the current normal, after
+@var{coord} is either @code{GL_S} or @code{GL_T}, @r{@var{s}} and
+@r{@var{t}} texture coordinates are generated as follows. Let @var{u} be
+the unit vector pointing from the origin to the polygon vertex (in eye
+coordinates). Let @var{n} sup prime be the current normal, after
 transformation to eye coordinates. Let
 
-@math{@var{f}=(@var{f}_@var{x}⁢@var{f}_@var{y}⁢@var{f}_@var{z},)^@var{T}}
+@r{@var{f}=(@var{f}_@var{x}⁢@var{f}_@var{y}⁢@var{f}_@var{z},)^@var{T}}
 be the reflection vector such that
 
-@math{@var{f}=@var{u}-2⁢@var{n}^″⁢@var{n}^″,^@var{T}⁢@var{u}}
+@r{@var{f}=@var{u}-2⁢@var{n}^″⁢@var{n}^″,^@var{T}⁢@var{u}}
 
 Finally, let
-@math{@var{m}=2⁢√(@var{f}_@var{x},^2+@var{f}_@var{y},^2+(@var{f}_@var{z}+1,)^2,)}.
-Then the values assigned to the @math{@var{s}} and @math{@var{t}}
-texture coordinates are
+@r{@var{m}=2⁢√(@var{f}_@var{x},^2+@var{f}_@var{y},^2+(@var{f}_@var{z}+1,)^2,)}.
+Then the values assigned to the @r{@var{s}} and @r{@var{t}} texture
+coordinates are
 
-@math{@var{s}=@var{f}_@var{x}/@var{m}+1/2}
+@r{@var{s}=@var{f}_@var{x}/@var{m}+1/2}
 
-@math{@var{t}=@var{f}_@var{y}/@var{m}+1/2}
+@r{@var{t}=@var{f}_@var{y}/@var{m}+1/2}
 
 To enable or disable a texture-coordinate generation function, call
 @code{glEnable} or @code{glDisable} with one of the symbolic
@@ -20619,16 +20381,14 @@ texture coordinate is computed according to the generating function
 associated with that coordinate. When disabled, subsequent vertices take
 the specified texture coordinate from the current set of texture
 coordinates. Initially, all texture generation functions are set to
-@code{GL_EYE_LINEAR} and are disabled. Both @math{@var{s}} plane
-equations are (1, 0, 0, 0), both @math{@var{t}} plane equations are (0,
-1, 0, 0), and all @math{@var{r}} and @math{@var{q}} plane equations are
-(0, 0, 0, 0).
+@code{GL_EYE_LINEAR} and are disabled. Both @r{@var{s}} plane equations
+are (1, 0, 0, 0), both @r{@var{t}} plane equations are (0, 1, 0, 0), and
+all @r{@var{r}} and @r{@var{q}} plane equations are (0, 0, 0, 0).
 
 When the @code{ARB_multitexture} extension is supported, @code{glTexGen}
 sets the texture generation parameters for the currently active texture
 unit, selected with @code{glActiveTexture}.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated when @var{coord} or @var{pname} is
 not an accepted defined value, or when @var{pname} is
 @code{GL_TEXTURE_GEN_MODE} and @var{params} is not an accepted defined
@@ -20642,11 +20402,11 @@ value.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexImage1D target level internalFormat width border format type data
+Specify a one-dimensional texture image.
 
-@defun glTexImage1D 
-@heading specify a one-dimensional texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D} or
@@ -20684,9 +20444,9 @@ Specifies the number of color components in the texture. Must be 1, 2,
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support texture images that are at least 64 texels
-wide. The height of the 1D texture image is 1.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support texture images that are at least 64 texels wide.
+The height of the 1D texture image is 1.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -20715,7 +20475,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable one-dimensional texturing, call @code{glEnable} and
@@ -20876,14 +20635,13 @@ If the @var{internalFormat} parameter is @code{GL_SRGB},
 or @code{GL_SLUMINANCE8_ALPHA8}, the texture is treated as if the red,
 green, blue, or luminance components are encoded in the sRGB color
 space. Any alpha component is left unchanged. The conversion from the
-sRGB encoded component @math{@var{c}_@var{s}} to a linear component
-@math{@var{c}_@var{l}} is:
+sRGB encoded component @r{@var{c}_@var{s}} to a linear component
+@r{@var{c}_@var{l}} is:
 
-@math{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if
-@var{c}_@var{s}≤0.04045), ((@code{c}_@code{s}+0.055/1.055)^2.4 if
-@var{c}_@var{s}>0.04045)}
+@r{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if @var{c}_@var{s}≤0.04045),
+((@code{c}_@code{s}+0.055/1.055)^2.4 if @var{c}_@var{s}>0.04045)}
 
-Assume @math{@var{c}_@var{s}} is the sRGB component in the range [0,1].
+Assume @r{@var{c}_@var{s}} is the sRGB component in the range [0,1].
 
 Use the @code{GL_PROXY_TEXTURE_1D} target to try out a resolution and
 format. The implementation will update and recompute its best match for
@@ -20902,7 +20660,6 @@ during texture filtering and application. Image-based shadowing can be
 generate a boolean result. See @code{glTexParameter} for details on
 texture comparison.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_1D} or @code{GL_PROXY_TEXTURE_1D}.
 
@@ -20919,8 +20676,8 @@ and @var{format} is not @code{GL_COLOR_INDEX}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value
-of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value of
+@code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{internalFormat} is not 1,
 2, 3, 4, or one of the accepted resolution and format symbolic
@@ -20931,7 +20688,7 @@ greater than 2 + @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if non-power-of-two textures are
 not supported and the @var{width} cannot be represented as
-@math{2^@var{n}+2⁡(@var{border},)} for some integer value of @var{n}.
+@r{2^@var{n}+2⁡(@var{border},)} for some integer value of @var{n}.
 
 @code{GL_INVALID_VALUE} is generated if @var{border} is not 0 or 1.
 
@@ -20976,11 +20733,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexImage2D target level internalFormat width height border format type data
+Specify a two-dimensional texture image.
 
-@defun glTexImage2D 
-@heading specify a two-dimensional texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -21024,16 +20781,15 @@ Specifies the number of color components in the texture. Must be 1, 2,
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support texture images that are at least 64 texels
-wide.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support texture images that are at least 64 texels wide.
 
 @item @var{height}
 Specifies the height of the texture image including the border if any.
 If the GL version does not support non-power-of-two sizes, this value
-must be @math{2^@var{m}+2⁡(@var{border},)} for some integer
-@math{@var{m}}. All implementations support texture images that are at
-least 64 texels high.
+must be @r{2^@var{m}+2⁡(@var{border},)} for some integer @r{@var{m}}.
+All implementations support texture images that are at least 64 texels
+high.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -21062,7 +20818,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable two-dimensional texturing, call @code{glEnable} and
@@ -21228,14 +20983,13 @@ If the @var{internalFormat} parameter is @code{GL_SRGB},
 or @code{GL_SLUMINANCE8_ALPHA8}, the texture is treated as if the red,
 green, blue, or luminance components are encoded in the sRGB color
 space. Any alpha component is left unchanged. The conversion from the
-sRGB encoded component @math{@var{c}_@var{s}} to a linear component
-@math{@var{c}_@var{l}} is:
+sRGB encoded component @r{@var{c}_@var{s}} to a linear component
+@r{@var{c}_@var{l}} is:
 
-@math{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if
-@var{c}_@var{s}≤0.04045), ((@code{c}_@code{s}+0.055/1.055)^2.4 if
-@var{c}_@var{s}>0.04045)}
+@r{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if @var{c}_@var{s}≤0.04045),
+((@code{c}_@code{s}+0.055/1.055)^2.4 if @var{c}_@var{s}>0.04045)}
 
-Assume @math{@var{c}_@var{s}} is the sRGB component in the range [0,1].
+Assume @r{@var{c}_@var{s}} is the sRGB component in the range [0,1].
 
 Use the @code{GL_PROXY_TEXTURE_2D} or @code{GL_PROXY_TEXTURE_CUBE_MAP}
 target to try out a resolution and format. The implementation will
@@ -21255,7 +21009,6 @@ during texture filtering and application. Image-based shadowing can be
 generate a boolean result. See @code{glTexParameter} for details on
 texture comparison.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_2D}, @code{GL_PROXY_TEXTURE_2D},
 @code{GL_PROXY_TEXTURE_CUBE_MAP}, @code{GL_TEXTURE_CUBE_MAP_POSITIVE_X},
@@ -21281,8 +21034,8 @@ less than 0 or greater than 2 + @code{GL_MAX_TEXTURE_SIZE}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value
-of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value of
+@code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{internalFormat} is not 1,
 2, 3, 4, or one of the accepted resolution and format symbolic
@@ -21293,7 +21046,7 @@ less than 0 or greater than 2 + @code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if non-power-of-two textures are
 not supported and the @var{width} or @var{height} cannot be represented
-as @math{2^@var{k}+2⁡(@var{border},)} for some integer value of @var{k}.
+as @r{2^@var{k}+2⁡(@var{border},)} for some integer value of @var{k}.
 
 @code{GL_INVALID_VALUE} is generated if @var{border} is not 0 or 1.
 
@@ -21344,11 +21097,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexImage3D target level internalFormat width height depth border format type data
+Specify a three-dimensional texture image.
 
-@defun glTexImage3D 
-@heading specify a three-dimensional texture image
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_3D} or
@@ -21356,8 +21109,7 @@ Specifies the target texture. Must be @code{GL_TEXTURE_3D} or
 
 @item @var{level}
 Specifies the level-of-detail number. Level 0 is the base image level.
-Level @math{@var{n}} is the @math{@var{n}^@var{th}} mipmap reduction
-image.
+Level @r{@var{n}} is the @r{@var{n}^@var{th}} mipmap reduction image.
 
 @item @var{internalFormat}
 Specifies the number of color components in the texture. Must be 1, 2,
@@ -21385,23 +21137,23 @@ Specifies the number of color components in the texture. Must be 1, 2,
 @item @var{width}
 Specifies the width of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{n}+2⁡(@var{border},)} for some integer @math{@var{n}}.
-All implementations support 3D texture images that are at least 16
-texels wide.
+be @r{2^@var{n}+2⁡(@var{border},)} for some integer @r{@var{n}}. All
+implementations support 3D texture images that are at least 16 texels
+wide.
 
 @item @var{height}
 Specifies the height of the texture image including the border if any.
 If the GL version does not support non-power-of-two sizes, this value
-must be @math{2^@var{m}+2⁡(@var{border},)} for some integer
-@math{@var{m}}. All implementations support 3D texture images that are
-at least 16 texels high.
+must be @r{2^@var{m}+2⁡(@var{border},)} for some integer @r{@var{m}}.
+All implementations support 3D texture images that are at least 16
+texels high.
 
 @item @var{depth}
 Specifies the depth of the texture image including the border if any. If
 the GL version does not support non-power-of-two sizes, this value must
-be @math{2^@var{k}+2⁡(@var{border},)} for some integer @math{@var{k}}.
-All implementations support 3D texture images that are at least 16
-texels deep.
+be @r{2^@var{k}+2⁡(@var{border},)} for some integer @r{@var{k}}. All
+implementations support 3D texture images that are at least 16 texels
+deep.
 
 @item @var{border}
 Specifies the width of the border. Must be either 0 or 1.
@@ -21430,7 +21182,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable three-dimensional texturing, call @code{glEnable} and
@@ -21586,14 +21337,13 @@ If the @var{internalFormat} parameter is @code{GL_SRGB},
 or @code{GL_SLUMINANCE8_ALPHA8}, the texture is treated as if the red,
 green, blue, or luminance components are encoded in the sRGB color
 space. Any alpha component is left unchanged. The conversion from the
-sRGB encoded component @math{@var{c}_@var{s}} to a linear component
-@math{@var{c}_@var{l}} is:
+sRGB encoded component @r{@var{c}_@var{s}} to a linear component
+@r{@var{c}_@var{l}} is:
 
-@math{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if
-@var{c}_@var{s}≤0.04045), ((@code{c}_@code{s}+0.055/1.055)^2.4 if
-@var{c}_@var{s}>0.04045)}
+@r{@var{c}_@var{l}=@{(@var{c}_@var{s}/12.92 if @var{c}_@var{s}≤0.04045),
+((@code{c}_@code{s}+0.055/1.055)^2.4 if @var{c}_@var{s}>0.04045)}
 
-Assume @math{@var{c}_@var{s}} is the sRGB component in the range [0,1].
+Assume @r{@var{c}_@var{s}} is the sRGB component in the range [0,1].
 
 Use the @code{GL_PROXY_TEXTURE_3D} target to try out a resolution and
 format. The implementation will update and recompute its best match for
@@ -21606,7 +21356,6 @@ color extracted from @var{data}. A two-component image uses the R and A
 values. A three-component image uses the R, G, and B values. A
 four-component image uses all of the RGBA components.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_3D} or @code{GL_PROXY_TEXTURE_3D}.
 
@@ -21623,8 +21372,8 @@ and @var{format} is not @code{GL_COLOR_INDEX}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value
-of @code{GL_MAX_TEXTURE_SIZE}.
+@r{@var{log}_2⁡(@var{max},)}, where @var{max} is the returned value of
+@code{GL_MAX_TEXTURE_SIZE}.
 
 @code{GL_INVALID_VALUE} is generated if @var{internalFormat} is not 1,
 2, 3, 4, or one of the accepted resolution and format symbolic
@@ -21636,8 +21385,8 @@ constants.
 
 @code{GL_INVALID_VALUE} is generated if non-power-of-two textures are
 not supported and the @var{width}, @var{height}, or @var{depth} cannot
-be represented as @math{2^@var{k}+2⁡(@var{border},)} for some integer
-value of @var{k}.
+be represented as @r{2^@var{k}+2⁡(@var{border},)} for some integer value
+of @var{k}.
 
 @code{GL_INVALID_VALUE} is generated if @var{border} is not 0 or 1.
 
@@ -21677,11 +21426,14 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexParameterf target pname param
+@deftypefunx void glTexParameteri target pname param
+@deftypefunx void glTexParameterfv target pname params
+@deftypefunx void glTexParameteriv target pname params
+Set texture parameters.
 
-@defun glTexParameter 
-@heading set texture parameters
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture, which must be either @code{GL_TEXTURE_1D},
@@ -21704,13 +21456,11 @@ Specifies the value of @var{pname}.
 
 @end table
 
-@heading Description
 Texture mapping is a technique that applies an image onto an object's
 surface as if the image were a decal or cellophane shrink-wrap. The
-image is created in texture space, with an (@math{@var{s}},
-@math{@var{t}}) coordinate system. A texture is a one- or
-two-dimensional image and a set of parameters that determine how samples
-are derived from the image.
+image is created in texture space, with an (@r{@var{s}}, @r{@var{t}})
+coordinate system. A texture is a one- or two-dimensional image and a
+set of parameters that determine how samples are derived from the image.
 
 @code{glTexParameter} assigns the value or values in @var{params} to the
 texture parameter specified as @var{pname}. @var{target} defines the
@@ -21727,19 +21477,18 @@ mipmaps.
 
 A mipmap is an ordered set of arrays representing the same image at
 progressively lower resolutions. If the texture has dimensions
-@math{2^@var{n}×2^@var{m}}, there are
-@math{@var{max}⁡(@var{n},@var{m})+1} mipmaps. The first mipmap is the
-original texture, with dimensions @math{2^@var{n}×2^@var{m}}. Each
-subsequent mipmap has dimensions @math{2^@var{k}-1,×2^@var{l}-1,}, where
-@math{2^@var{k}×2^@var{l}} are the dimensions of the previous mipmap,
-until either @math{@var{k}=0} or @math{@var{l}=0}. At that point,
-subsequent mipmaps have dimension @math{1×2^@var{l}-1,} or
-@math{2^@var{k}-1,×1} until the final mipmap, which has dimension
-@math{1×1}. To define the mipmaps, call @code{glTexImage1D},
+@r{2^@var{n}×2^@var{m}}, there are @r{@var{max}⁡(@var{n},@var{m})+1}
+mipmaps. The first mipmap is the original texture, with dimensions
+@r{2^@var{n}×2^@var{m}}. Each subsequent mipmap has dimensions
+@r{2^@var{k}-1,×2^@var{l}-1,}, where @r{2^@var{k}×2^@var{l}} are the
+dimensions of the previous mipmap, until either @r{@var{k}=0} or
+@r{@var{l}=0}. At that point, subsequent mipmaps have dimension
+@r{1×2^@var{l}-1,} or @r{2^@var{k}-1,×1} until the final mipmap, which
+has dimension @r{1×1}. To define the mipmaps, call @code{glTexImage1D},
 @code{glTexImage2D}, @code{glTexImage3D}, @code{glCopyTexImage1D}, or
 @code{glCopyTexImage2D} with the @var{level} argument indicating the
 order of the mipmaps. Level 0 is the original texture; level
-@math{@var{max}⁡(@var{n},@var{m})} is the final @math{1×1} mipmap.
+@r{@var{max}⁡(@var{n},@var{m})} is the final @r{1×1} mipmap.
 
 @var{params} supplies a function for minifying the texture as one of the
 following:
@@ -21858,29 +21607,27 @@ value. The initial value is 1000.
 
 @table @asis
 @item @code{GL_TEXTURE_WRAP_S}
-Sets the wrap parameter for texture coordinate @math{@var{s}} to either
+Sets the wrap parameter for texture coordinate @r{@var{s}} to either
 @code{GL_CLAMP}, @code{GL_CLAMP_TO_BORDER}, @code{GL_CLAMP_TO_EDGE},
 @code{GL_MIRRORED_REPEAT}, or @code{GL_REPEAT}. @code{GL_CLAMP} causes
-@math{@var{s}} coordinates to be clamped to the range [0,1] and is
-useful for preventing wrapping artifacts when mapping a single image
-onto an object. @code{GL_CLAMP_TO_BORDER} causes the @math{@var{s}}
-coordinate to be clamped to the range
-@math{[-1/2@var{N},,1+1/2@var{N},]}, where @math{@var{N}} is the size of
-the texture in the direction of clamping.@code{GL_CLAMP_TO_EDGE} causes
-@math{@var{s}} coordinates to be clamped to the range
-@math{[1/2@var{N},,1-1/2@var{N},]}, where @math{@var{N}} is the size of
-the texture in the direction of clamping. @code{GL_REPEAT} causes the
-integer part of the @math{@var{s}} coordinate to be ignored; the GL uses
-only the fractional part, thereby creating a repeating pattern.
-@code{GL_MIRRORED_REPEAT} causes the @math{@var{s}} coordinate to be set
-to the fractional part of the texture coordinate if the integer part of
-@math{@var{s}} is even; if the integer part of @math{@var{s}} is odd,
-then the @math{@var{s}} texture coordinate is set to
-@math{1-@var{frac}⁡(@var{s},)}, where @math{@var{frac}⁡(@var{s},)}
-represents the fractional part of @math{@var{s}}. Border texture
-elements are accessed only if wrapping is set to @code{GL_CLAMP} or
-@code{GL_CLAMP_TO_BORDER}. Initially, @code{GL_TEXTURE_WRAP_S} is set to
-@code{GL_REPEAT}.
+@r{@var{s}} coordinates to be clamped to the range [0,1] and is useful
+for preventing wrapping artifacts when mapping a single image onto an
+object. @code{GL_CLAMP_TO_BORDER} causes the @r{@var{s}} coordinate to
+be clamped to the range @r{[-1/2@var{N},,1+1/2@var{N},]}, where
+@r{@var{N}} is the size of the texture in the direction of
+clamping.@code{GL_CLAMP_TO_EDGE} causes @r{@var{s}} coordinates to be
+clamped to the range @r{[1/2@var{N},,1-1/2@var{N},]}, where @r{@var{N}}
+is the size of the texture in the direction of clamping.
+@code{GL_REPEAT} causes the integer part of the @r{@var{s}} coordinate
+to be ignored; the GL uses only the fractional part, thereby creating a
+repeating pattern. @code{GL_MIRRORED_REPEAT} causes the @r{@var{s}}
+coordinate to be set to the fractional part of the texture coordinate if
+the integer part of @r{@var{s}} is even; if the integer part of
+@r{@var{s}} is odd, then the @r{@var{s}} texture coordinate is set to
+@r{1-@var{frac}⁡(@var{s},)}, where @r{@var{frac}⁡(@var{s},)} represents
+the fractional part of @r{@var{s}}. Border texture elements are accessed
+only if wrapping is set to @code{GL_CLAMP} or @code{GL_CLAMP_TO_BORDER}.
+Initially, @code{GL_TEXTURE_WRAP_S} is set to @code{GL_REPEAT}.
 
 @end table
 
@@ -21888,14 +21635,14 @@ elements are accessed only if wrapping is set to @code{GL_CLAMP} or
 
 @table @asis
 @item @code{GL_TEXTURE_WRAP_T}
-Sets the wrap parameter for texture coordinate @math{@var{t}} to either
+Sets the wrap parameter for texture coordinate @r{@var{t}} to either
 @code{GL_CLAMP}, @code{GL_CLAMP_TO_BORDER}, @code{GL_CLAMP_TO_EDGE},
 @code{GL_MIRRORED_REPEAT}, or @code{GL_REPEAT}. See the discussion under
 @code{GL_TEXTURE_WRAP_S}. Initially, @code{GL_TEXTURE_WRAP_T} is set to
 @code{GL_REPEAT}.
 
 @item @code{GL_TEXTURE_WRAP_R}
-Sets the wrap parameter for texture coordinate @math{@var{r}} to either
+Sets the wrap parameter for texture coordinate @r{@var{r}} to either
 @code{GL_CLAMP}, @code{GL_CLAMP_TO_BORDER}, @code{GL_CLAMP_TO_EDGE},
 @code{GL_MIRRORED_REPEAT}, or @code{GL_REPEAT}. See the discussion under
 @code{GL_TEXTURE_WRAP_S}. Initially, @code{GL_TEXTURE_WRAP_R} is set to
@@ -21911,7 +21658,7 @@ the range [0,1] when they are specified. Initially, the border color is
 
 @item @code{GL_TEXTURE_PRIORITY}
 Specifies the texture residence priority of the currently bound texture.
-Permissible values are in the range @math{[0,1]}. See
+Permissible values are in the range @r{[0,1]}. See
 @code{glPrioritizeTextures} and @code{glBindTexture} for more
 information.
 
@@ -21924,11 +21671,11 @@ are:
 @item @code{GL_TEXTURE_COMPARE_FUNC}
 Specifies the comparison operator used when
 @code{GL_TEXTURE_COMPARE_MODE} is set to @code{GL_COMPARE_R_TO_TEXTURE}.
-Permissible values are: where @math{@var{r}} is the current interpolated
-texture coordinate, and @math{@var{D}_@var{t}} is the depth texture
-value sampled from the currently bound depth texture.
-@math{@var{result}} is assigned to the either the luminance, intensity,
-or alpha (as specified by @code{GL_DEPTH_TEXTURE_MODE}.)
+Permissible values are: where @r{@var{r}} is the current interpolated
+texture coordinate, and @r{@var{D}_@var{t}} is the depth texture value
+sampled from the currently bound depth texture. @r{@var{result}} is
+assigned to the either the luminance, intensity, or alpha (as specified
+by @code{GL_DEPTH_TEXTURE_MODE}.)
 
 @item @code{GL_DEPTH_TEXTURE_MODE}
 Specifies a single symbolic constant indicating how depth values should
@@ -21945,7 +21692,7 @@ mipmap is done. The initial value is @code{GL_FALSE}.
 
 @table @asis
 @item @code{GL_COMPARE_R_TO_TEXTURE}
-Specifies that the interpolated and clamped @math{@var{r}} texture
+Specifies that the interpolated and clamped @r{@var{r}} texture
 coordinate should be compared to the value in the currently bound depth
 texture. See the discussion of @code{GL_TEXTURE_COMPARE_FUNC} for
 details of how the comparison is evaluated. The result of the comparison
@@ -21964,38 +21711,37 @@ from the currently bound depth texture.
 @strong{Computed result}
 
 @item @code{GL_LEQUAL}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}<=@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}<=@var{D}_@var{t},),
 (@var{r}>@var{D}_@var{t},),}
 
 @item @code{GL_GEQUAL}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}>=@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}>=@var{D}_@var{t},),
 (@var{r}<@var{D}_@var{t},),}
 
 @item @code{GL_LESS}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}<@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}<@var{D}_@var{t},),
 (@var{r}>=@var{D}_@var{t},),}
 
 @item @code{GL_GREATER}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}>@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}>@var{D}_@var{t},),
 (@var{r}<=@var{D}_@var{t},),}
 
 @item @code{GL_EQUAL}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}=@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}=@var{D}_@var{t},),
 (@var{r}≠@var{D}_@var{t},),}
 
 @item @code{GL_NOTEQUAL}
-@math{@var{result}=@{(1.0), (0.0)⁢ (@var{r}≠@var{D}_@var{t},),
+@r{@var{result}=@{(1.0), (0.0)⁢ (@var{r}≠@var{D}_@var{t},),
 (@var{r}=@var{D}_@var{t},),}
 
 @item @code{GL_ALWAYS}
-@math{@var{result}=@code{1.0}}
+@r{@var{result}=@code{1.0}}
 
 @item @code{GL_NEVER}
-@math{@var{result}=@code{0.0}}
+@r{@var{result}=@code{0.0}}
 
 @end table
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
 not one of the accepted defined values.
 
@@ -22006,11 +21752,11 @@ defined constant value (based on the value of @var{pname}) and does not.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexSubImage1D target level xoffset width format type data
+Specify a one-dimensional texture subimage.
 
-@defun glTexSubImage1D 
-@heading specify a one-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_1D}.
@@ -22049,7 +21795,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable or disable
 one-dimensional texturing, call @code{glEnable} and @code{glDisable}
@@ -22058,7 +21803,7 @@ with argument @code{GL_TEXTURE_1D}.
 @code{glTexSubImage1D} redefines a contiguous subregion of an existing
 one-dimensional texture image. The texels referenced by @var{data}
 replace the portion of the existing texture array with x indices
-@var{xoffset} and @math{@var{xoffset}+@var{width}-1}, inclusive. This
+@var{xoffset} and @r{@var{xoffset}+@var{width}-1}, inclusive. This
 region may not include any texels outside the range of the texture array
 as it was originally specified. It is not an error to specify a
 subtexture with width of 0, but such a specification has no effect.
@@ -22068,7 +21813,6 @@ If a non-zero named buffer object is bound to the
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
 allowable values.
 
@@ -22084,14 +21828,14 @@ and @var{format} is not @code{GL_COLOR_INDEX}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2}@var{max}, where @var{max} is the returned value of
+@r{@var{log}_2}@var{max}, where @var{max} is the returned value of
 @code{GL_MAX_TEXTURE_SIZE}.
 
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-or if @math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)}, where
-@math{@var{w}} is the @code{GL_TEXTURE_WIDTH}, and @math{@var{b}} is the
-width of the @code{GL_TEXTURE_BORDER} of the texture image being
-modified. Note that @math{@var{w}} includes twice the border width.
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}}, or
+if @r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)}, where
+@r{@var{w}} is the @code{GL_TEXTURE_WIDTH}, and @r{@var{b}} is the width
+of the @code{GL_TEXTURE_BORDER} of the texture image being modified.
+Note that @r{@var{w}} includes twice the border width.
 
 @code{GL_INVALID_VALUE} is generated if @var{width} is less than 0.
 
@@ -22129,11 +21873,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexSubImage2D target level xoffset yoffset width height format type data
+Specify a two-dimensional texture subimage.
 
-@defun glTexSubImage2D 
-@heading specify a two-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_2D},
@@ -22184,7 +21928,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable two-dimensional texturing, call @code{glEnable} and
@@ -22193,19 +21936,18 @@ disable two-dimensional texturing, call @code{glEnable} and
 @code{glTexSubImage2D} redefines a contiguous subregion of an existing
 two-dimensional texture image. The texels referenced by @var{data}
 replace the portion of the existing texture array with x indices
-@var{xoffset} and @math{@var{xoffset}+@var{width}-1}, inclusive, and y
-indices @var{yoffset} and @math{@var{yoffset}+@var{height}-1},
-inclusive. This region may not include any texels outside the range of
-the texture array as it was originally specified. It is not an error to
-specify a subtexture with zero width or height, but such a specification
-has no effect.
+@var{xoffset} and @r{@var{xoffset}+@var{width}-1}, inclusive, and y
+indices @var{yoffset} and @r{@var{yoffset}+@var{height}-1}, inclusive.
+This region may not include any texels outside the range of the texture
+array as it was originally specified. It is not an error to specify a
+subtexture with zero width or height, but such a specification has no
+effect.
 
 If a non-zero named buffer object is bound to the
 @code{GL_PIXEL_UNPACK_BUFFER} target (see @code{glBindBuffer}) while a
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if @var{target} is not
 @code{GL_TEXTURE_2D}, @code{GL_TEXTURE_CUBE_MAP_POSITIVE_X},
 @code{GL_TEXTURE_CUBE_MAP_NEGATIVE_X},
@@ -22226,17 +21968,17 @@ and @var{format} is not @code{GL_COLOR_INDEX}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2}@var{max}, where @var{max} is the returned value of
+@r{@var{log}_2}@var{max}, where @var{max} is the returned value of
 @code{GL_MAX_TEXTURE_SIZE}.
 
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-@math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
-@math{@var{yoffset}<-@var{b}}, or
-@math{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, where
-@math{@var{w}} is the @code{GL_TEXTURE_WIDTH}, @math{@var{h}} is the
-@code{GL_TEXTURE_HEIGHT}, and @math{@var{b}} is the border width of the
-texture image being modified. Note that @math{@var{w}} and
-@math{@var{h}} include twice the border width.
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}},
+@r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
+@r{@var{yoffset}<-@var{b}}, or
+@r{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, where @r{@var{w}}
+is the @code{GL_TEXTURE_WIDTH}, @r{@var{h}} is the
+@code{GL_TEXTURE_HEIGHT}, and @r{@var{b}} is the border width of the
+texture image being modified. Note that @r{@var{w}} and @r{@var{h}}
+include twice the border width.
 
 @code{GL_INVALID_VALUE} is generated if @var{width} or @var{height} is
 less than 0.
@@ -22275,11 +22017,11 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTexSubImage3D target level xoffset yoffset zoffset width height depth format type data
+Specify a three-dimensional texture subimage.
 
-@defun glTexSubImage3D 
-@heading specify a three-dimensional texture subimage
-@heading Parameters
 @table @asis
 @item @var{target}
 Specifies the target texture. Must be @code{GL_TEXTURE_3D}.
@@ -22330,7 +22072,6 @@ Specifies a pointer to the image data in memory.
 
 @end table
 
-@heading Description
 Texturing maps a portion of a specified texture image onto each
 graphical primitive for which texturing is enabled. To enable and
 disable three-dimensional texturing, call @code{glEnable} and
@@ -22339,20 +22080,19 @@ disable three-dimensional texturing, call @code{glEnable} and
 @code{glTexSubImage3D} redefines a contiguous subregion of an existing
 three-dimensional texture image. The texels referenced by @var{data}
 replace the portion of the existing texture array with x indices
-@var{xoffset} and @math{@var{xoffset}+@var{width}-1}, inclusive, y
-indices @var{yoffset} and @math{@var{yoffset}+@var{height}-1},
-inclusive, and z indices @var{zoffset} and
-@math{@var{zoffset}+@var{depth}-1}, inclusive. This region may not
-include any texels outside the range of the texture array as it was
-originally specified. It is not an error to specify a subtexture with
-zero width, height, or depth but such a specification has no effect.
+@var{xoffset} and @r{@var{xoffset}+@var{width}-1}, inclusive, y indices
+@var{yoffset} and @r{@var{yoffset}+@var{height}-1}, inclusive, and z
+indices @var{zoffset} and @r{@var{zoffset}+@var{depth}-1}, inclusive.
+This region may not include any texels outside the range of the texture
+array as it was originally specified. It is not an error to specify a
+subtexture with zero width, height, or depth but such a specification
+has no effect.
 
 If a non-zero named buffer object is bound to the
 @code{GL_PIXEL_UNPACK_BUFFER} target (see @code{glBindBuffer}) while a
 texture image is specified, @var{data} is treated as a byte offset into
 the buffer object's data store.
 
-@heading Errors
 @code{GL_INVALID_ENUM} is generated if /@var{target} is not
 @code{GL_TEXTURE_3D}.
 
@@ -22368,20 +22108,20 @@ and @var{format} is not @code{GL_COLOR_INDEX}.
 @code{GL_INVALID_VALUE} is generated if @var{level} is less than 0.
 
 @code{GL_INVALID_VALUE} may be generated if @var{level} is greater than
-@math{@var{log}_2}@var{max}, where @var{max} is the returned value of
+@r{@var{log}_2}@var{max}, where @var{max} is the returned value of
 @code{GL_MAX_TEXTURE_SIZE}.
 
-@code{GL_INVALID_VALUE} is generated if @math{@var{xoffset}<-@var{b}},
-@math{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
-@math{@var{yoffset}<-@var{b}}, or
-@math{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, or
-@math{@var{zoffset}<-@var{b}}, or
-@math{(@var{zoffset}+@var{depth},)>(@var{d}-@var{b},)}, where
-@math{@var{w}} is the @code{GL_TEXTURE_WIDTH}, @math{@var{h}} is the
-@code{GL_TEXTURE_HEIGHT}, @math{@var{d}} is the @code{GL_TEXTURE_DEPTH}
-and @math{@var{b}} is the border width of the texture image being
-modified. Note that @math{@var{w}}, @math{@var{h}}, and @math{@var{d}}
-include twice the border width.
+@code{GL_INVALID_VALUE} is generated if @r{@var{xoffset}<-@var{b}},
+@r{(@var{xoffset}+@var{width},)>(@var{w}-@var{b},)},
+@r{@var{yoffset}<-@var{b}}, or
+@r{(@var{yoffset}+@var{height},)>(@var{h}-@var{b},)}, or
+@r{@var{zoffset}<-@var{b}}, or
+@r{(@var{zoffset}+@var{depth},)>(@var{d}-@var{b},)}, where @r{@var{w}}
+is the @code{GL_TEXTURE_WIDTH}, @r{@var{h}} is the
+@code{GL_TEXTURE_HEIGHT}, @r{@var{d}} is the @code{GL_TEXTURE_DEPTH} and
+@r{@var{b}} is the border width of the texture image being modified.
+Note that @r{@var{w}}, @r{@var{h}}, and @r{@var{d}} include twice the
+border width.
 
 @code{GL_INVALID_VALUE} is generated if @var{width}, @var{height}, or
 @var{depth} is less than 0.
@@ -22420,11 +22160,12 @@ memory a datum indicated by @var{type}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glTranslated x y z
+@deftypefunx void glTranslatef x y z
+Multiply the current matrix by a translation matrix.
 
-@defun glTranslate 
-@heading multiply the current matrix by a translation matrix
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -22434,14 +22175,13 @@ vector.
 
 @end table
 
-@heading Description
 @code{glTranslate} produces a translation by
-@math{(@var{x},@var{y}@var{z})}. The current matrix (see
+@r{(@var{x},@var{y}@var{z})}. The current matrix (see
 @code{glMatrixMode}) is multiplied by this translation matrix, with the
 product replacing the current matrix, as if @code{glMultMatrix} were
 called with the following matrix for its argument:
 
-@math{((1 0 0 @var{x}), (0 1 0 @var{y}), (0 0 1 @var{z}), (0 0 0 1),)}
+@r{((1 0 0 @var{x}), (0 1 0 @var{y}), (0 0 1 @var{z}), (0 0 0 1),)}
 
 
 
@@ -22452,16 +22192,39 @@ If the matrix mode is either @code{GL_MODELVIEW} or
 Use @code{glPushMatrix} and @code{glPopMatrix} to save and restore the
 untranslated coordinate system.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glTranslate} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glUniform1f location v0
+@deftypefunx void glUniform2f location v0 v1
+@deftypefunx void glUniform3f location v0 v1 v2
+@deftypefunx void glUniform4f location v0 v1 v2 v3
+@deftypefunx void glUniform1i location v0
+@deftypefunx void glUniform2i location v0 v1
+@deftypefunx void glUniform3i location v0 v1 v2
+@deftypefunx void glUniform4i location v0 v1 v2 v3
+@deftypefunx void glUniform1fv location count value
+@deftypefunx void glUniform2fv location count value
+@deftypefunx void glUniform3fv location count value
+@deftypefunx void glUniform4fv location count value
+@deftypefunx void glUniform1iv location count value
+@deftypefunx void glUniform2iv location count value
+@deftypefunx void glUniform3iv location count value
+@deftypefunx void glUniform4iv location count value
+@deftypefunx void glUniformMatrix2fv location count transpose value
+@deftypefunx void glUniformMatrix3fv location count transpose value
+@deftypefunx void glUniformMatrix4fv location count transpose value
+@deftypefunx void glUniformMatrix2x3fv location count transpose value
+@deftypefunx void glUniformMatrix3x2fv location count transpose value
+@deftypefunx void glUniformMatrix2x4fv location count transpose value
+@deftypefunx void glUniformMatrix4x2fv location count transpose value
+@deftypefunx void glUniformMatrix3x4fv location count transpose value
+@deftypefunx void glUniformMatrix4x3fv location count transpose value
+Specify the value of a uniform variable for the current program object.
 
-@defun glUniform1f 
-@heading Specify the value of a uniform variable for the current program object
-@heading Parameters
 @table @asis
 @item @var{location}
 Specifies the location of the uniform variable to be modified.
@@ -22471,7 +22234,6 @@ Specifies the new values to be used for the specified uniform variable.
 
 @end table
 
-@heading Description
 @code{glUniform} modifies the value of a uniform variable or a uniform
 variable array. The location of the uniform variable to be modified is
 specified by @var{location}, which should be a value returned by
@@ -22545,7 +22307,6 @@ matrices to be passed. A count of 1 should be used if modifying the
 value of a single matrix, and a count greater than 1 can be used to
 modify an array of matrices.
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if there is no current program
 object.
 
@@ -22575,11 +22336,11 @@ command other than @code{glUniform1i} and @code{glUniform1iv}.
 between the execution of @code{glBegin} and the corresponding execution
 of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glUseProgram program
+Installs a program object as part of current rendering state.
 
-@defun glUseProgram 
-@heading Installs a program object as part of current rendering state
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the handle of the program object whose executables are to be
@@ -22587,7 +22348,6 @@ used as part of current rendering state.
 
 @end table
 
-@heading Description
 @code{glUseProgram} installs the program object specified by
 @var{program} as part of current rendering state. One or more
 executables are created in a program object by successfully attaching
@@ -22694,7 +22454,6 @@ If @var{program} is 0, the programmable processors will be disabled, and
 fixed functionality will be used for both vertex and fragment
 processing.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is neither 0 nor a
 value generated by OpenGL.
 
@@ -22708,18 +22467,17 @@ made part of current state.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glValidateProgram program
+Validates a program object.
 
-@defun glValidateProgram 
-@heading Validates a program object
-@heading Parameters
 @table @asis
 @item @var{program}
 Specifies the handle of the program object to be validated.
 
 @end table
 
-@heading Description
 @code{glValidateProgram} checks to see whether the executables contained
 in @var{program} can execute given the current OpenGL state. The
 information generated by the validation process will be stored in
@@ -22744,7 +22502,6 @@ implementation dependent; therefore, an application should not expect
 different OpenGL implementations to produce identical information
 strings.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{program} is not a value
 generated by OpenGL.
 
@@ -22755,11 +22512,11 @@ program object.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glVertexAttribPointer index size type normalized stride pointer
+Define an array of generic vertex attribute data.
 
-@defun glVertexAttribPointer 
-@heading define an array of generic vertex attribute data
-@heading Parameters
 @table @asis
 @item @var{index}
 Specifies the index of the generic vertex attribute to be modified.
@@ -22791,7 +22548,6 @@ attribute in the array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glVertexAttribPointer} specifies the location and data format of
 the array of generic vertex attributes at index @var{index} to use when
 rendering. @var{size} specifies the number of components per attribute
@@ -22825,7 +22581,6 @@ when @code{glArrayElement}, @code{glDrawArrays},
 @code{glMultiDrawArrays}, @code{glDrawElements},
 @code{glMultiDrawElements}, or @code{glDrawRangeElements} is called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
@@ -22836,11 +22591,46 @@ value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glVertexAttrib1f index v0
+@deftypefunx void glVertexAttrib1s index v0
+@deftypefunx void glVertexAttrib1d index v0
+@deftypefunx void glVertexAttrib2f index v0 v1
+@deftypefunx void glVertexAttrib2s index v0 v1
+@deftypefunx void glVertexAttrib2d index v0 v1
+@deftypefunx void glVertexAttrib3f index v0 v1 v2
+@deftypefunx void glVertexAttrib3s index v0 v1 v2
+@deftypefunx void glVertexAttrib3d index v0 v1 v2
+@deftypefunx void glVertexAttrib4f index v0 v1 v2 v3
+@deftypefunx void glVertexAttrib4s index v0 v1 v2 v3
+@deftypefunx void glVertexAttrib4d index v0 v1 v2 v3
+@deftypefunx void glVertexAttrib4Nub index v0 v1 v2 v3
+@deftypefunx void glVertexAttrib1fv index v
+@deftypefunx void glVertexAttrib1sv index v
+@deftypefunx void glVertexAttrib1dv index v
+@deftypefunx void glVertexAttrib2fv index v
+@deftypefunx void glVertexAttrib2sv index v
+@deftypefunx void glVertexAttrib2dv index v
+@deftypefunx void glVertexAttrib3fv index v
+@deftypefunx void glVertexAttrib3sv index v
+@deftypefunx void glVertexAttrib3dv index v
+@deftypefunx void glVertexAttrib4fv index v
+@deftypefunx void glVertexAttrib4sv index v
+@deftypefunx void glVertexAttrib4dv index v
+@deftypefunx void glVertexAttrib4iv index v
+@deftypefunx void glVertexAttrib4bv index v
+@deftypefunx void glVertexAttrib4ubv index v
+@deftypefunx void glVertexAttrib4usv index v
+@deftypefunx void glVertexAttrib4uiv index v
+@deftypefunx void glVertexAttrib4Nbv index v
+@deftypefunx void glVertexAttrib4Nsv index v
+@deftypefunx void glVertexAttrib4Niv index v
+@deftypefunx void glVertexAttrib4Nubv index v
+@deftypefunx void glVertexAttrib4Nusv index v
+@deftypefunx void glVertexAttrib4Nuiv index v
+Specifies the value of a generic vertex attribute.
 
-@defun glVertexAttrib 
-@heading Specifies the value of a generic vertex attribute
-@heading Parameters
 @table @asis
 @item @var{index}
 Specifies the index of the generic vertex attribute to be modified.
@@ -22850,7 +22640,6 @@ Specifies the new values to be used for the specified vertex attribute.
 
 @end table
 
-@heading Description
 OpenGL defines a number of standard vertex attributes that applications
 can modify with standard API entry points (color, normal, texture
 coordinates, etc.). The @code{glVertexAttrib} family of entry points
@@ -22927,15 +22716,14 @@ vertex attribute with this property; calls to set other standard vertex
 attributes can be freely mixed with calls to set any of the other
 generic vertex attributes.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{index} is greater than or
 equal to @code{GL_MAX_VERTEX_ATTRIBS}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glVertexPointer size type stride pointer
+Define an array of vertex data.
 
-@defun glVertexPointer 
-@heading define an array of vertex data
-@heading Parameters
 @table @asis
 @item @var{size}
 Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The
@@ -22957,7 +22745,6 @@ array. The initial value is 0.
 
 @end table
 
-@heading Description
 @code{glVertexPointer} specifies the location and data format of an
 array of vertex coordinates to use when rendering. @var{size} specifies
 the number of coordinates per vertex, and must be 2, 3, or 4. @var{type}
@@ -22985,7 +22772,6 @@ and @code{glDisableClientState} with the argument
 @code{glDrawElements}, @code{glMultiDrawElements}, or
 @code{glDrawRangeElements} is called.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if @var{size} is not 2, 3, or 4.
 
 @code{GL_INVALID_ENUM} is generated if @var{type} is not an accepted
@@ -22993,11 +22779,34 @@ value.
 
 @code{GL_INVALID_VALUE} is generated if @var{stride} is negative.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glVertex2s x y
+@deftypefunx void glVertex2i x y
+@deftypefunx void glVertex2f x y
+@deftypefunx void glVertex2d x y
+@deftypefunx void glVertex3s x y z
+@deftypefunx void glVertex3i x y z
+@deftypefunx void glVertex3f x y z
+@deftypefunx void glVertex3d x y z
+@deftypefunx void glVertex4s x y z w
+@deftypefunx void glVertex4i x y z w
+@deftypefunx void glVertex4f x y z w
+@deftypefunx void glVertex4d x y z w
+@deftypefunx void glVertex2sv v
+@deftypefunx void glVertex2iv v
+@deftypefunx void glVertex2fv v
+@deftypefunx void glVertex2dv v
+@deftypefunx void glVertex3sv v
+@deftypefunx void glVertex3iv v
+@deftypefunx void glVertex3fv v
+@deftypefunx void glVertex3dv v
+@deftypefunx void glVertex4sv v
+@deftypefunx void glVertex4iv v
+@deftypefunx void glVertex4fv v
+@deftypefunx void glVertex4dv v
+Specify a vertex.
 
-@defun glVertex 
-@heading specify a vertex
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -23008,22 +22817,20 @@ Not all parameters are present in all forms of the command.
 
 @end table
 
-@heading Description
 @code{glVertex} commands are used within @code{glBegin}/@code{glEnd}
 pairs to specify point, line, and polygon vertices. The current color,
 normal, texture coordinates, and fog coordinate are associated with the
 vertex when @code{glVertex} is called.
 
-When only @math{@var{x}} and @math{@var{y}} are specified,
-@math{@var{z}} defaults to 0 and @math{@var{w}} defaults to 1. When
-@math{@var{x}}, @math{@var{y}}, and @math{@var{z}} are specified,
-@math{@var{w}} defaults to 1.
+When only @r{@var{x}} and @r{@var{y}} are specified, @r{@var{z}}
+defaults to 0 and @r{@var{w}} defaults to 1. When @r{@var{x}},
+@r{@var{y}}, and @r{@var{z}} are specified, @r{@var{w}} defaults to 1.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glViewport x y width height
+Set the viewport.
 
-@defun glViewport 
-@heading set the viewport
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
@@ -23038,22 +22845,20 @@ dimensions of that window.
 
 @end table
 
-@heading Description
-@code{glViewport} specifies the affine transformation of @math{@var{x}}
-and @math{@var{y}} from normalized device coordinates to window
-coordinates. Let @math{(@var{x}_@var{nd},@var{y}_@var{nd})} be
-normalized device coordinates. Then the window coordinates
-@math{(@var{x}_@var{w},@var{y}_@var{w})} are computed as follows:
+@code{glViewport} specifies the affine transformation of @r{@var{x}} and
+@r{@var{y}} from normalized device coordinates to window coordinates.
+Let @r{(@var{x}_@var{nd},@var{y}_@var{nd})} be normalized device
+coordinates. Then the window coordinates
+@r{(@var{x}_@var{w},@var{y}_@var{w})} are computed as follows:
 
-@math{@var{x}_@var{w}=(@var{x}_@var{nd}+1,)⁢(@var{width}/2,)+@var{x}}
+@r{@var{x}_@var{w}=(@var{x}_@var{nd}+1,)⁢(@var{width}/2,)+@var{x}}
 
-@math{@var{y}_@var{w}=(@var{y}_@var{nd}+1,)⁢(@var{height}/2,)+@var{y}}
+@r{@var{y}_@var{w}=(@var{y}_@var{nd}+1,)⁢(@var{height}/2,)+@var{y}}
 
 Viewport width and height are silently clamped to a range that depends
 on the implementation. To query this range, call @code{glGet} with
 argument @code{GL_MAX_VIEWPORT_DIMS}.
 
-@heading Errors
 @code{GL_INVALID_VALUE} is generated if either @var{width} or
 @var{height} is negative.
 
@@ -23061,47 +22866,60 @@ argument @code{GL_MAX_VIEWPORT_DIMS}.
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
+
+@deftypefun void glWindowPos2s x y
+@deftypefunx void glWindowPos2i x y
+@deftypefunx void glWindowPos2f x y
+@deftypefunx void glWindowPos2d x y
+@deftypefunx void glWindowPos3s x y z
+@deftypefunx void glWindowPos3i x y z
+@deftypefunx void glWindowPos3f x y z
+@deftypefunx void glWindowPos3d x y z
+@deftypefunx void glWindowPos2sv v
+@deftypefunx void glWindowPos2iv v
+@deftypefunx void glWindowPos2fv v
+@deftypefunx void glWindowPos2dv v
+@deftypefunx void glWindowPos3sv v
+@deftypefunx void glWindowPos3iv v
+@deftypefunx void glWindowPos3fv v
+@deftypefunx void glWindowPos3dv v
+Specify the raster position in window coordinates for pixel operations.
 
-@defun glWindowPos 
-@heading specify the raster position in window coordinates for pixel operations
-@heading Parameters
 @table @asis
 @item @var{x}
 @itemx @var{y}
 @itemx @var{z}
-Specify the @math{@var{x}}, @math{@var{y}}, @math{@var{z}} coordinates
-for the raster position.
+Specify the @r{@var{x}}, @r{@var{y}}, @r{@var{z}} coordinates for the
+raster position.
 
 @end table
 
-@heading Description
 The GL maintains a 3D position in window coordinates. This position,
 called the raster position, is used to position pixel and bitmap write
 operations. It is maintained with subpixel accuracy. See
 @code{glBitmap}, @code{glDrawPixels}, and @code{glCopyPixels}.
 
-@code{glWindowPos2} specifies the @math{@var{x}} and @math{@var{y}}
-coordinates, while @math{@var{z}} is implicitly set to 0.
-@code{glWindowPos3} specifies all three coordinates. The @math{@var{w}}
+@code{glWindowPos2} specifies the @r{@var{x}} and @r{@var{y}}
+coordinates, while @r{@var{z}} is implicitly set to 0.
+@code{glWindowPos3} specifies all three coordinates. The @r{@var{w}}
 coordinate of the current raster position is always set to 1.0.
 
-@code{glWindowPos} directly updates the @math{@var{x}} and
-@math{@var{y}} coordinates of the current raster position with the
-values specified. That is, the values are neither transformed by the
-current modelview and projection matrices, nor by the viewport-to-window
-transform. The @math{@var{z}} coordinate of the current raster position
-is updated in the following manner:
+@code{glWindowPos} directly updates the @r{@var{x}} and @r{@var{y}}
+coordinates of the current raster position with the values specified.
+That is, the values are neither transformed by the current modelview and
+projection matrices, nor by the viewport-to-window transform. The
+@r{@var{z}} coordinate of the current raster position is updated in the
+following manner:
 
-@math{@var{z}=@{(@var{n}), (@var{f}),
+@r{@var{z}=@{(@var{n}), (@var{f}),
 (@var{n}+@var{z}×(@var{f}-@var{n},),)⁢(@var{if}⁢@var{z}<=0),
 (@var{if}⁢@var{z}>=1), (@code{otherwise},),}
 
 
 
-where @math{@var{n}} is @code{GL_DEPTH_RANGE}'s near value, and
-@math{@var{f}} is @code{GL_DEPTH_RANGE}'s far value. See
-@code{glDepthRange}.
+where @r{@var{n}} is @code{GL_DEPTH_RANGE}'s near value, and @r{@var{f}}
+is @code{GL_DEPTH_RANGE}'s far value. See @code{glDepthRange}.
 
 The specified coordinates are not clip-tested, causing the raster
 position to always be valid.
@@ -23126,12 +22944,11 @@ matrix and the texture generation functions (see @code{glTexGen}). The
 
 
 
-@heading Errors
 @code{GL_INVALID_OPERATION} is generated if @code{glWindowPos} is
 executed between the execution of @code{glBegin} and the corresponding
 execution of @code{glEnd}.
 
-@end defun
+@end deftypefun
 
 
 @c %end of fragment