glGet

3G

glGet

return the value or values of a selected parameter

# C Specification

                    void glGetBooleanv
                    GLenum pname
                    GLboolean * 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 glGetInteger64i_v
                    GLenum target
                    GLuint index
                    GLint64 * data

## Parameters

`pname`

- Specifies the parameter value to be returned. 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 `params` is a pointer to an array of the indicated type in which to place the returned data.

Type conversion is performed if `params` 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` 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`

- `params` returns a single value indicating the active multitexture unit. The initial value is `GL_TEXTURE0`. See

  glActiveTexture

  .

`GL_ALIASED_LINE_WIDTH_RANGE`

- `params` returns a pair of values indicating the range of widths supported for aliased lines. See

  glLineWidth

  .

`GL_ALIASED_POINT_SIZE_RANGE`

- `params` returns two values: the smallest and largest supported sizes for points. The smallest size must be at most 1, and the largest size must be at least 1.

`GL_ALPHA_BITS`

- `params` returns one value, the number of alpha bitplanes in the color buffer of the currently bound draw framebuffer. This is deﬁned only if all color attachments of the draw framebuffer have identical formats, in which case the number of alpha bits of color attachment zero are returned.

`GL_ARRAY_BUFFER_BINDING`

- `params` 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`

- `params` returns a single boolean value indicating whether blending is enabled. The initial value is `GL_FALSE`. See

  glBlendFunc

  .

`GL_BLEND_COLOR`

- `params` returns four values, the red, green, blue, and alpha values which are the components of the blend color. See

  glBlendColor

  .

`GL_BLEND_DST_ALPHA`

- `params` 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`

- `params` 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_ALPHA`

- `params` 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_EQUATION_RGB`

- `params` 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_SRC_ALPHA`

- `params` 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`

- `params` returns one value, the symbolic constant identifying the RGB source blend function. The initial value is `GL_ONE`. See

  glBlendFunc

  and

  glBlendFuncSeparate

  .

`GL_BLUE_BITS`

- `params` returns one value, the number of blue bitplanes in the color buffer of the currently bound draw framebuffer. This is deﬁned only if all color attachments of the draw framebuffer have identical formats, in which case the number of blue bits of color attachment zero are returned.

`GL_COLOR_CLEAR_VALUE`

- `params` 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_WRITEMASK`

- `params` 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`

- `params` returns a list of symbolic constants of length `GL_NUM_COMPRESSED_TEXTURE_FORMATS` indicating which compressed texture formats are available. See

  glCompressedTexImage2D

  .

`GL_COPY_READ_BUFFER_BINDING`

- `params` returns a single value, the name of the buffer object currently bound to the target `GL_COPY_READ_BUFFER`. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See

  glBindBuffer

  .

`GL_COPY_WRITE_BUFFER_BINDING`

- `params` returns a single value, the name of the buffer object currently bound to the target `GL_COPY_WRITE_BUFFER`. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See

  glBindBuffer

  .

`GL_CULL_FACE`

- `params` returns a single boolean value indicating whether polygon culling is enabled. The initial value is `GL_FALSE`. See

  glCullFace

  .

`GL_CULL_FACE_MODE`

- `params` returns a single value indicating the mode of polygon culling. The initial value is `GL_BACK`. See

  glCullFace

  .

`GL_CURRENT_PROGRAM`

- `params` 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_BITS`

- `params` returns one value, the number of bitplanes in the depth buffer of the currently bound framebuffer.

`GL_DEPTH_CLEAR_VALUE`

- `params` returns one value, the value that is used to clear the depth buffer. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is 1. See

  glClearDepthf

  .

`GL_DEPTH_FUNC`

- `params` returns one value, the symbolic constant that indicates the depth comparison function. The initial value is `GL_LESS`. See

  glDepthFunc

  .

`GL_DEPTH_RANGE`

- `params` returns two values: the near and far mapping limits for the depth buffer. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 1). See

  glDepthRangef

  .

`GL_DEPTH_TEST`

- `params` returns a single boolean value indicating whether depth testing of fragments is enabled. The initial value is `GL_FALSE`. See

  glDepthFunc

  and

  glDepthRangef

  .

`GL_DEPTH_WRITEMASK`

- `params` returns a single boolean value indicating if the depth buffer is enabled for writing. The initial value is `GL_TRUE`. See

  glDepthMask

  .

`GL_DISPATCH_INDIRECT_BUFFER_BINDING`

- `params` 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_DITHER`

