@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
@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
@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
@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,
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:
@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.
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.
@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
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.
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.
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
@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
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.
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.
@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.
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
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
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.
@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
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.
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
@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.
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}.
@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
@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
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.
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
@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
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}.
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
@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},
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.
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
@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}
@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.
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}
@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
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.
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}
@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
@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
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
-@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},
@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
@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
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
-@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}.
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.
@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
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]}.
@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
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.
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
@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
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
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.
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
@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
@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}.
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
@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
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}.
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.
@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
@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
@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
@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
@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
@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}
@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}
@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
@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
@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
@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
@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}.
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}.
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
@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
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.
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}
@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
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
@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
@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.
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
@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
@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
@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},
@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.
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.
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
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},
@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
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.
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},
@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
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
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
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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
allowable values.
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}
@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
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}.
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.
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
@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.
@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
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},
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},
@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.
@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
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},
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
@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.
@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
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},
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}.
@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
@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.
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},
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},
@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
@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
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},
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}.
@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
@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.
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},
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}.
@end table
-@heading Description
@code{glConvolutionFilter1D} builds a one-dimensional convolution filter
kernel from an array of pixels.
@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}.
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}.
@end table
-@heading Description
@code{glConvolutionFilter2D} builds a two-dimensional convolution filter
kernel from an array of pixels.
@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}.
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
@end table
-@heading Description
@code{glConvolutionParameter} sets the value of a convolution parameter.
@var{target} selects the convolution filter to be affected:
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
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},
@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.
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},
@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}).
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
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.
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}.
@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}).
@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}.
@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}.
@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}).
@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}.
@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}
@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
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:
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
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
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
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.
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}.
@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
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.
@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.
@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},
@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
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},
@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.
@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}.
@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
@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}.
@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},
@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
@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},
@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}
@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
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
@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}.
@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
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
@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}
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
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
@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
@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.
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.
@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
@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.
@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
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.
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.
@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
@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
@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.
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.
@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
@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
@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
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.
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}
@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.
@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
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.
@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
@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.
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
@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
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.
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}.
@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
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.
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
@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:
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.
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
@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
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.
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}
@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}
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
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
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
@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.
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
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
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
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.
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
@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},
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.
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
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
@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
@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
@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
@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
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{cap} is not an accepted
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
@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
@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}.
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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{cap} is not one of the
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
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
@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
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:
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();
@}
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
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.
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
@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
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.
@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
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.
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
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
@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
@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},
@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
@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:
@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.
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
@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
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.
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}
@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
-@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}.
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.
@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
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.
@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
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.
@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
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.
@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
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.
@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.
@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}
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.
@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.
@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
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.
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.
@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
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.
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
@end table
-@heading Description
@code{glGetBufferParameteriv} returns in @var{data} a selected parameter
of the buffer object specified by @var{target}.
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} or @var{value} is
not an accepted value.
@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
@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
@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.
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
@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
@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}.
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
@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.
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},
@end table
-@heading Description
Returns parameters specific to color table @var{target}.
When @var{pname} is set to @code{GL_COLOR_TABLE_SCALE} or
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
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},
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
allowable values.
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},
@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.
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.
@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
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
allowable values.
@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
@end table
-@heading Description
@code{glGetConvolutionParameter} retrieves convolution parameters.
@var{target} determines which convolution filter is queried. @var{pname}
determines which parameter is returned:
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
allowable values.
@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
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}.
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
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}.
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not
@code{GL_HISTOGRAM}.
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
@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:
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).
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).
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).
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{light} or @var{pname} 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 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
@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
@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.
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}
@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:
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)
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).
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).
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).
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{face} or @var{pname} 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 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}.
@end table
-@heading Description
@code{glGetMinmaxParameter} retrieves parameters for the current minmax
table by setting @var{pname} to one of the following values:
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not
@code{GL_MINMAX}.
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}.
@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
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}.
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
@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
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.
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
@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
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.
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.
@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
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.
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.
@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:
@end table
-@heading Errors
@code{GL_INVALID_VALUE} is generated if @var{program} is not a value
generated by OpenGL.
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}.
@end table
-@heading Description
@code{glGetQueryiv} returns in @var{params} a selected parameter of the
query object target specified by @var{target}.
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} 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 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.
@end table
-@heading Description
@code{glGetQueryObject} returns in @var{params} a selected parameter of
the query object specified by @var{id}.
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{pname} 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 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}.
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not
@code{GL_SEPARABLE_2D}.
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.
@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
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.
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.
@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
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.
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.
@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:
@end table
-@heading Errors
@code{GL_INVALID_VALUE} is generated if @var{shader} is not a value
generated by OpenGL.
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},
@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:
All strings are null-terminated.
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{name} 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 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},
@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.
@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).
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} 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 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},
@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},
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{coord} or @var{pname} 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 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},
@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
@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}),
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},
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
@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.
@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},
@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
@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},
@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},
@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
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} or @var{pname} is
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.
@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
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.
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.
@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
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.
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.
@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
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.
@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
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}.
@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
@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
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.
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}
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}
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}
@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}
@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}.
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}
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}.
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}
@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}.
@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}.
@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}.
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}.
@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}
@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}
@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.
-@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.
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if either @var{target} or @var{mode}
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
@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
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.
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one of the
allowable values.
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
@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
@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
@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.
@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.
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
@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},
@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
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
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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{cap} is not an accepted
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.
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,
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,
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.
@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:
@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).
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.
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}.
@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.
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:
@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).
@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
@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
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
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
@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}
@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
@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
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
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
@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.
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
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.
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}
@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
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,]),
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.
@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.
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
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,]),
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
@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.
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.
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.
@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
@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
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
@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
@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
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.
@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.
@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}
@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
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
@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
@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
@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.
@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
@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,
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}.
@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},
@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},
@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
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.
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
@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
@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).
@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).
@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).
@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).
@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.
@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
@end table
-@heading Description
@code{glMatrixMode} sets the current matrix mode. @var{mode} can assume
one of four values:
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.
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
@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
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{target} is not one 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
@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
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.
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
@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,
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.
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.
@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.
@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.
@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.
@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
@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
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
@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
@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
@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}
@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}.
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
@end table
-@heading Description
Feedback is a GL render mode. The mode is selected by calling
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:
@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},
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.
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{map} 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 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
@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}),
@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
@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.
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},
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
@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
@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.
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},
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
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
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
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.
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.
@end table
-@heading Description
@code{glPixelTransfer} sets pixel transfer modes that affect the
operation of subsequent @code{glCopyPixels}, @code{glCopyTexImage1D},
@code{glCopyTexImage2D}, @code{glCopyTexSubImage1D},
@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
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
@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
@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
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
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
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
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.
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.
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},
@end table
-@heading Description
The following values are accepted for @var{pname}:
@table @asis
@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}
@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.
-@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
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.
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
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.
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
@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
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if either @var{face} or @var{mode}
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
@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.
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
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.
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.
@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}.
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
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
@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
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.
@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
@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}
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
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.
@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.
@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.
@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
@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},
@end table
-@heading Description
@code{glReadBuffer} specifies a color buffer as the source for
subsequent @code{glReadPixels}, @code{glCopyTexImage1D},
@code{glCopyTexImage2D}, @code{glCopyTexSubImage1D},
@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.
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}
@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
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:
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}
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
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
@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
@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
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.
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}
@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
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:
@end table
-@heading Description
@code{glRenderMode} sets the rasterization mode. It takes one argument,
@var{mode}, which can assume one of three predefined values:
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.
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}.
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}.
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.
@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}
-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).
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
@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,
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}
@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.
@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
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}
@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
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.
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.
@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
@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
@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}
@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.
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}.
@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
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
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
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}.
@end table
-@heading Description
@code{glSeparableFilter2D} builds a two-dimensional separable
convolution filter kernel from two arrays of pixels.
@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}.
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
@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
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
@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}.
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
@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
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.
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
@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
@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
@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
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}:
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{func} is not one of the
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:
@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
@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
@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
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}:
@end table
-@heading Errors
@code{GL_INVALID_ENUM} is generated if @var{func} is not one of the
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.
@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
@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
@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.
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
@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
@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
@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}.
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
@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
@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
@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.
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,
@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,
@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
@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}
@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
-@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},
@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
@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
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.
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
@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},
@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
@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:
@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:
@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
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
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},
@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
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.
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
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
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
@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.
@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
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
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}.
@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
@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.
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},
@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.
@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
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
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},
@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
@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.
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
@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,
@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.
@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
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
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}.
@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
@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.
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},
@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
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:
@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
@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
@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.
@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
@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
@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.
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}.
@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}
@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.
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.
@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.
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},
@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
@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},
@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.
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}.
@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
@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}.
@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.
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}
@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),)}
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.
@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
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.
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
@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
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.
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
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.
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.
@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
@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}.
@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.
@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
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
@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}
@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
@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}
@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}
@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.
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.
-@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