Provided by: opengl-4-man-doc_1.0~svn33624-1_all bug

NAME

       glGet - return the value or values of a selected parameter

C SPECIFICATION

       void glGetBooleanv(GLenum pname, GLboolean * data);

       void glGetDoublev(GLenum pname, GLdouble * data);

       void glGetFloatv(GLenum pname, GLfloat * data);

       void glGetIntegerv(GLenum pname, GLint * data);

       void glGetInteger64v(GLenum pname, GLint64 * data);

       void glGetBooleani_v(GLenum target, GLuint index, GLboolean * data);

       void glGetIntegeri_v(GLenum target, GLuint index, GLint * data);

       void glGetFloati_v(GLenum target, GLuint index, GLfloat * data);

       void glGetDoublei_v(GLenum target, GLuint index, GLdouble * data);

       void glGetInteger64i_v(GLenum target, GLuint index, GLint64 * data);

PARAMETERS

       pname
           Specifies the parameter value to be returned for non-indexed versions of glGet. The
           symbolic constants in the list below are accepted.

       target
           Specifies the parameter value to be returned for indexed versions of glGet. The
           symbolic constants in the list below are accepted.

       index
           Specifies the index of the particular element being queried.

       data
           Returns the value or values of the specified parameter.

DESCRIPTION

       These commands return values for simple state variables in GL.  pname is a symbolic
       constant indicating the state variable to be returned, and data is a pointer to an array
       of the indicated type in which to place the returned data.

       Type conversion is performed if data has a different type than the state variable value
       being requested. If glGetBooleanv is called, a floating-point (or integer) value is
       converted to GL_FALSE if and only if it is 0.0 (or 0). Otherwise, it is converted to
       GL_TRUE. If glGetIntegerv is called, boolean values are returned as GL_TRUE or GL_FALSE,
       and most floating-point values are rounded to the nearest integer value. Floating-point
       colors and normals, however, are returned with a linear mapping that maps 1.0 to the most
       positive representable integer value and -1.0 to the most negative representable integer
       value. If glGetFloatv or glGetDoublev is called, boolean values are returned as GL_TRUE or
       GL_FALSE, and integer values are converted to floating-point values.

       The following symbolic constants are accepted by pname:

       GL_ACTIVE_TEXTURE
           data returns a single value indicating the active multitexture unit. The initial value
           is GL_TEXTURE0. See glActiveTexture().

       GL_ALIASED_LINE_WIDTH_RANGE
           data returns a pair of values indicating the range of widths supported for aliased
           lines. See glLineWidth().

       GL_ARRAY_BUFFER_BINDING
           data returns a single value, the name of the buffer object currently bound to the
           target GL_ARRAY_BUFFER. If no buffer object is bound to this target, 0 is returned.
           The initial value is 0. See glBindBuffer().

       GL_BLEND
           data returns a single boolean value indicating whether blending is enabled. The
           initial value is GL_FALSE. See glBlendFunc().

       GL_BLEND_COLOR
           data returns four values, the red, green, blue, and alpha values which are the
           components of the blend color. See glBlendColor().

       GL_BLEND_DST_ALPHA
           data returns one value, the symbolic constant identifying the alpha destination blend
           function. The initial value is GL_ZERO. See glBlendFunc() and glBlendFuncSeparate().

       GL_BLEND_DST_RGB
           data returns one value, the symbolic constant identifying the RGB destination blend
           function. The initial value is GL_ZERO. See glBlendFunc() and glBlendFuncSeparate().

       GL_BLEND_EQUATION_RGB
           data returns one value, a symbolic constant indicating whether the RGB blend equation
           is GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN or GL_MAX. See
           glBlendEquationSeparate().

       GL_BLEND_EQUATION_ALPHA
           data returns one value, a symbolic constant indicating whether the Alpha blend
           equation is GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN or GL_MAX.
           See glBlendEquationSeparate().

       GL_BLEND_SRC_ALPHA
           data returns one value, the symbolic constant identifying the alpha source blend
           function. The initial value is GL_ONE. See glBlendFunc() and glBlendFuncSeparate().

       GL_BLEND_SRC_RGB
           data returns one value, the symbolic constant identifying the RGB source blend
           function. The initial value is GL_ONE. See glBlendFunc() and glBlendFuncSeparate().

       GL_COLOR_CLEAR_VALUE
           data 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 -1.0 returns the most negative representable integer value. The
           initial value is (0, 0, 0, 0). See glClearColor().

       GL_COLOR_LOGIC_OP
           data 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
           GL_FALSE. See glLogicOp().

       GL_COLOR_WRITEMASK
           data returns four boolean values: the red, green, blue, and alpha write enables for
           the color buffers. The initial value is (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE). See
           glColorMask().

       GL_COMPRESSED_TEXTURE_FORMATS
           data returns a list of symbolic constants of length GL_NUM_COMPRESSED_TEXTURE_FORMATS
           indicating which compressed texture formats are available. See
           glCompressedTexImage2D().

       GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a compute shader.

       GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum total number of active shader storage blocks that
           may be accessed by all active shaders.

       GL_MAX_COMPUTE_UNIFORM_BLOCKS
           data returns one value, the maximum number of uniform blocks per compute shader. The
           value must be at least 14. See glUniformBlockBinding().

       GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
           data 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
           glActiveTexture().

       GL_MAX_COMPUTE_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_COMPUTE_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to
           compute shaders.

       GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
           data returns a single value, the maximum number of atomic counter buffers that may be
           accessed by a compute shader.

       GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
           data 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.

       GL_MAX_COMPUTE_WORK_GROUP_COUNT
           Accepted by the indexed versions of glGet.  data 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.

       GL_MAX_COMPUTE_WORK_GROUP_SIZE
           Accepted by the indexed versions of glGet.  data 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.

       GL_DISPATCH_INDIRECT_BUFFER_BINDING
           data returns a single value, the name of the buffer object currently bound to the
           target GL_DISPATCH_INDIRECT_BUFFER. If no buffer object is bound to this target, 0 is
           returned. The initial value is 0. See glBindBuffer().

       GL_MAX_DEBUG_GROUP_STACK_DEPTH
           data returns a single value, the maximum depth of the debug message group stack.

       GL_DEBUG_GROUP_STACK_DEPTH
           data returns a single value, the current depth of the debug message group stack.

       GL_CONTEXT_FLAGS
           data returns one value, the flags with which the context was created (such as
           debugging functionality).

       GL_CULL_FACE
           data returns a single boolean value indicating whether polygon culling is enabled. The
           initial value is GL_FALSE. See glCullFace().

       GL_CURRENT_PROGRAM
           data returns one value, the name of the program object that is currently active, or 0
           if no program object is active. See glUseProgram().

       GL_DEPTH_CLEAR_VALUE
           data 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 -1.0 returns the most negative representable integer value. The initial value is
           1. See glClearDepth().

       GL_DEPTH_FUNC
           data returns one value, the symbolic constant that indicates the depth comparison
           function. The initial value is GL_LESS. See glDepthFunc().

       GL_DEPTH_RANGE
           data 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 -1.0 returns the most negative representable integer value. The initial value is
           (0, 1). See glDepthRange().

       GL_DEPTH_TEST
           data returns a single boolean value indicating whether depth testing of fragments is
           enabled. The initial value is GL_FALSE. See glDepthFunc() and glDepthRange().

       GL_DEPTH_WRITEMASK
           data returns a single boolean value indicating if the depth buffer is enabled for
           writing. The initial value is GL_TRUE. See glDepthMask().

       GL_DITHER
           data returns a single boolean value indicating whether dithering of fragment colors
           and indices is enabled. The initial value is GL_TRUE.

       GL_DOUBLEBUFFER
           data returns a single boolean value indicating whether double buffering is supported.

       GL_DRAW_BUFFER
           data returns one value, a symbolic constant indicating which buffers are being drawn
           to. See glDrawBuffer(). The initial value is GL_BACK if there are back buffers,
           otherwise it is GL_FRONT.

       GL_DRAW_BUFFERi
           data returns one value, a symbolic constant indicating which buffers are being drawn
           to by the corresponding output color. See glDrawBuffers(). The initial value of
           GL_DRAW_BUFFER0 is GL_BACK if there are back buffers, otherwise it is GL_FRONT. The
           initial values of draw buffers for all other output colors is GL_NONE.

       GL_DRAW_FRAMEBUFFER_BINDING
           data returns one value, the name of the framebuffer object currently bound to the
           GL_DRAW_FRAMEBUFFER target. If the default framebuffer is bound, this value will be
           zero. The initial value is zero. See glBindFramebuffer().

       GL_READ_FRAMEBUFFER_BINDING
           data returns one value, the name of the framebuffer object currently bound to the
           GL_READ_FRAMEBUFFER target. If the default framebuffer is bound, this value will be
           zero. The initial value is zero. See glBindFramebuffer().

       GL_ELEMENT_ARRAY_BUFFER_BINDING
           data returns a single value, the name of the buffer object currently bound to the
           target GL_ELEMENT_ARRAY_BUFFER. If no buffer object is bound to this target, 0 is
           returned. The initial value is 0. See glBindBuffer().

       GL_FRAGMENT_SHADER_DERIVATIVE_HINT
           data returns one value, a symbolic constant indicating the mode of the derivative
           accuracy hint for fragment shaders. The initial value is GL_DONT_CARE. See glHint().

       GL_IMPLEMENTATION_COLOR_READ_FORMAT
           data returns a single GLenum value indicating the implementation's preferred pixel
           data format. See glReadPixels().

       GL_IMPLEMENTATION_COLOR_READ_TYPE
           data returns a single GLenum value indicating the implementation's preferred pixel
           data type. See glReadPixels().

       GL_LINE_SMOOTH
           data returns a single boolean value indicating whether antialiasing of lines is
           enabled. The initial value is GL_FALSE. See glLineWidth().

       GL_LINE_SMOOTH_HINT
           data returns one value, a symbolic constant indicating the mode of the line
           antialiasing hint. The initial value is GL_DONT_CARE. See glHint().

       GL_LINE_WIDTH
           data returns one value, the line width as specified with glLineWidth(). The initial
           value is 1.

       GL_LAYER_PROVOKING_VERTEX
           data 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
           GL_PROVOKING_VERTEX, then the vertex selection follows the convention specified by
           glProvokingVertex(). If the value returned is equivalent to
           GL_FIRST_VERTEX_CONVENTION, then the selection is always taken from the first vertex
           in the primitive. If the value returned is equivalent to GL_LAST_VERTEX_CONVENTION,
           then the selection is always taken from the last vertex in the primitive. If the value
           returned is equivalent to GL_UNDEFINED_VERTEX, then the selection is not guaranteed to
           be taken from any specific vertex in the primitive.

       GL_LOGIC_OP_MODE
           data returns one value, a symbolic constant indicating the selected logic operation
           mode. The initial value is GL_COPY. See glLogicOp().

       GL_MAJOR_VERSION
           data returns one value, the major version number of the OpenGL API supported by the
           current context.

       GL_MAX_3D_TEXTURE_SIZE
           data returns one value, a rough estimate of the largest 3D texture that the GL can
           handle. The value must be at least 64. Use GL_PROXY_TEXTURE_3D to determine if a
           texture is too large. See glTexImage3D().

       GL_MAX_ARRAY_TEXTURE_LAYERS
           data returns one value. The value indicates the maximum number of layers allowed in an
           array texture, and must be at least 256. See glTexImage2D().

       GL_MAX_CLIP_DISTANCES
           data returns one value, the maximum number of application-defined clipping distances.
           The value must be at least 8.

       GL_MAX_COLOR_TEXTURE_SAMPLES
           data returns one value, the maximum number of samples in a color multisample texture.

       GL_MAX_COMBINED_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to all
           active shaders.

       GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
           data 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 glActiveTexture().

       GL_MAX_COMBINED_UNIFORM_BLOCKS
           data returns one value, the maximum number of uniform blocks per program. The value
           must be at least 70. See glUniformBlockBinding().

       GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_CUBE_MAP_TEXTURE_SIZE
           data 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
           GL_PROXY_TEXTURE_CUBE_MAP to determine if a texture is too large. See glTexImage2D().

       GL_MAX_DEPTH_TEXTURE_SAMPLES
           data returns one value, the maximum number of samples in a multisample depth or
           depth-stencil texture.

       GL_MAX_DRAW_BUFFERS
           data 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 glDrawBuffers().

       GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
           data returns one value, the maximum number of active draw buffers when using
           dual-source blending. The value must be at least 1. See glBlendFunc() and
           glBlendFuncSeparate().

       GL_MAX_ELEMENTS_INDICES
           data returns one value, the recommended maximum number of vertex array indices. See
           glDrawRangeElements().

       GL_MAX_ELEMENTS_VERTICES
           data returns one value, the recommended maximum number of vertex array vertices. See
           glDrawRangeElements().

       GL_MAX_FRAGMENT_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to
           fragment shaders.

       GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a fragment shader.

       GL_MAX_FRAGMENT_INPUT_COMPONENTS
           data returns one value, the maximum number of components of the inputs read by the
           fragment shader, which must be at least 128.

       GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_FRAGMENT_UNIFORM_VECTORS
           data 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 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS divided
           by 4 and must be at least 256. See glUniform().

       GL_MAX_FRAGMENT_UNIFORM_BLOCKS
           data returns one value, the maximum number of uniform blocks per fragment shader. The
           value must be at least 12. See glUniformBlockBinding().

       GL_MAX_FRAMEBUFFER_WIDTH
           data returns one value, the maximum width for a framebuffer that has no attachments,
           which must be at least 16384. See

           glFramebufferParameter.

       GL_MAX_FRAMEBUFFER_HEIGHT
           data returns one value, the maximum height for a framebuffer that has no attachments,
           which must be at least 16384. See

           glFramebufferParameter.

       GL_MAX_FRAMEBUFFER_LAYERS
           data returns one value, the maximum number of layers for a framebuffer that has no
           attachments, which must be at least 2048. See

           glFramebufferParameter.

       GL_MAX_FRAMEBUFFER_SAMPLES
           data returns one value, the maximum samples in a framebuffer that has no attachments,
           which must be at least 4. See

           glFramebufferParameter.

       GL_MAX_GEOMETRY_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to
           geometry shaders.

       GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a geometry shader.

       GL_MAX_GEOMETRY_INPUT_COMPONENTS
           data returns one value, the maximum number of components of inputs read by a geometry
           shader, which must be at least 64.

       GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
           data returns one value, the maximum number of components of outputs written by a
           geometry shader, which must be at least 128.

       GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
           data 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
           glActiveTexture().

       GL_MAX_GEOMETRY_UNIFORM_BLOCKS
           data returns one value, the maximum number of uniform blocks per geometry shader. The
           value must be at least 12. See glUniformBlockBinding().

       GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_INTEGER_SAMPLES
           data returns one value, the maximum number of samples supported in integer format
           multisample buffers.

       GL_MIN_MAP_BUFFER_ALIGNMENT
           data returns one value, the minimum alignment in basic machine units of pointers
           returned fromglMapBuffer() and glMapBufferRange(). This value must be a power of two
           and must be at least 64.

       GL_MAX_LABEL_LENGTH
           data returns one value, the maximum length of a label that may be assigned to an
           object. See glObjectLabel() and glObjectPtrLabel().

       GL_MAX_PROGRAM_TEXEL_OFFSET
           data returns one value, the maximum texel offset allowed in a texture lookup, which
           must be at least 7.

       GL_MIN_PROGRAM_TEXEL_OFFSET
           data returns one value, the minimum texel offset allowed in a texture lookup, which
           must be at most -8.

       GL_MAX_RECTANGLE_TEXTURE_SIZE
           data 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
           GL_PROXY_TEXTURE_RECTANGLE to determine if a texture is too large. See glTexImage2D().

       GL_MAX_RENDERBUFFER_SIZE
           data returns one value. The value indicates the maximum supported size for
           renderbuffers. See glFramebufferRenderbuffer().

       GL_MAX_SAMPLE_MASK_WORDS
           data returns one value, the maximum number of sample mask words.

       GL_MAX_SERVER_WAIT_TIMEOUT
           data returns one value, the maximum glWaitSync() timeout interval.

       GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
           data returns one value, the maximum number of shader storage buffer binding points on
           the context, which must be at least 8.

       GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to
           tessellation control shaders.

       GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to
           tessellation evaluation shaders.

       GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a tessellation control shader.

       GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a tessellation evaluation shader.

       GL_MAX_TEXTURE_BUFFER_SIZE
           data 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.

       GL_MAX_TEXTURE_IMAGE_UNITS
           data 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
           glActiveTexture().

       GL_MAX_TEXTURE_LOD_BIAS
           data returns one value, the maximum, absolute value of the texture level-of-detail
           bias. The value must be at least 2.0.

       GL_MAX_TEXTURE_SIZE
           data 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
           GL_PROXY_TEXTURE_1D or GL_PROXY_TEXTURE_2D to determine if a texture is too large. See
           glTexImage1D() and glTexImage2D().

       GL_MAX_UNIFORM_BUFFER_BINDINGS
           data returns one value, the maximum number of uniform buffer binding points on the
           context, which must be at least 36.

       GL_MAX_UNIFORM_BLOCK_SIZE
           data returns one value, the maximum size in basic machine units of a uniform block,
           which must be at least 16384.

       GL_MAX_UNIFORM_LOCATIONS
           data returns one value, the maximum number of explicitly assignable uniform locations,
           which must be at least 1024.

       GL_MAX_VARYING_COMPONENTS
           data returns one value, the number components for varying variables, which must be at
           least 60.

       GL_MAX_VARYING_VECTORS
           data returns one value, the number 4-vectors for varying variables, which is equal to
           the value of GL_MAX_VARYING_COMPONENTS and must be at least 15.

       GL_MAX_VARYING_FLOATS
           data 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.

       GL_MAX_VERTEX_ATOMIC_COUNTERS
           data returns a single value, the maximum number of atomic counters available to vertex
           shaders.

       GL_MAX_VERTEX_ATTRIBS
           data 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 glVertexAttrib().

       GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
           data returns one value, the maximum number of active shader storage blocks that may be
           accessed by a vertex shader.

       GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
           data 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
           glActiveTexture().

       GL_MAX_VERTEX_UNIFORM_COMPONENTS
           data 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 glUniform().

       GL_MAX_VERTEX_UNIFORM_VECTORS
           data returns one value, the maximum number of 4-vectors that may be held in uniform
           variable storage for the vertex shader. The value of GL_MAX_VERTEX_UNIFORM_VECTORS is
           equal to the value of GL_MAX_VERTEX_UNIFORM_COMPONENTS and must be at least 256.

       GL_MAX_VERTEX_OUTPUT_COMPONENTS
           data returns one value, the maximum number of components of output written by a vertex
           shader, which must be at least 64.

       GL_MAX_VERTEX_UNIFORM_BLOCKS
           data returns one value, the maximum number of uniform blocks per vertex shader. The
           value must be at least 12. See glUniformBlockBinding().

       GL_MAX_VIEWPORT_DIMS
           data 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 glViewport().

       GL_MAX_VIEWPORTS
           data returns one value, the maximum number of simultaneous viewports that are
           supported. The value must be at least 16. See glViewportIndexed().

       GL_MINOR_VERSION
           data returns one value, the minor version number of the OpenGL API supported by the
           current context.

       GL_NUM_COMPRESSED_TEXTURE_FORMATS
           data returns a single integer value indicating the number of available compressed
           texture formats. The minimum value is 4. See glCompressedTexImage2D().

       GL_NUM_EXTENSIONS
           data returns one value, the number of extensions supported by the GL implementation
           for the current context. See glGetString().

       GL_NUM_PROGRAM_BINARY_FORMATS
           data returns one value, the number of program binary formats supported by the
           implementation.

       GL_NUM_SHADER_BINARY_FORMATS
           data 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.

       GL_PACK_ALIGNMENT
           data returns one value, the byte alignment used for writing pixel data to memory. The
           initial value is 4. See glPixelStore().

       GL_PACK_IMAGE_HEIGHT
           data returns one value, the image height used for writing pixel data to memory. The
           initial value is 0. See glPixelStore().

       GL_PACK_LSB_FIRST
           data 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 GL_FALSE. See glPixelStore().

       GL_PACK_ROW_LENGTH
           data returns one value, the row length used for writing pixel data to memory. The
           initial value is 0. See glPixelStore().

       GL_PACK_SKIP_IMAGES
           data returns one value, the number of pixel images skipped before the first pixel is
           written into memory. The initial value is 0. See glPixelStore().

       GL_PACK_SKIP_PIXELS
           data returns one value, the number of pixel locations skipped before the first pixel
           is written into memory. The initial value is 0. See glPixelStore().

       GL_PACK_SKIP_ROWS
           data 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 glPixelStore().

       GL_PACK_SWAP_BYTES
           data 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 GL_FALSE. See glPixelStore().

       GL_PIXEL_PACK_BUFFER_BINDING
           data returns a single value, the name of the buffer object currently bound to the
           target GL_PIXEL_PACK_BUFFER. If no buffer object is bound to this target, 0 is
           returned. The initial value is 0. See glBindBuffer().

       GL_PIXEL_UNPACK_BUFFER_BINDING
           data returns a single value, the name of the buffer object currently bound to the
           target GL_PIXEL_UNPACK_BUFFER. If no buffer object is bound to this target, 0 is
           returned. The initial value is 0. See glBindBuffer().

       GL_POINT_FADE_THRESHOLD_SIZE
           data returns one value, the point size threshold for determining the point size. See
           glPointParameter().

       GL_PRIMITIVE_RESTART_INDEX
           data returns one value, the current primitive restart index. The initial value is 0.
           See glPrimitiveRestartIndex().

       GL_PROGRAM_BINARY_FORMATS
           data an array of GL_NUM_PROGRAM_BINARY_FORMATS values, indicating the proram binary
           formats supported by the implementation.

       GL_PROGRAM_PIPELINE_BINDING
           data a single value, the name of the currently bound program pipeline object, or zero
           if no program pipeline object is bound. See glBindProgramPipeline().

       GL_PROGRAM_POINT_SIZE
           data 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
           gl_PointSize. If disabled, then the point size is taken from the point state as
           specified by glPointSize(). The initial value is GL_FALSE.

       GL_PROVOKING_VERTEX
           data returns one value, the currently selected provoking vertex convention. The
           initial value is GL_LAST_VERTEX_CONVENTION. See glProvokingVertex().

       GL_POINT_SIZE
           data returns one value, the point size as specified by glPointSize(). The initial
           value is 1.

       GL_POINT_SIZE_GRANULARITY
           data returns one value, the size difference between adjacent supported sizes for
           antialiased points. See glPointSize().

       GL_POINT_SIZE_RANGE
           data 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 glPointSize().

       GL_POLYGON_OFFSET_FACTOR
           data 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 glPolygonOffset().

       GL_POLYGON_OFFSET_UNITS
           data 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 glPolygonOffset().

       GL_POLYGON_OFFSET_FILL
           data returns a single boolean value indicating whether polygon offset is enabled for
           polygons in fill mode. The initial value is GL_FALSE. See glPolygonOffset().

       GL_POLYGON_OFFSET_LINE
           data returns a single boolean value indicating whether polygon offset is enabled for
           polygons in line mode. The initial value is GL_FALSE. See glPolygonOffset().

       GL_POLYGON_OFFSET_POINT
           data returns a single boolean value indicating whether polygon offset is enabled for
           polygons in point mode. The initial value is GL_FALSE. See glPolygonOffset().

       GL_POLYGON_SMOOTH
           data returns a single boolean value indicating whether antialiasing of polygons is
           enabled. The initial value is GL_FALSE. See glPolygonMode().

       GL_POLYGON_SMOOTH_HINT
           data returns one value, a symbolic constant indicating the mode of the polygon
           antialiasing hint. The initial value is GL_DONT_CARE. See glHint().

       GL_READ_BUFFER
           data returns one value, a symbolic constant indicating which color buffer is selected
           for reading. The initial value is GL_BACK if there is a back buffer, otherwise it is
           GL_FRONT. See glReadPixels().

       GL_RENDERBUFFER_BINDING
           data returns a single value, the name of the renderbuffer object currently bound to
           the target GL_RENDERBUFFER. If no renderbuffer object is bound to this target, 0 is
           returned. The initial value is 0. See glBindRenderbuffer().

       GL_SAMPLE_BUFFERS
           data returns a single integer value indicating the number of sample buffers associated
           with the framebuffer. See glSampleCoverage().

       GL_SAMPLE_COVERAGE_VALUE
           data returns a single positive floating-point value indicating the current sample
           coverage value. See glSampleCoverage().

       GL_SAMPLE_COVERAGE_INVERT
           data returns a single boolean value indicating if the temporary coverage value should
           be inverted. See glSampleCoverage().

       GL_SAMPLER_BINDING
           data returns a single value, the name of the sampler object currently bound to the
           active texture unit. The initial value is 0. See glBindSampler().

       GL_SAMPLES
           data returns a single integer value indicating the coverage mask size. See
           glSampleCoverage().

       GL_SCISSOR_BOX
           data returns four values: the x and y window coordinates of the scissor box, followed
           by its width and height. Initially the x and y window coordinates are both 0 and the
           width and height are set to the size of the window. See glScissor().

       GL_SCISSOR_TEST
           data returns a single boolean value indicating whether scissoring is enabled. The
           initial value is GL_FALSE. See glScissor().

       GL_SHADER_COMPILER
           data 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 GL_SHADER_COMPILER will always be
           GL_TRUE.

       GL_SHADER_STORAGE_BUFFER_BINDING
           When used with non-indexed variants of glGet (such as glGetIntegerv), data returns a
           single value, the name of the buffer object currently bound to the target
           GL_SHADER_STORAGE_BUFFER. If no buffer object is bound to this target, 0 is returned.
           When used with indexed variants of glGet (such as glGetIntegeri_v), data 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 glBindBuffer(),
           glBindBufferBase(), and glBindBufferRange().

       GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
           data returns a single value, the minimum required alignment for shader storage buffer
           sizes and offset. The initial value is 1. See glShaderStorageBlockBinding().

       GL_SHADER_STORAGE_BUFFER_START
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_SHADER_STORAGE_BUFFER_SIZE
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_SMOOTH_LINE_WIDTH_RANGE
           data returns a pair of values indicating the range of widths supported for smooth
           (antialiased) lines. See glLineWidth().

       GL_SMOOTH_LINE_WIDTH_GRANULARITY
           data returns a single value indicating the level of quantization applied to smooth
           line width parameters.

       GL_STENCIL_BACK_FAIL
           data returns one value, a symbolic constant indicating what action is taken for
           back-facing polygons when the stencil test fails. The initial value is GL_KEEP. See
           glStencilOpSeparate().

       GL_STENCIL_BACK_FUNC
           data 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 GL_ALWAYS. See glStencilFuncSeparate().

       GL_STENCIL_BACK_PASS_DEPTH_FAIL
           data 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 GL_KEEP. See glStencilOpSeparate().

       GL_STENCIL_BACK_PASS_DEPTH_PASS
           data 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 GL_KEEP. See glStencilOpSeparate().

       GL_STENCIL_BACK_REF
           data 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
           glStencilFuncSeparate().

       GL_STENCIL_BACK_VALUE_MASK
           data 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 glStencilFuncSeparate().

       GL_STENCIL_BACK_WRITEMASK
           data returns one value, the mask that controls writing of the stencil bitplanes for
           back-facing polygons. The initial value is all 1's. See glStencilMaskSeparate().

       GL_STENCIL_CLEAR_VALUE
           data returns one value, the index to which the stencil bitplanes are cleared. The
           initial value is 0. See glClearStencil().

       GL_STENCIL_FAIL
           data returns one value, a symbolic constant indicating what action is taken when the
           stencil test fails. The initial value is GL_KEEP. See glStencilOp(). This stencil
           state only affects non-polygons and front-facing polygons. Back-facing polygons use
           separate stencil state. See glStencilOpSeparate().

       GL_STENCIL_FUNC
           data 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 GL_ALWAYS. See glStencilFunc(). This stencil state only affects non-polygons and
           front-facing polygons. Back-facing polygons use separate stencil state. See
           glStencilFuncSeparate().

       GL_STENCIL_PASS_DEPTH_FAIL
           data 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 GL_KEEP. See
           glStencilOp(). This stencil state only affects non-polygons and front-facing polygons.
           Back-facing polygons use separate stencil state. See glStencilOpSeparate().

       GL_STENCIL_PASS_DEPTH_PASS
           data 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 GL_KEEP. See
           glStencilOp(). This stencil state only affects non-polygons and front-facing polygons.
           Back-facing polygons use separate stencil state. See glStencilOpSeparate().

       GL_STENCIL_REF
           data returns one value, the reference value that is compared with the contents of the
           stencil buffer. The initial value is 0. See glStencilFunc(). This stencil state only
           affects non-polygons and front-facing polygons. Back-facing polygons use separate
           stencil state. See glStencilFuncSeparate().

       GL_STENCIL_TEST
           data returns a single boolean value indicating whether stencil testing of fragments is
           enabled. The initial value is GL_FALSE. See glStencilFunc() and glStencilOp().

       GL_STENCIL_VALUE_MASK
           data 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 glStencilFunc(). This stencil state only affects non-polygons and front-facing
           polygons. Back-facing polygons use separate stencil state. See
           glStencilFuncSeparate().

       GL_STENCIL_WRITEMASK
           data returns one value, the mask that controls writing of the stencil bitplanes. The
           initial value is all 1's. See glStencilMask(). This stencil state only affects
           non-polygons and front-facing polygons. Back-facing polygons use separate stencil
           state. See glStencilMaskSeparate().

       GL_STEREO
           data returns a single boolean value indicating whether stereo buffers (left and right)
           are supported.

       GL_SUBPIXEL_BITS
           data 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.

       GL_TEXTURE_BINDING_1D
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_1D. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_1D_ARRAY
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_1D_ARRAY. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_2D
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_2D. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_2D_ARRAY
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_2D_ARRAY. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_2D_MULTISAMPLE
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_2D_MULTISAMPLE. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_2D_MULTISAMPLE_ARRAY. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_3D
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_3D. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_BUFFER
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_BUFFER. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_CUBE_MAP
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_CUBE_MAP. The initial value is 0. See glBindTexture().

       GL_TEXTURE_BINDING_RECTANGLE
           data returns a single value, the name of the texture currently bound to the target
           GL_TEXTURE_RECTANGLE. The initial value is 0. See glBindTexture().

       GL_TEXTURE_COMPRESSION_HINT
           data returns a single value indicating the mode of the texture compression hint. The
           initial value is GL_DONT_CARE.

       GL_TEXTURE_BINDING_BUFFER
           data returns a single value, the name of the buffer object currently bound to the
           GL_TEXTURE_BUFFER buffer binding point. The initial value is 0. See glBindBuffer().

       GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
           data returns a single value, the minimum required alignment for texture buffer sizes
           and offset. The initial value is 1. See glUniformBlockBinding().

       GL_TIMESTAMP
           data returns a single value, the 64-bit value of the current GL time. See
           glQueryCounter().

       GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
           When used with non-indexed variants of glGet (such as glGetIntegerv), data returns a
           single value, the name of the buffer object currently bound to the target
           GL_TRANSFORM_FEEDBACK_BUFFER. If no buffer object is bound to this target, 0 is
           returned. When used with indexed variants of glGet (such as glGetIntegeri_v), data
           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 glBindBuffer(),
           glBindBufferBase(), and glBindBufferRange().

       GL_TRANSFORM_FEEDBACK_BUFFER_START
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_UNIFORM_BUFFER_BINDING
           When used with non-indexed variants of glGet (such as glGetIntegerv), data returns a
           single value, the name of the buffer object currently bound to the target
           GL_UNIFORM_BUFFER. If no buffer object is bound to this target, 0 is returned. When
           used with indexed variants of glGet (such as glGetIntegeri_v), data 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 glBindBuffer(), glBindBufferBase(),
           and glBindBufferRange().

       GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
           data returns a single value, the minimum required alignment for uniform buffer sizes
           and offset. The initial value is 1. See glUniformBlockBinding().

       GL_UNIFORM_BUFFER_SIZE
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_UNIFORM_BUFFER_START
           When used with indexed variants of glGet (such as glGetInteger64i_v), data 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 glBindBufferRange().

       GL_UNPACK_ALIGNMENT
           data returns one value, the byte alignment used for reading pixel data from memory.
           The initial value is 4. See glPixelStore().

       GL_UNPACK_IMAGE_HEIGHT
           data returns one value, the image height used for reading pixel data from memory. The
           initial is 0. See glPixelStore().

       GL_UNPACK_LSB_FIRST
           data 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 GL_FALSE. See glPixelStore().

       GL_UNPACK_ROW_LENGTH
           data returns one value, the row length used for reading pixel data from memory. The
           initial value is 0. See glPixelStore().

       GL_UNPACK_SKIP_IMAGES
           data returns one value, the number of pixel images skipped before the first pixel is
           read from memory. The initial value is 0. See glPixelStore().

       GL_UNPACK_SKIP_PIXELS
           data returns one value, the number of pixel locations skipped before the first pixel
           is read from memory. The initial value is 0. See glPixelStore().

       GL_UNPACK_SKIP_ROWS
           data 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 glPixelStore().

       GL_UNPACK_SWAP_BYTES
           data 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 GL_FALSE. See glPixelStore().

       GL_VERTEX_ARRAY_BINDING
           data 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 glBindVertexArray().

       GL_VERTEX_BINDING_DIVISOR
           Accepted by the indexed forms.  data 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 index.

       GL_VERTEX_BINDING_OFFSET
           Accepted by the indexed forms.  data 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 index.

       GL_VERTEX_BINDING_STRIDE
           Accepted by the indexed forms.  data 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 index.

       GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
           data returns a single integer value containing the maximum offset that may be added to
           a vertex binding offset.

       GL_MAX_VERTEX_ATTRIB_BINDINGS
           data returns a single integer value containing the maximum number of vertex buffers
           that may be bound.

       GL_VIEWPORT
           When used with non-indexed variants of glGet (such as glGetIntegerv), data returns
           four values: the x and y window coordinates of the viewport, followed by its width and
           height. Initially the x and y window coordinates are both set to 0, and the width and
           height are set to the width and height of the window into which the GL will do its
           rendering. See glViewport().

           When used with indexed variants of glGet (such as glGetIntegeri_v), data returns four
           values: the x and y window coordinates of the indexed viewport, followed by its width
           and height. Initially the x and y window coordinates are both set to 0, and the width
           and height are set to the width and height of the window into which the GL will do its
           rendering. See

           glViewportIndexedf.

       GL_VIEWPORT_BOUNDS_RANGE
           data returns two values, the minimum and maximum viewport bounds range. The minimum
           range should be at least [-32768, 32767].

       GL_VIEWPORT_INDEX_PROVOKING_VERTEX
           data 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
           GL_PROVOKING_VERTEX, then the vertex selection follows the convention specified by
           glProvokingVertex(). If the value returned is equivalent to
           GL_FIRST_VERTEX_CONVENTION, then the selection is always taken from the first vertex
           in the primitive. If the value returned is equivalent to GL_LAST_VERTEX_CONVENTION,
           then the selection is always taken from the last vertex in the primitive. If the value
           returned is equivalent to GL_UNDEFINED_VERTEX, then the selection is not guaranteed to
           be taken from any specific vertex in the primitive.

       GL_VIEWPORT_SUBPIXEL_BITS
           data 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.

       GL_MAX_ELEMENT_INDEX
           data returns a single value, the maximum index that may be specified during the
           transfer of generic vertex attributes to the GL.

       Many of the boolean parameters can also be queried more easily using glIsEnabled().