- `params` returns a single boolean value indicating whether dithering of fragment colors and indices is enabled. The initial value is `GL_TRUE`.

`GL_DRAW_BUFFER` i

- `params` 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`. The initial values of draw buffers for all other output colors is `GL_NONE`.

`GL_DRAW_FRAMEBUFFER_BINDING`

- `params` 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_ELEMENT_ARRAY_BUFFER_BINDING`

- `params` 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`

- `params` 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_FRONT_FACE`

- `params` returns a single value indicating the winding order of polygon front faces. The initial value is `GL_CCW`. See

  glFrontFace

  .

`GL_GENERATE_MIPMAP_HINT`

- `params` returns one value, a symbolic constant indicating the mode of the generate mipmap quality hint. The initial value is `GL_DONT_CARE`. See

  glHint

  .

`GL_GREEN_BITS`

- `params` returns one value, the number of green bitplanes in the color buffer of the currently bound draw framebuffer. This is deﬁned only if all color attachments of the draw framebuffer have identical formats, in which case the number of green bits of color attachment zero are returned.

`GL_IMAGE_BINDING_LAYERED`

- `params` returns one value, corresponding to whether the image bound to the indexed image unit is layered or not.

`GL_IMPLEMENTATION_COLOR_READ_FORMAT`

- `params` returns one value, the format chosen by the implementation in which pixels may be read from the color buffer of the currently bound framebuffer in conjunction with `GL_IMPLEMENTATION_COLOR_READ_TYPE`. See

  glReadPixels

  .

`GL_IMPLEMENTATION_COLOR_READ_TYPE`

- `params` returns one value, the type chosen by the implementation with which pixels may be read from the color buffer of the currently bound framebuffer in conjunction with `GL_IMPLEMENTATION_COLOR_READ_FORMAT`. See

  glReadPixels

  .

`GL_LINE_WIDTH`

- `params` returns one value, the line width as specified with

  glLineWidth

  . The initial value is 1.

`GL_MAJOR_VERSION`

- `params` returns one value, the major version number of the OpenGL ES API supported by the current context. This must be 3.

`GL_MAX_3D_TEXTURE_SIZE`

- `params` returns one value, a rough estimate of the largest 3D texture that the GL can handle. The value must be at least 256. See

  glTexImage3D

  .

`GL_MAX_ARRAY_TEXTURE_LAYERS`

- `params` 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_COLOR_ATTACHMENTS`

- `params` returns one value, the maximum number of color attachment points in a framebuffer object. The value must be at least 4. See

  glFramebufferRenderbuffer

  and

  glFramebufferTexture2D

  .

`GL_MAX_COLOR_TEXTURE_SAMPLES`

- `params` returns one value, the maximum number of samples in a color multisample texture.

`GL_MAX_COMBINED_ATOMIC_COUNTERS`

- `params` returns a single value, the maximum number of atomic counters available to all active shaders.

`GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS`

- `params` 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_COMBINED_FRAGMENT_UNIFORM_COMPONENTS`

- `params` returns one value, the number of words for fragment shader uniform variables in all uniform blocks (including default). The value must be at least `GL_MAX_FRAGMENT_UNIFORM_COMPONENTS` + `GL_MAX_UNIFORM_BLOCK_SIZE` * `GL_MAX_FRAGMENT_UNIFORM_BLOCKS` / 4. See

  glUniform

  .

`GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS`

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

`GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS`

- `params` 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 32. See

  glActiveTexture

  .

`GL_MAX_COMBINED_UNIFORM_BLOCKS`

- `params` returns one value, the maximum number of uniform blocks per program. The value must be at least 24. See

  glUniformBlockBinding

  .

`GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS`

- `params` returns one value, the number of words for vertex shader uniform variables in all uniform blocks (including default). The value must be at least . `GL_MAX_VERTEX_UNIFORM_COMPONENTS` + `GL_MAX_UNIFORM_BLOCK_SIZE` * `GL_MAX_VERTEX_UNIFORM_BLOCKS` / 4. See

  glUniform

  .

