Opentk/Source/Bind/Specifications/Docs/glGet.xml
Stefanos A 60f971ffed Updated to the latest gl4 specs and docs
Large code-drop from Khronos upstream.
2013-11-03 12:43:50 +01:00

2962 lines
153 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
"http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry id="glGet">
<refentryinfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
<refentrytitle>glGet</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGet</refname>
<refpurpose>return the value or values of a selected parameter</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetBooleanv</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLboolean * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetDoublev</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLdouble * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetFloatv</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLfloat * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetIntegerv</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetInteger64v</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint64 * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetBooleani_v</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLboolean * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetIntegeri_v</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLint * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetFloati_v</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLfloat * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetDoublei_v</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLdouble * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetInteger64i_v</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLint64 * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the parameter value to be returned
for non-indexed versions of <function>glGet</function>.
The symbolic constants in the list below are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the parameter value to be returned
for indexed versions of <function>glGet</function>.
The symbolic constants in the list below are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>
Specifies the index of the particular element being queried.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Returns the value or values of the specified parameter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
These commands return values for simple state variables in GL.
<parameter>pname</parameter> is a symbolic constant indicating the state variable to be returned,
and <parameter>data</parameter> is a pointer to an array of the indicated type in
which to place the returned data.
</para>
<para>
Type conversion is performed if <parameter>data</parameter> has a different type than
the state variable value being requested.
If <function>glGetBooleanv</function> is called,
a floating-point (or integer) value is converted to <constant>GL_FALSE</constant> if
and only if it is 0.0 (or 0).
Otherwise,
it is converted to <constant>GL_TRUE</constant>.
If <function>glGetIntegerv</function> is called, boolean values are returned as
<constant>GL_TRUE</constant> or <constant>GL_FALSE</constant>, and most floating-point values are
rounded to the nearest integer value. Floating-point colors and
normals, however, are returned with a linear mapping that maps 1.0 to
the most positive representable integer value
and
<inlineequation><mml:math>
<!-- eqn: -1.0: -->
<mml:mn>-1.0</mml:mn>
</mml:math></inlineequation>
to the most negative representable integer value.
If <function>glGetFloatv</function> or <function>glGetDoublev</function> is called,
boolean values are returned as <constant>GL_TRUE</constant> or <constant>GL_FALSE</constant>,
and integer values are converted to floating-point values.
</para>
<para>
The following symbolic constants are accepted by <parameter>pname</parameter>:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_ACTIVE_TEXTURE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value indicating the active multitexture unit.
The initial value is <constant>GL_TEXTURE0</constant>.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ALIASED_LINE_WIDTH_RANGE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a pair of values indicating the range of
widths supported for aliased lines. See <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ARRAY_BUFFER_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_ARRAY_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether blending is
enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_COLOR</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns four values,
the red, green, blue, and alpha values which are the components of
the blend color.
See <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_DST_ALPHA</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the symbolic constant identifying the alpha destination blend
function. The initial value is <constant>GL_ZERO</constant>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_DST_RGB</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the symbolic constant identifying the RGB destination blend
function. The initial value is <constant>GL_ZERO</constant>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_EQUATION_RGB</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, a symbolic constant indicating whether
the RGB blend equation is <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>,
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>, <constant>GL_MIN</constant> or <constant>GL_MAX</constant>.
See <citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_EQUATION_ALPHA</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, a symbolic constant indicating whether
the Alpha blend equation is <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>,
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>, <constant>GL_MIN</constant> or <constant>GL_MAX</constant>.
See <citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_SRC_ALPHA</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the symbolic constant identifying the alpha source blend function. The initial
value is <constant>GL_ONE</constant>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BLEND_SRC_RGB</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the symbolic constant identifying the RGB source blend function. The initial
value is <constant>GL_ONE</constant>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_COLOR_CLEAR_VALUE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns four values:
the red, green, blue, and alpha values 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
<inlineequation><mml:math>
<!-- eqn: -1.0: -->
<mml:mn>-1.0</mml:mn>
</mml:math></inlineequation>
returns the most negative representable integer
value. The initial value is (0, 0, 0, 0).
See <citerefentry><refentrytitle>glClearColor</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_COLOR_LOGIC_OP</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether a fragment's
RGBA color values are merged into the framebuffer using a logical
operation. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_COLOR_WRITEMASK</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns four boolean values:
the red, green, blue, and alpha write enables for the color
buffers. The initial value is (<constant>GL_TRUE</constant>, <constant>GL_TRUE</constant>,
<constant>GL_TRUE</constant>, <constant>GL_TRUE</constant>).
See <citerefentry><refentrytitle>glColorMask</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_COMPRESSED_TEXTURE_FORMATS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a list of symbolic
constants of length <constant>GL_NUM_COMPRESSED_TEXTURE_FORMATS</constant>
indicating which compressed texture formats are available.
See <citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a compute shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum total number of active shader storage blocks that may be accessed by all active shaders.
</para>
</listitem>
</varlistentry>
<!-- // ARB_compute_shader -->
<varlistentry>
<term><constant>GL_MAX_COMPUTE_UNIFORM_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform blocks per compute shader. The value must be at least 14.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, the maximum supported texture image units that
can be used to access texture maps from the compute shader. The value may be at least 16.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of individual floating-point, integer, or boolean values that can be held
in uniform variable storage for a compute shader. The value must be at least 1024.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to compute shaders.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counter buffers that may be accessed by a compute shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of words for compute shader uniform variables in all uniform
blocks (including default). The value must be at least 1.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of invocations in a single local work group
(i.e., the product of the three dimensions) that may
be dispatched to a compute shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_WORK_GROUP_COUNT</constant></term>
<listitem>
<para>
Accepted by the indexed versions of <function>glGet</function>.
<parameter>data</parameter> the maximum number of work
groups that may be dispatched to a compute shader. Indices
0, 1, and 2 correspond to the X, Y and Z dimensions, respectively.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMPUTE_WORK_GROUP_SIZE</constant></term>
<listitem>
<para>
Accepted by the indexed versions of <function>glGet</function>.
<parameter>data</parameter> the maximum size of a work
groups that may be used during compilation of a compute shader. Indices
0, 1, and 2 correspond to the X, Y and Z dimensions, respectively.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DISPATCH_INDIRECT_BUFFER_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_DISPATCH_INDIRECT_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<!-- // ARB_compute_shader -->
<!-- ARB_debug_group -->
<varlistentry>
<term><constant>GL_MAX_DEBUG_GROUP_STACK_DEPTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum depth of the
debug message group stack.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEBUG_GROUP_STACK_DEPTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the current depth of the
debug message group stack.
</para>
</listitem>
</varlistentry>
<!-- // ARB_debug_group -->
<varlistentry>
<term><constant>GL_CONTEXT_FLAGS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the flags with which the context was created (such as debugging functionality).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_CULL_FACE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether polygon culling
is enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_CURRENT_PROGRAM</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the name of the program object that is currently active, or 0 if no program object is active.
See <citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_CLEAR_VALUE</constant></term>
<listitem>
<para>
<parameter>data</parameter> 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
<inlineequation><mml:math>
<!-- eqn: -1.0: -->
<mml:mn>-1.0</mml:mn>
</mml:math></inlineequation>
returns the most negative representable integer
value. The initial value is 1.
See <citerefentry><refentrytitle>glClearDepth</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_FUNC</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the symbolic constant that indicates the depth comparison
function. The initial value is <constant>GL_LESS</constant>.
See <citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_RANGE</constant></term>
<listitem>
<para>
<parameter>data</parameter> 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
<inlineequation><mml:math>
<!-- eqn: -1.0: -->
<mml:mn>-1.0</mml:mn>
</mml:math></inlineequation>
returns the most negative representable integer
value. The initial value is (0, 1).
See <citerefentry><refentrytitle>glDepthRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_TEST</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether depth testing
of fragments is enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDepthRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_WRITEMASK</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating if the depth buffer
is enabled for writing. The initial value is <constant>GL_TRUE</constant>.
See <citerefentry><refentrytitle>glDepthMask</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DITHER</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether dithering of
fragment colors and indices is enabled. The initial value is <constant>GL_TRUE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DOUBLEBUFFER</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether double buffering
is supported.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DRAW_BUFFER</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating which buffers are being drawn to.
See <citerefentry><refentrytitle>glDrawBuffer</refentrytitle></citerefentry>. The initial value is <constant>GL_BACK</constant> if there
are back buffers, otherwise it is <constant>GL_FRONT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DRAW_BUFFER</constant><emphasis>i</emphasis></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating which buffers are being drawn to by the corresponding output color.
See <citerefentry><refentrytitle>glDrawBuffers</refentrytitle></citerefentry>.
The initial value of <constant>GL_DRAW_BUFFER0</constant> is <constant>GL_BACK</constant> if there
are back buffers, otherwise it is <constant>GL_FRONT</constant>. The
initial values of draw buffers for all other output colors is <constant>GL_NONE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DRAW_FRAMEBUFFER_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the name of the framebuffer object currently bound to the <constant>GL_DRAW_FRAMEBUFFER</constant> target.
If the default framebuffer is bound, this value will be zero. The initial value is zero.
See <citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_READ_FRAMEBUFFER_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the name of the framebuffer object currently bound to the <constant>GL_READ_FRAMEBUFFER</constant> target.
If the default framebuffer is bound, this value will be zero. The initial value is zero.
See <citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ELEMENT_ARRAY_BUFFER_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_ELEMENT_ARRAY_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAGMENT_SHADER_DERIVATIVE_HINT</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating the mode of the derivative accuracy hint
for fragment shaders. The initial value
is <constant>GL_DONT_CARE</constant>.
See <citerefentry><refentrytitle>glHint</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_IMPLEMENTATION_COLOR_READ_FORMAT</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single GLenum value indicating
the implementation's preferred pixel data format.
See <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_IMPLEMENTATION_COLOR_READ_TYPE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single GLenum value indicating
the implementation's preferred pixel data type.
See <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LINE_SMOOTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether antialiasing of
lines is enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LINE_SMOOTH_HINT</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating the mode of the line antialiasing
hint. The initial value is <constant>GL_DONT_CARE</constant>.
See <citerefentry><refentrytitle>glHint</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LINE_WIDTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the line width as specified with <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>. The initial value is
1.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LAYER_PROVOKING_VERTEX</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the implementation dependent specifc vertex of a primitive that is used to select the rendering layer.
If the value returned is equivalent to <constant>GL_PROVOKING_VERTEX</constant>, then the vertex
selection follows the convention specified by
<citerefentry><refentrytitle>glProvokingVertex</refentrytitle></citerefentry>.
If the value returned is equivalent to <constant>GL_FIRST_VERTEX_CONVENTION</constant>, then the
selection is always taken from the first vertex in the primitive.
If the value returned is equivalent to <constant>GL_LAST_VERTEX_CONVENTION</constant>, then the
selection is always taken from the last vertex in the primitive.
If the value returned is equivalent to <constant>GL_UNDEFINED_VERTEX</constant>, then the
selection is not guaranteed to be taken from any specific vertex in the primitive.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LOGIC_OP_MODE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating the selected logic operation
mode. The initial value is <constant>GL_COPY</constant>.
See <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAJOR_VERSION</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the major version number of the OpenGL API supported by the current context.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_3D_TEXTURE_SIZE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
a rough estimate of the largest 3D texture that the GL can handle.
The value must be at least 64.
Use <constant>GL_PROXY_TEXTURE_3D</constant> to determine if a texture is too large.
See <citerefentry><refentrytitle>glTexImage3D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_ARRAY_TEXTURE_LAYERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value.
The value indicates the maximum number of layers allowed in an array texture, and must be at least 256.
See <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_CLIP_DISTANCES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of application-defined clipping distances. The value must be at least 8.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COLOR_TEXTURE_SAMPLES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of samples in a color multisample texture.
</para>
</listitem>
</varlistentry>
<!-- ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_COMBINED_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to all active shaders.
</para>
</listitem>
</varlistentry>
<!-- // ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of words for fragment shader uniform variables in all uniform
blocks (including default). The value must be at least 1.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of words for geometry shader uniform variables in all uniform
blocks (including default). The value must be at least 1.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, the maximum supported texture image units that
can be used to access texture maps from the vertex shader and the fragment processor combined.
If both the vertex shader and the fragment processing stage access the same texture image
unit, then that counts as using two texture image units against this limit.
The value must be at least 48.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_UNIFORM_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform blocks per program. The value must be at least 70.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of words for vertex shader uniform variables in all uniform
blocks (including default). The value must be at least 1.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value.
The value gives a rough estimate of the largest cube-map texture that
the GL can handle. The value must be at least 1024.
Use <constant>GL_PROXY_TEXTURE_CUBE_MAP</constant>
to determine if a texture is too large.
See <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_DEPTH_TEXTURE_SAMPLES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of samples in a multisample depth or depth-stencil texture.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_DRAW_BUFFERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, the maximum number
of simultaneous outputs that may be written in a fragment shader.
The value must be at least 8.
See <citerefentry><refentrytitle>glDrawBuffers</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_DUAL_SOURCE_DRAW_BUFFERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, the maximum number
of active draw buffers when using dual-source blending. The value must be at least 1.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> and
<citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_ELEMENTS_INDICES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the recommended maximum number of vertex array indices.
See <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_ELEMENTS_VERTICES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the recommended maximum number of vertex array vertices.
See <citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<!-- ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to fragment shaders.
</para>
</listitem>
</varlistentry>
<!-- // ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a fragment shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_INPUT_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of components of the inputs read by the fragment shader, which must be at least 128.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of individual floating-point, integer, or boolean values that can be held
in uniform variable storage for a fragment shader. The value must be at least 1024.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_UNIFORM_VECTORS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of individual 4-vectors of floating-point, integer, or boolean values
that can be held
in uniform variable storage for a fragment shader. The value is equal to the value of
<constant>GL_MAX_FRAGMENT_UNIFORM_COMPONENTS</constant> divided by 4 and must be at least 256.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAGMENT_UNIFORM_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform blocks per fragment shader. The value must be at least 12.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAMEBUFFER_WIDTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum width for a framebuffer that has no attachments, which must be at least 16384.
See <citerefentry><refentrytitle>glFramebufferParameter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAMEBUFFER_HEIGHT</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum height for a framebuffer that has no attachments, which must be at least 16384.
See <citerefentry><refentrytitle>glFramebufferParameter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAMEBUFFER_LAYERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of layers for a framebuffer that has no attachments, which must be at least 2048.
See <citerefentry><refentrytitle>glFramebufferParameter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_FRAMEBUFFER_SAMPLES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum samples in a framebuffer that has no attachments, which must be at least 4.
See <citerefentry><refentrytitle>glFramebufferParameter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<!-- ARB_shader_atomic_counter -->
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to geometry shaders.
</para>
</listitem>
</varlistentry>
<!-- // ARB_shader_atomic_counter -->
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a geometry shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_INPUT_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of components of inputs read by a geometry shader, which must be at least 64.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_OUTPUT_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of components of outputs written by a geometry shader, which must be at least 128.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value, the maximum supported texture image units that
can be used to access texture maps from the geometry shader. The value must be at least 16.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_UNIFORM_BLOCKS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform blocks per geometry shader. The value must be at least 12.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_GEOMETRY_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of individual floating-point, integer, or boolean values that can be held
in uniform variable storage for a geometry shader. The value must be at least 1024.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_INTEGER_SAMPLES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum number of samples supported in integer format multisample buffers.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MIN_MAP_BUFFER_ALIGNMENT</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the minimum alignment in basic machine units of pointers returned from<citerefentry><refentrytitle>glMapBuffer</refentrytitle></citerefentry>
and <citerefentry><refentrytitle>glMapBufferRange</refentrytitle></citerefentry>. This value must be a power of two and must
be at least 64.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_LABEL_LENGTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum length of a label that may be assigned to an object.
See <citerefentry><refentrytitle>glObjectLabel</refentrytitle></citerefentry> and
<citerefentry><refentrytitle>glObjectPtrLabel</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_PROGRAM_TEXEL_OFFSET</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the maximum texel offset allowed in a texture lookup, which must be at least 7.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MIN_PROGRAM_TEXEL_OFFSET</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the minimum texel offset allowed in a texture lookup, which must be at most -8.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_RECTANGLE_TEXTURE_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value.
The value gives a rough estimate of the largest rectangular texture that
the GL can handle. The value must be at least 1024.
Use <constant>GL_PROXY_TEXTURE_RECTANGLE</constant>
to determine if a texture is too large.
See <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_RENDERBUFFER_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value.
The value indicates the maximum supported size for renderbuffers.
See <citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_SAMPLE_MASK_WORDS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of sample mask words.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_SERVER_WAIT_TIMEOUT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum <citerefentry><refentrytitle>glWaitSync</refentrytitle></citerefentry> timeout interval.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of shader storage buffer binding points on the context, which must be at least 8.
</para>
</listitem>
</varlistentry>
<!-- ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to tessellation control shaders.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to tessellation evaluation shaders.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a tessellation control shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a tessellation evaluation shader.
</para>
</listitem>
</varlistentry>
<!-- // ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_TEXTURE_BUFFER_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value.
The value gives the maximum number of texels allowed in the texel array of a texture buffer object.
Value must be at least 65536.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TEXTURE_IMAGE_UNITS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value, the maximum supported texture image units that
can be used to access texture maps from the fragment shader.
The value must be at least 16.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TEXTURE_LOD_BIAS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum, absolute value of the texture level-of-detail bias. The
value must be at least 2.0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_TEXTURE_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value.
The value gives a rough estimate of the largest texture that
the GL can handle. The value must be at least 1024.
Use a proxy texture target such as <constant>GL_PROXY_TEXTURE_1D</constant> or <constant>GL_PROXY_TEXTURE_2D</constant>
to determine if a texture is too large.
See <citerefentry><refentrytitle>glTexImage1D</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_UNIFORM_BUFFER_BINDINGS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform buffer binding points on the context, which must be at least 36.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_UNIFORM_BLOCK_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum size in basic machine units of a uniform block, which must be at least 16384.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_UNIFORM_LOCATIONS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of explicitly assignable uniform locations, which must be at least 1024.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VARYING_COMPONENTS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number components for varying variables, which must be at least 60.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VARYING_VECTORS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number 4-vectors for varying variables, which is equal to the value of
<constant>GL_MAX_VARYING_COMPONENTS</constant> and must be at least 15.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VARYING_FLOATS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of interpolators available for processing varying variables used by
vertex and fragment shaders. This value represents the number of individual floating-point
values that can be interpolated; varying variables declared as vectors, matrices, and arrays
will all consume multiple interpolators. The value must be at least 32.
</para>
</listitem>
</varlistentry>
<!-- ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_VERTEX_ATOMIC_COUNTERS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the maximum number of atomic counters available to vertex shaders.
</para>
</listitem>
</varlistentry>
<!-- /ARB_shader_atomic_counters -->
<varlistentry>
<term><constant>GL_MAX_VERTEX_ATTRIBS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of 4-component generic vertex attributes accessible to a vertex shader.
The value must be at least 16.
See <citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of active shader storage blocks that may be accessed by a vertex shader.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value, the maximum supported texture image units that
can be used to access texture maps from the vertex shader. The value may be at least 16.
See <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_UNIFORM_COMPONENTS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of individual floating-point, integer, or boolean values that can be held
in uniform variable storage for a vertex shader. The value must be at least 1024.
See <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_UNIFORM_VECTORS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of 4-vectors that may be held in uniform variable storage for the vertex
shader. The value of <constant>GL_MAX_VERTEX_UNIFORM_VECTORS</constant> is equal to the
value of <constant>GL_MAX_VERTEX_UNIFORM_COMPONENTS</constant> and must be at least
256.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_OUTPUT_COMPONENTS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of components of output written by a vertex shader, which must be at least 64.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_UNIFORM_BLOCKS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the maximum number of uniform blocks per vertex shader. The value must be at least 12.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VIEWPORT_DIMS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns two values:
the maximum supported width and height of the viewport.
These must be at least as large as the visible dimensions of the display
being rendered to.
See <citerefentry><refentrytitle>glViewport</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VIEWPORTS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value, the maximum number
of simultaneous viewports that are supported.
The value must be at least 16.
See <citerefentry><refentrytitle>glViewportIndexed</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MINOR_VERSION</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the minor version number of the OpenGL API supported by the current context.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NUM_COMPRESSED_TEXTURE_FORMATS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single integer value indicating the number of available
compressed texture formats. The minimum value is 4.
See <citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NUM_EXTENSIONS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of extensions supported by the GL implementation for the current context.
See <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NUM_PROGRAM_BINARY_FORMATS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of program binary formats supported by the implementation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NUM_SHADER_BINARY_FORMATS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of binary shader formats supported by the implementation. If this value is
greater than zero, then the implementation supports loading binary shaders. If it is
zero, then the loading of binary shaders by the implementation is not supported.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_ALIGNMENT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the byte alignment used for writing pixel data to memory. The initial
value is 4.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_IMAGE_HEIGHT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the image height used for writing pixel data to memory. The initial
value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_LSB_FIRST</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether single-bit
pixels being written to memory are written first to the least significant
bit of each unsigned byte. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_ROW_LENGTH</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the row length used for writing pixel data to memory. The initial value is
0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_SKIP_IMAGES</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of pixel images skipped before the first pixel is written
into memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_SKIP_PIXELS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of pixel locations skipped before the first pixel is written
into memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_SKIP_ROWS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the number of rows of pixel locations skipped before the first pixel is written
into memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PACK_SWAP_BYTES</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether the bytes of
two-byte and four-byte pixel indices and components are swapped before being
written to memory. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PIXEL_PACK_BUFFER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_PIXEL_PACK_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PIXEL_UNPACK_BUFFER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_PIXEL_UNPACK_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POINT_FADE_THRESHOLD_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the point size threshold for determining the point size.
See <citerefentry><refentrytitle>glPointParameter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PRIMITIVE_RESTART_INDEX</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the current primitive restart index. The initial value is 0.
See <citerefentry><refentrytitle>glPrimitiveRestartIndex</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PROGRAM_BINARY_FORMATS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> an array of <constant>GL_NUM_PROGRAM_BINARY_FORMATS</constant> values,
indicating the proram binary formats supported by the implementation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PROGRAM_PIPELINE_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> a single value, the name of the currently bound program pipeline
object, or zero if no program pipeline object is bound.
See <citerefentry><refentrytitle>glBindProgramPipeline</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PROGRAM_POINT_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether vertex
program point size mode is enabled. If enabled, then the
point size is taken from the shader built-in <code>gl_PointSize</code>. If disabled,
then the point size is taken from the point state as specified
by <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>.
The initial value is <constant>GL_FALSE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_PROVOKING_VERTEX</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the currently selected provoking vertex convention. The initial value is <constant>GL_LAST_VERTEX_CONVENTION</constant>.
See <citerefentry><refentrytitle>glProvokingVertex</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POINT_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the point size as specified by <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>.
The initial value is 1.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POINT_SIZE_GRANULARITY</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the size difference between adjacent supported sizes for antialiased points.
See <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POINT_SIZE_RANGE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns two values:
the smallest and largest supported sizes for antialiased
points. The smallest size must be at most 1, and the largest size must
be at least 1.
See <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_FACTOR</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the scaling factor used to determine the variable offset that is added
to the depth value of each fragment generated when a polygon is
rasterized. The initial value is 0.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_UNITS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value.
This value is multiplied by an implementation-specific value and then
added to the depth value of each fragment
generated when a polygon is rasterized. The initial value is 0.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_FILL</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether polygon offset
is enabled for polygons in fill mode. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_LINE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether polygon offset
is enabled for polygons in line mode. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_POINT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether polygon offset
is enabled for polygons in point mode. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_SMOOTH</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether antialiasing of
polygons is enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPolygonMode</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_SMOOTH_HINT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating the mode of the polygon antialiasing
hint. The initial value is <constant>GL_DONT_CARE</constant>.
See <citerefentry><refentrytitle>glHint</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_READ_BUFFER</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating which color buffer is selected for
reading. The initial value is <constant>GL_BACK</constant> if there is a back buffer,
otherwise it is <constant>GL_FRONT</constant>.
See
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the renderbuffer object
currently bound to the target <constant>GL_RENDERBUFFER</constant>. If no renderbuffer object
is bound to this target, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLE_BUFFERS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single integer value indicating the number of sample buffers
associated with the framebuffer.
See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLE_COVERAGE_VALUE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single positive floating-point value indicating the
current sample coverage value.
See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLE_COVERAGE_INVERT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating if the temporary
coverage value should be inverted.
See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the sampler object
currently bound to the active texture unit. The initial value is 0.
See <citerefentry><refentrytitle>glBindSampler</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLES</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single integer value indicating the coverage mask size.
See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SCISSOR_BOX</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns four values:
the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
window coordinates of the scissor box,
followed by its width and height.
Initially the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
window coordinates are both 0 and the
width and height are set to the size of the window.
See <citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SCISSOR_TEST</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether scissoring is
enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_COMPILER</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether an online shader
compiler is present in the implementation. All desktop OpenGL implementations must support
online shader compilations, and therefore the value of <constant>GL_SHADER_COMPILER</constant>
will always be <constant>GL_TRUE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_STORAGE_BUFFER_BINDING</constant></term>
<listitem>
<para>
When used with non-indexed variants of <function>glGet</function> (such as <function>glGetIntegerv</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_SHADER_STORAGE_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned.
When used with indexed variants of <function>glGet</function> (such as <function>glGetIntegeri_v</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
bound to the indexed shader storage buffer binding points. The initial value is 0 for all targets.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glBindBufferBase</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the minimum required alignment
for shader storage buffer sizes and offset. The initial value is 1.
See <citerefentry><refentrytitle>glShaderStorateBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_STORAGE_BUFFER_START</constant></term>
<listitem>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the start offset of the binding range for each
indexed shader storage buffer binding. The initial value is 0 for all bindings.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_STORAGE_BUFFER_SIZE</constant></term>
<listitem>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the size of the binding range for each
indexed shader storage buffer binding. The initial value is 0 for all bindings.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SMOOTH_LINE_WIDTH_RANGE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a pair of values indicating the range of
widths supported for smooth (antialiased) lines. See <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SMOOTH_LINE_WIDTH_GRANULARITY</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value indicating the level of
quantization applied to smooth line width parameters.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_FAIL</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken for back-facing polygons when the stencil
test fails. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_FUNC</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what function is used for back-facing polygons to compare the
stencil reference value with the stencil buffer value. The initial value
is <constant>GL_ALWAYS</constant>.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_PASS_DEPTH_FAIL</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken for back-facing polygons when the stencil
test passes,
but the depth test fails. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_PASS_DEPTH_PASS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken for back-facing polygons when the stencil
test passes and the depth test passes. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_REF</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the reference value that is compared with the contents of the stencil
buffer for back-facing polygons. The initial value is 0.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_VALUE_MASK</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the mask that is used for back-facing polygons to mask both the stencil reference value and the
stencil buffer value before they are compared. The initial value is all 1's.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BACK_WRITEMASK</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the mask that controls writing of the stencil bitplanes for back-facing polygons. The initial value
is all 1's.
See <citerefentry><refentrytitle>glStencilMaskSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_CLEAR_VALUE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the index to which the stencil bitplanes are cleared. The initial value is
0.
See <citerefentry><refentrytitle>glClearStencil</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_FAIL</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken when the stencil
test fails. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_FUNC</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what function is used to compare the
stencil reference value with the stencil buffer value. The initial value
is <constant>GL_ALWAYS</constant>.
See <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_PASS_DEPTH_FAIL</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken when the stencil
test passes,
but the depth test fails. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_PASS_DEPTH_PASS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
a symbolic constant indicating what action is taken when the stencil
test passes and the depth test passes. The initial value is <constant>GL_KEEP</constant>.
See <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_REF</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the reference value that is compared with the contents of the stencil
buffer. The initial value is 0.
See <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_TEST</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether stencil testing
of fragments is enabled. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_VALUE_MASK</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the mask that is used to mask both the stencil reference value and the
stencil buffer value before they are compared. The initial value is all 1's.
See <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_WRITEMASK</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the mask that controls writing of the stencil bitplanes. The initial value
is all 1's.
See <citerefentry><refentrytitle>glStencilMask</refentrytitle></citerefentry>.
This stencil state only affects non-polygons
and front-facing polygons. Back-facing polygons use separate stencil state.
See <citerefentry><refentrytitle>glStencilMaskSeparate</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STEREO</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether stereo buffers
(left and right) are supported.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SUBPIXEL_BITS</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
an estimate of the number of bits of subpixel resolution that are used to
position rasterized geometry in window coordinates. The value must be at least 4.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_1D</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_1D</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_1D_ARRAY</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_1D_ARRAY</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_2D</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_2D</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_2D_ARRAY</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_2D_ARRAY</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_2D_MULTISAMPLE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_2D_MULTISAMPLE</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_2D_MULTISAMPLE_ARRAY</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_3D</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_3D</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_BUFFER</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_BUFFER</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_CUBE_MAP</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_CUBE_MAP</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_RECTANGLE</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the texture
currently bound to the target <constant>GL_TEXTURE_RECTANGLE</constant>. The initial value is 0.
See <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_COMPRESSION_HINT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value indicating the mode of the texture
compression hint. The initial value is <constant>GL_DONT_CARE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BINDING_BUFFER</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the <constant>GL_TEXTURE_BUFFER</constant> buffer binding point. The initial value is 0.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the minimum required alignment
for texture buffer sizes and offset. The initial value is 1.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TIMESTAMP</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the 64-bit value of the current
GL time.
See <citerefentry><refentrytitle>glQueryCounter</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TRANSFORM_FEEDBACK_BUFFER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
When used with non-indexed variants of <function>glGet</function> (such as <function>glGetIntegerv</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_TRANSFORM_FEEDBACK_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned.
When used with indexed variants of <function>glGet</function> (such as <function>glGetIntegeri_v</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
bound to the indexed transform feedback attribute stream. The initial value is 0 for all targets.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glBindBufferBase</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TRANSFORM_FEEDBACK_BUFFER_START</constant></term>
<listitem>
<para>
</para>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the start offset of the binding range for each
transform feedback attribute stream. The initial value is 0 for all streams.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TRANSFORM_FEEDBACK_BUFFER_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the size of the binding range for each
transform feedback attribute stream. The initial value is 0 for all streams.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNIFORM_BUFFER_BINDING</constant></term>
<listitem>
<para>
</para>
<para>
When used with non-indexed variants of <function>glGet</function> (such as <function>glGetIntegerv</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
currently bound to the target <constant>GL_UNIFORM_BUFFER</constant>. If no buffer object
is bound to this target, 0 is returned.
When used with indexed variants of <function>glGet</function> (such as <function>glGetIntegeri_v</function>),
<parameter>data</parameter> returns a single value, the name of the buffer object
bound to the indexed uniform buffer binding point. The initial value is 0 for all targets.
See <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glBindBufferBase</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns a single value, the minimum required alignment
for uniform buffer sizes and offset. The initial value is 1.
See <citerefentry><refentrytitle>glUniformBlockBinding</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNIFORM_BUFFER_SIZE</constant></term>
<listitem>
<para>
</para>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the size of the binding range for each
indexed uniform buffer binding. The initial value is 0 for all bindings.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNIFORM_BUFFER_START</constant></term>
<listitem>
<para>
</para>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetInteger64i_v</function>),
<parameter>data</parameter> returns a single value, the start offset of the binding range for each
indexed uniform buffer binding. The initial value is 0 for all bindings.
See <citerefentry><refentrytitle>glBindBufferRange</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_ALIGNMENT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the byte alignment used for reading pixel data from memory. The initial
value is 4.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_IMAGE_HEIGHT</constant></term>
<listitem>
<para>
</para>
<para>
<parameter>data</parameter> returns one value,
the image height used for reading pixel data from memory. The initial
is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_LSB_FIRST</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether single-bit
pixels being read from memory are read first from the least significant
bit of each unsigned byte. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_ROW_LENGTH</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the row length used for reading pixel data from memory. The initial value
is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_SKIP_IMAGES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of pixel images skipped before the first pixel is read
from memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_SKIP_PIXELS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of pixel locations skipped before the first pixel is read
from memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_SKIP_ROWS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the number of rows of pixel locations skipped before the first pixel is read
from memory. The initial value is 0.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_UNPACK_SWAP_BYTES</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single boolean value indicating whether the bytes of
two-byte and four-byte pixel indices and components are swapped after being
read from memory. The initial value is <constant>GL_FALSE</constant>.
See <citerefentry><refentrytitle>glPixelStore</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ARRAY_BINDING</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the name of the vertex array object
currently bound to the context. If no vertex array object
is bound to the context, 0 is returned. The initial value is 0.
See <citerefentry><refentrytitle>glBindVertexArray</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_BINDING_DIVISOR</constant></term>
<listitem>
<para>
Accepted by the indexed forms. <parameter>data</parameter> returns a single integer value representing the instance step
divisor of the first element in the bound buffer's data store for vertex attribute bound to <parameter>index</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_BINDING_OFFSET</constant></term>
<listitem>
<para>
Accepted by the indexed forms. <parameter>data</parameter> returns a single integer value representing the byte offset
of the first element in the bound buffer's data store for vertex attribute bound to <parameter>index</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_BINDING_STRIDE</constant></term>
<listitem>
<para>
Accepted by the indexed forms. <parameter>data</parameter> returns a single integer value representing the byte offset
between the start of each element in the bound buffer's data store for vertex attribute bound to <parameter>index</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single integer value containing the maximum offset that may be added to a vertex binding
offset.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_VERTEX_ATTRIB_BINDINGS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single integer value containing the maximum number of vertex buffers that may be bound.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VIEWPORT</constant></term>
<listitem>
<para>
When used with non-indexed variants of <function>glGet</function> (such as <function>glGetIntegerv</function>),
<parameter>data</parameter> returns four values:
the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
window coordinates of the viewport, followed by its width and height.
Initially the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
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 <citerefentry><refentrytitle>glViewport</refentrytitle></citerefentry>.
</para>
<para>
When used with indexed variants of <function>glGet</function> (such as <function>glGetIntegeri_v</function>),
<parameter>data</parameter> returns four values:
the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
window coordinates of the indexed viewport, followed by its width and height.
Initially the
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
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 <citerefentry><refentrytitle>glViewportIndexedf</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VIEWPORT_BOUNDS_RANGE</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns two values, the minimum and maximum viewport bounds range.
The minimum range should be at least [-32768, 32767].
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VIEWPORT_INDEX_PROVOKING_VERTEX</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns one value,
the implementation dependent specifc vertex of a primitive that is used to select the viewport index.
If the value returned is equivalent to <constant>GL_PROVOKING_VERTEX</constant>, then the vertex
selection follows the convention specified by
<citerefentry><refentrytitle>glProvokingVertex</refentrytitle></citerefentry>.
If the value returned is equivalent to <constant>GL_FIRST_VERTEX_CONVENTION</constant>, then the
selection is always taken from the first vertex in the primitive.
If the value returned is equivalent to <constant>GL_LAST_VERTEX_CONVENTION</constant>, then the
selection is always taken from the last vertex in the primitive.
If the value returned is equivalent to <constant>GL_UNDEFINED_VERTEX</constant>, then the
selection is not guaranteed to be taken from any specific vertex in the primitive.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VIEWPORT_SUBPIXEL_BITS</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the number of bits of sub-pixel precision which the GL
uses to interpret the floating point viewport bounds. The minimum value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_MAX_ELEMENT_INDEX</constant></term>
<listitem>
<para>
<parameter>data</parameter> returns a single value, the maximum index that may be specified during the
transfer of generic vertex attributes to the GL.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Many of the boolean parameters can also be queried more easily using
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
The following parameters return the associated value for the active texture unit:
<constant>GL_TEXTURE_1D</constant>, <constant>GL_TEXTURE_BINDING_1D</constant>,
<constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_BINDING_2D</constant>,
<constant>GL_TEXTURE_3D</constant> and <constant>GL_TEXTURE_BINDING_3D</constant>.
</para>
<para>
<constant>GL_MAX_VIEWPORTS</constant>, <constant>GL_VIEWPORT_SUBPIXEL_BITS</constant>,
<constant>GL_VIEWPORT_BOUNDS_RANGE</constant>, <constant>GL_LAYER_PROVOKING_VERTEX</constant>,
and <constant>GL_VIEWPORT_INDEX_PROVOKING_VERTEX</constant>
are available only if the GL version is 4.1 or greater.
</para>
<para>
<constant>GL_MAX_VERTEX_ATOMIC_COUNTERS</constant>,
<constant>GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS</constant>,
<constant>GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS</constant>,
<constant>GL_MAX_GEOMETRY_ATOMIC_COUNTERS</constant>,
<constant>GL_MAX_FRAMGENT_ATOMIC_COUNTERS</constant>, and
<constant>GL_MIN_MAP_BUFFER_ALIGNMENT</constant> are accepted by <parameter>pname</parameter>
only if the GL version is 4.2 or greater.
</para>
<para>
<constant>GL_MAX_ELEMENT_INDEX</constant> is accepted by <parameter>pname</parameter> only
if the GL version is 4.3 or greater.
</para>
<para>
<constant>GL_MAX_COMPUTE_UNIFORM_BLOCKS</constant>, <constant>GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS</constant>,
<constant>GL_MAX_COMPUTE_UNIFORM_COMPONENTS</constant>, <constant>GL_MAX_COMPUTE_ATOMIC_COUNTERS</constant>,
<constant>GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS</constant>, <constant>GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS</constant>,
<constant>GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS</constant>, <constant>GL_MAX_COMPUTE_WORK_GROUP_COUNT</constant>, and
<constant>GL_MAX_COMPUTE_WORK_GROUP_SIZE</constant> and <constant>GL_DISPATCH_INDIRECT_BUFFER_BINDING</constant> are available only if the GL version
is 4.3 or greater.
</para>
<para>
<constant>GL_MAX_DEBUG_GROUP_STACK_DEPTH</constant>, <constant>GL_DEBUG_GROUP_STACK_DEPTH</constant> and <constant>GL_MAX_LABEL_LENGTH</constant> are accepted only if
the GL version is 4.3 or greater.
</para>
<para>
<constant>GL_MAX_UNIFORM_LOCATIONS</constant> is accepted only if the GL version is 4.3 or greater.
</para>
<para>
<constant>GL_MAX_FRAMEBUFFER_WIDTH</constant>, <constant>GL_MAX_FRAMEBUFFER_HEIGHT</constant>, <constant>GL_MAX_FRAMEBUFFER_LAYERS</constant>,
and <constant>GL_MAX_FRAMEBUFFER_SAMPLES</constant> are available only if the GL version is 4.3 or greater.
</para>
<para>
<constant>GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS</constant>, <constant>GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS</constant>,
<constant>GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS</constant>, <constant>GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS</constant>,
<constant>GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS</constant>, and <constant>GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS</constant> are available
only if the GL version is 4.3 or higher.
</para>
<para>
<constant>GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT</constant> is available only if the GL version is 4.3 or greater.
</para>
<para>
<constant>GL_VERTEX_BINDING_DIVISOR</constant>, <constant>GL_VERTEX_BINDING_OFFSET</constant>, <constant>GL_VERTEX_BINDING_STRIDE</constant>,
<constant>GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET</constant> and <constant>GL_MAX_VERTEX_ATTRIB_BINDINGS</constant> are available only if
the GL version is 4.3 or greater.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>pname</parameter> is not an accepted value.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated on any of <function>glGetBooleani_v</function>,
<function>glGetIntegeri_v</function>, or <function>glGetInteger64i_v</function> if
<parameter>index</parameter> is outside of the valid range for the indexed state <parameter>target</parameter>.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetBufferParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetBufferPointerv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetBufferSubData</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetCompressedTexImage</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetError</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetQueryiv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetQueryObject</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexImage</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexLevelParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetVertexAttribPointerv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License. For details, see
<ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
</para>
</refsect1>
</refentry>