NOTES

       The following parameters return the associated value for the active texture unit:
       GL_TEXTURE_1D, GL_TEXTURE_BINDING_1D, GL_TEXTURE_2D, GL_TEXTURE_BINDING_2D, GL_TEXTURE_3D
       and GL_TEXTURE_BINDING_3D.

       GL_MAX_VIEWPORTS, GL_VIEWPORT_SUBPIXEL_BITS, GL_VIEWPORT_BOUNDS_RANGE,
       GL_LAYER_PROVOKING_VERTEX, and GL_VIEWPORT_INDEX_PROVOKING_VERTEX are available only if
       the GL version is 4.1 or greater.

       GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
       GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
       GL_MAX_FRAMGENT_ATOMIC_COUNTERS, and GL_MIN_MAP_BUFFER_ALIGNMENT are accepted by pname
       only if the GL version is 4.2 or greater.

       GL_MAX_ELEMENT_INDEX is accepted by pname only if the GL version is 4.3 or greater.

       GL_MAX_COMPUTE_UNIFORM_BLOCKS, GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
       GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
       GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
       GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_COUNT, and
       GL_MAX_COMPUTE_WORK_GROUP_SIZE and GL_DISPATCH_INDIRECT_BUFFER_BINDING are available only
       if the GL version is 4.3 or greater.

       GL_MAX_DEBUG_GROUP_STACK_DEPTH, GL_DEBUG_GROUP_STACK_DEPTH and GL_MAX_LABEL_LENGTH are
       accepted only if the GL version is 4.3 or greater.

       GL_MAX_UNIFORM_LOCATIONS is accepted only if the GL version is 4.3 or greater.

       GL_MAX_FRAMEBUFFER_WIDTH, GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_LAYERS, and
       GL_MAX_FRAMEBUFFER_SAMPLES are available only if the GL version is 4.3 or greater.

       GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
       GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
       GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, and GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS are
       available only if the GL version is 4.3 or higher.

       GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT is available only if the GL version is 4.3 or greater.

       GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE,
       GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET and GL_MAX_VERTEX_ATTRIB_BINDINGS are available only
       if the GL version is 4.3 or greater.