`GL_MAX_COMPUTE_ATOMIC_COUNTERS`

- `params` returns a single value, the maximum number of atomic counters available to compute shaders.

`GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS`

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

`GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS`

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

`GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS`

- `params` 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_BLOCKS`

- `params` returns one value, the maximum number of uniform blocks per compute shader. The value must be at least 14. See

  glUniformBlockBinding

  .

`GL_MAX_COMPUTE_UNIFORM_COMPONENTS`

- `params` 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_WORK_GROUP_INVOCATIONS`

- `params` 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`. `params` 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`. `params` 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_MAX_CUBE_MAP_TEXTURE_SIZE`

- `params` 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 2048. See

  glTexImage2D

  .

`GL_MAX_DRAW_BUFFERS`

- `params` returns one value, the maximum number of simultaneous outputs that may be written in a fragment shader. The value must be at least 4. See

  glDrawBuffers

  .

`GL_MAX_ELEMENT_INDEX`

- `params` returns one value, the maximum index supported by the implementation. The value must be at least 2 24 - 1 .

`GL_MAX_ELEMENTS_INDICES`

- `params` returns one value, the recommended maximum number of vertex array indices. See

  glDrawRangeElements

  .

`GL_MAX_ELEMENTS_VERTICES`

- `params` returns one value, the recommended maximum number of vertex array vertices. See

  glDrawRangeElements

  .

`GL_MAX_FRAGMENT_ATOMIC_COUNTERS`

- `params` returns a single value, the maximum number of atomic counters available to fragment shaders.

`GL_MAX_FRAGMENT_INPUT_COMPONENTS`

- `params` returns one value, the maximum number of components of the inputs read by the fragment shader, which must be at least 60.

`GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS`

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

`GL_MAX_FRAGMENT_UNIFORM_BLOCKS`

- `params` returns one value, the maximum number of uniform blocks per fragment shader. The value must be at least 12. See

  glUniformBlockBinding

  .

`GL_MAX_FRAGMENT_UNIFORM_COMPONENTS`

- `params` 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 896. See

  glUniform

  .

`GL_MAX_FRAGMENT_UNIFORM_VECTORS`

- `params` returns one value, the maximum number of vector floating-point, integer, or boolean values that can be held in uniform variable storage for a fragment shader. The value must be at least 224. See

  glUniform

  .

`GL_MAX_FRAMEBUFFER_HEIGHT`

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

  glFramebufferParameteri

  .

`GL_MAX_FRAMEBUFFER_SAMPLES`

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

  glFramebufferParameteri

  .

`GL_MAX_FRAMEBUFFER_WIDTH`

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

  glFramebufferParameteri

  .

`GL_MAX_INTEGER_SAMPLES`

- `params` returns one value, the maximum number of samples supported in integer format multisample buffers.

`GL_MAX_PROGRAM_TEXEL_OFFSET`

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

`GL_MAX_RENDERBUFFER_SIZE`

- `params` returns one value. The value indicates the maximum supported size for renderbuffers and must be at least 2048. See

  glFramebufferRenderbuffer

  .

`GL_MAX_SAMPLE_MASK_WORDS`

- `params` returns one value, the maximum number of sample mask words.

`GL_MAX_SAMPLES`

- `params` returns one value. The value indicates the maximum supported number of samples for multisampling. The value must be at least 4. See

  glGetInternalformativ

  .

`GL_MAX_SERVER_WAIT_TIMEOUT`

- `params` returns one value, the maximum

  glWaitSync

  timeout interval.

`GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS`

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

`GL_MAX_TEXTURE_IMAGE_UNITS`

- `params` 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`

- `params` 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`

- `params` returns one value. The value gives a rough estimate of the largest texture that the GL can handle. The value must be at least 2048. See

  glTexImage2D

  .

`GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS`

- `params` returns one value, the maximum number of components which can be written to a single transform feedback buffer in interleaved mode. The value must be at least 64. See

  glTransformFeedbackVaryings

  .

`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS`

- `params` returns one value, the maximum separate attributes or outputs which can be captured in separate transform feedback mode. The value must be at least 4. See

  glTransformFeedbackVaryings

  .

`GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS`

- `params` returns one value, the maximum number of components which can be written per attribute or output in separate transform feedback mode. The value must be at least 4. See

  glTransformFeedbackVaryings

  .

`GL_MAX_UNIFORM_BLOCK_SIZE`

- `params` returns one value, the maximum size in basic machine units of a uniform block. The value must be at least 16384. See

  glUniformBlockBinding

  .

`GL_MAX_UNIFORM_BUFFER_BINDINGS`

- `params` returns one value, the maximum number of uniform buffer binding points on the context, which must be at least 24.

`GL_MAX_UNIFORM_LOCATIONS`

- `params` returns one value, the maximum number of explicitly assignable uniform locations, which must be at least 1024.

`GL_MAX_VARYING_COMPONENTS`

- `params` returns one value, the number components for varying variables, which must be at least 60.

`GL_MAX_VARYING_VECTORS`

- `params` 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 vector values that can be interpolated; varying variables declared as matrices and arrays will consume multiple interpolators. The value must be at least 15.

`GL_MAX_VERTEX_ATOMIC_COUNTERS`

- `params` returns a single value, the maximum number of atomic counters available to vertex shaders.

`GL_MAX_VERTEX_ATTRIB_BINDINGS`

- `params` returns a single integer value containing the maximum number of vertex buffers that may be bound.

`GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET`

- `params` returns a single integer value containing the maximum offset that may be added to a vertex binding offset.

`GL_MAX_VERTEX_ATTRIBS`

- `params` 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`

- `params` 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`

- `params` 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_OUTPUT_COMPONENTS`

- `params` 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`

- `params` returns one value, the maximum number of uniform blocks per vertex shader. The value must be at least 12. See

  glUniformBlockBinding

  .

`GL_MAX_VERTEX_UNIFORM_COMPONENTS`

- `params` 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`

- `params` returns one value, the maximum number of vector floating-point, integer, or boolean values that can be held in uniform variable storage for a vertex shader. The value must be at least 256. See

  glUniform

  .

`GL_MAX_VIEWPORT_DIMS`

- `params` 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_MIN_PROGRAM_TEXEL_OFFSET`

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

`GL_MINOR_VERSION`

- `params` returns one value, the minor version number of the OpenGL ES API supported by the current context.

`GL_NUM_COMPRESSED_TEXTURE_FORMATS`

- `params` returns a single integer value indicating the number of available compressed texture formats. The minimum value is 10. See

  glCompressedTexImage2D

  .

`GL_NUM_EXTENSIONS`

- `params` returns one value, the number of extensions supported by the GL implementation for the current context. See

  glGetString

  .

`GL_NUM_PROGRAM_BINARY_FORMATS`

- `params` returns a single integer value indicating the number of available program binary formats. The minimum value is 0. See

  glProgramBinary

  .

`GL_NUM_SHADER_BINARY_FORMATS`

- `params` returns a single integer value indicating the number of available shader binary formats. The minimum value is 0. See

  glShaderBinary

  .

`GL_PACK_ALIGNMENT`

- `params` returns one value, the byte alignment used for writing pixel data to memory. The initial value is 4. See

  glPixelStorei

  .

`GL_PACK_ROW_LENGTH`

- `params` returns one value, the row length used for writing pixel data to memory. The initial value is 0. See

  glPixelStorei

  .

`GL_PACK_SKIP_PIXELS`

- `params` returns one value, the number of pixel locations skipped before the first pixel is written into memory. The initial value is 0. See

  glPixelStorei

  .

`GL_PACK_SKIP_ROWS`

- `params` 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

  glPixelStorei

  .

`GL_PIXEL_PACK_BUFFER_BINDING`

- `params` 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`

- `params` 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_POLYGON_OFFSET_FACTOR`

- `params` 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_FILL`

- `params` returns a single boolean value indicating whether polygon offset is enabled for polygons. The initial value is `GL_FALSE`. See

  glPolygonOffset

  .

`GL_POLYGON_OFFSET_UNITS`