ERRORS

       GL_INVALID_ENUM is generated if pname is not an accepted value.

       GL_INVALID_VALUE is generated on any of glGetBooleani_v, glGetIntegeri_v, or
       glGetInteger64i_v if index is outside of the valid range for the indexed state target.

VERSION SUPPORT

       ┌──────────────────┬───────────────────────────────────────────────────────────────────────┐
       │                  │                OpenGL Version                                         │
       ├──────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/                 │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature           │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name              │     │     │     │     │     │     │     │     │     │     │     │     │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetBooleani_v   │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetBooleanv     │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetDoublei_v    │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetDoublev      │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetFloati_v     │  -  │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetFloatv       │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetInteger64i_v │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetInteger64v   │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetIntegeri_v   │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├──────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glGetIntegerv     │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       └──────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

       glGetActiveUniform(), glGetAttachedShaders(), glGetAttribLocation(),
       glGetBufferParameter(), glGetBufferPointerv(), glGetBufferSubData(),
       glGetCompressedTexImage(), glGetError(), glGetProgram(), glGetProgramInfoLog(),
       glGetQueryiv(), glGetQueryObject(), glGetShader(), glGetShaderInfoLog(),
       glGetShaderSource(), glGetString(), glGetTexImage(), glGetTexLevelParameter(),
       glGetTexParameter(), glGetUniform(), glGetUniformLocation(), glGetVertexAttrib(),
       glGetVertexAttribPointerv(), glIsEnabled()

COPYRIGHT

       Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2010-2014 Khronos Group. This
       document is licensed under the SGI Free Software B License. For details, see
       http://oss.sgi.com/projects/FreeB/.

COPYRIGHT

       Copyright © 1991-2006 Silicon Graphics, Inc.
       Copyright © 2010-2014 Khronos Group

[FIXME: source]                             01/03/2018                                  GLGET(3G)