- `params` 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_PRIMITIVE_RESTART_FIXED_INDEX`

- `params` returns a single boolean value indicating whether primitive restart with a fixed index is enabled. The initial value is `GL_FALSE`.

`GL_PROGRAM_BINARY_FORMATS`

- `params` returns a list of symbolic constants of length `GL_NUM_PROGRAM_BINARY_FORMATS` indicating which program binary formats are available. See

  glProgramBinary

  .

`GL_PROGRAM_PIPELINE_BINDING`

- `params` a single value, the name of the currently bound program pipeline object, or zero if no program pipeline object is bound. See

  glBindProgramPipeline

  .

`GL_READ_BUFFER`

- `params` returns one value, a symbolic constant indicating which color buffer is selected for reading. The initial value is `GL_BACK`. See

  glReadPixels

  .

`GL_READ_FRAMEBUFFER_BINDING`

- `params` 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_RED_BITS`

- `params` returns one value, the number of red bitplanes in the color buffer of the currently bound draw framebuffer. This is deﬁned only if all color attachments of the draw framebuffer have identical formats, in which case the number of red bits of color attachment zero are returned.

`GL_RENDERBUFFER_BINDING`

- `params` 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_ALPHA_TO_COVERAGE`

- `params` returns a single boolean value indicating whether modification of sample coverage based on alpha is enabled. The initial value is `GL_FALSE`. See

  glSampleCoverage

  .

`GL_SAMPLE_BUFFERS`

- `params` returns a single integer value indicating the number of sample buffers associated with the framebuffer. See

  glSampleCoverage

  .

`GL_SAMPLE_COVERAGE`

- `params` returns a single boolean value indicating whether modification of sample coverage based on the value specified by

  glSampleCoverage

  is enabled. The initial value is `GL_FALSE`.

`GL_SAMPLE_COVERAGE_INVERT`

- `params` returns a single boolean value indicating if the temporary coverage value should be inverted. See

  glSampleCoverage

  .

`GL_SAMPLE_COVERAGE_VALUE`

- `params` returns a single positive floating-point value indicating the current sample coverage value. See

  glSampleCoverage

  .

`GL_SAMPLER_BINDING`

- `params` 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`

- `params` returns a single integer value indicating the coverage mask size. See

  glSampleCoverage

  .

`GL_SCISSOR_BOX`

- `params` 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`

- `params` returns a single boolean value indicating whether scissoring is enabled. The initial value is `GL_FALSE`. See

  glScissor

  .

`GL_SHADER_BINARY_FORMATS`

- `params` returns a list of symbolic constants of length `GL_NUM_SHADER_BINARY_FORMATS` indicating which shader binary formats are available. See

  glShaderBinary

  .

`GL_SHADER_COMPILER`

- `params` returns a single boolean value indicating whether a shader compiler is supported. This value is always `GL_TRUE`. See

  glCompileShader

  .

`GL_SHADER_STORAGE_BUFFER_BINDING`

- When used with non-indexed variants of `glGet` (such as `glGetIntegerv`), `params` 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`), `params` 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`

- `params` returns a single value, the minimum required alignment for shader storage buffer sizes and offset. The initial value is 1. See

  glShaderStorateBlockBinding

  .

`GL_SHADER_STORAGE_BUFFER_SIZE`

- When used with indexed variants of `glGet` (such as `glGetInteger64i_v`), `params` 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_SHADER_STORAGE_BUFFER_START`

- When used with indexed variants of `glGet` (such as `glGetInteger64i_v`), `params` 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_STENCIL_BACK_FAIL`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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_BITS`

- `params` returns one value, the number of bitplanes in the stencil buffer of the currently bound framebuffer.

`GL_STENCIL_CLEAR_VALUE`

- `params` returns one value, the index to which the stencil bitplanes are cleared. The initial value is 0. See

  glClearStencil

  .

`GL_STENCIL_FAIL`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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`

- `params` 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_SUBPIXEL_BITS`

- `params` 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_2D`

- `params` 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`

- `params` 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_3D`

- `params` 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_CUBE_MAP`

- `params` 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_2D_MULTISAMPLE`

- `params` 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`

- `params` 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_TRANSFORM_FEEDBACK_BINDING`

- `params` returns a single value, the name of the transform feedback object currently bound to the `GL_TRANSFORM_FEEDBACK` target. If no transform feedback object is bound to this target, 0 is returned. The initial value is 0. See

  glBindTransformFeedback

  .

`GL_TRANSFORM_FEEDBACK_ACTIVE`

- `params` returns a single boolean value indicating if the currently bound transform feedback object is active. See

  glBeginTransformFeedback

  and

  glResumeTransformFeedback

  .

`GL_TRANSFORM_FEEDBACK_BUFFER_BINDING`

- When used with non-indexed variants of `glGet` (such as `glGetIntegerv`), `params` 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`), `params` 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_PAUSED`

- `params` returns a single boolean value indicating if the currently bound transform feedback object is paused. See

  glPauseTransformFeedback

  .

`GL_TRANSFORM_FEEDBACK_BUFFER_SIZE`

- When used with indexed variants of `glGet` (such as `glGetInteger64i_v`), `params` 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_TRANSFORM_FEEDBACK_BUFFER_START`

- When used with indexed variants of `glGet` (such as `glGetInteger64i_v`), `params` 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_UNIFORM_BUFFER_BINDING`

- When used with non-indexed variants of `glGet` (such as `glGetIntegerv`), `params` 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`), `params` 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`

- `params` 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`), `params` 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`), `params` 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`

- `params` returns one value, the byte alignment used for reading pixel data from memory. The initial value is 4. See

  glPixelStorei

  .

`GL_UNPACK_IMAGE_HEIGHT`

- `params` returns one value, the image height used for reading pixel data from memory. The initial is 0. See

  glPixelStorei

  .

`GL_UNPACK_ROW_LENGTH`

- `params` returns one value, the row length used for reading pixel data from memory. The initial value is 0. See

  glPixelStorei

  .

`GL_UNPACK_SKIP_IMAGES`

- `params` returns one value, the number of pixel images skipped before the first pixel is read from memory. The initial value is 0. See

  glPixelStorei

  .

`GL_UNPACK_SKIP_PIXELS`

- `params` returns one value, the number of pixel locations skipped before the first pixel is read from memory. The initial value is 0. See

  glPixelStorei

  .

`GL_UNPACK_SKIP_ROWS`

- `params` 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

  glPixelStorei

  .

`GL_VERTEX_ARRAY_BINDING`

- `params` returns a single value, the name of the vertex array object currently bound. If no vertex array object is bound, 0 is returned. The initial value is 0. See

  glBindVertexArray

  .

`GL_VERTEX_BINDING_DIVISOR`

- Accepted by the indexed forms. `params` 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. `params` 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. `params` 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_VIEWPORT`

- `params` 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

  .

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_2D`, `GL_TEXTURE_BINDING_2D`, `GL_TEXTURE_3D` and `GL_TEXTURE_BINDING_3D`.

`GL_MAX_VERTEX_ATOMIC_COUNTERS`, `GL_MAX_FRAMGENT_ATOMIC_COUNTERS`, `GL_MAX_COMPUTE_ATOMIC_COUNTERS`, `GL_MAX_COMBINED_ATOMIC_COUNTERS`, `GL_MAX_COMPUTE_UNIFORM_BLOCKS`, `GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS`, `GL_MAX_COMPUTE_UNIFORM_COMPONENTS`, `GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS`, `GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS`, `GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS`, `GL_MAX_COMPUTE_WORK_GROUP_COUNT`, `GL_MAX_COMPUTE_WORK_GROUP_SIZE`, `GL_DISPATCH_INDIRECT_BUFFER_BINDING`, `GL_MAX_UNIFORM_LOCATIONS`, `GL_MAX_FRAMEBUFFER_WIDTH`, `GL_MAX_FRAMEBUFFER_HEIGHT`, `GL_MAX_FRAMEBUFFER_SAMPLES`, `GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS`, `GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS`, `GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS`, `GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS`, `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 ES version is 3.1 or greater.

## Errors

`GL_INVALID_ENUM` is generated if `pname` is not an accepted value.

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

## API Version Support

`glGetBooleanv`
`glGetBooleani_v`
`glGetFloatv`
`glGetIntegerv`
`glGetInteger64v`
`glGetIntegeri_v`
`glGetInteger64i_v`

## See Also

glGetActiveUniform

,

glGetAttachedShaders

,

glGetAttribLocation

,

glGetBufferParameter

,

glGetBufferPointerv

,

glGetError

,

glGetProgramiv

,

glGetProgramInfoLog

,

glGetQueryiv

,

glGetQueryObjectuiv

,

glGetShaderiv

,

glGetShaderInfoLog

,

glGetShaderSource

,

glGetString

,

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/.