1991-2006 Silicon Graphics, Inc.
glGet 3G
glGet return the value or values of a selected parameter

## C Specification

void `glGetBooleanv` GLenum pname GLboolean * params

## C Specification

void `glGetFloatv` GLenum pname GLfloat * params

## C Specification

void `glGetIntegerv` GLenum pname GLint * params

## Parameters

pname

  Specifies the parameter value to be returned. The symbolic constants in the list below are accepted.

params

  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 two values, the smallest and largest supported widths for aliased lines. The range must include width 1.

`GL_ALIASED_POINT_SIZE_RANGE`

  params returns two values, the smallest and largest supported sizes for aliased points. The range must include size 1.

`GL_ALPHA_BITS`

  params returns one value, the number of alpha bitplanes in the color buffer of the currently bound framebuffer.

`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`, or `GL_FUNC_REVERSE_SUBTRACT`. 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`, or `GL_FUNC_REVERSE_SUBTRACT`. 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 framebuffer.

`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_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 one value, a symbolic constant indicating which polygon faces are to be culled. 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_DITHER`

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

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

  params returns a single value, the name of the currently bound framebuffer. The initial value is 0, indicating the default framebuffer. See glBindFramebuffer.

`GL_FRONT_FACE`

  params returns one value, a symbolic constant indicating whether clockwise or counterclockwise polygon winding is treated as front-facing. The initial value is `GL_CCW`. See glFrontFace.

`GL_GENERATE_MIPMAP_HINT`

  params returns one value, a symbolic constant indicating the mode of the mipmap generation filtering 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 framebuffer.

`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`. In addition to this implementation-dependent format/type pair, format `GL_RGBA` in conjunction with type `GL_UNSIGNED_BYTE` is always allowed by every implementation, regardless of the currently bound render surface. 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`. In addition to this implementation-dependent format/type pair, format `GL_RGBA` in conjunction with type `GL_UNSIGNED_BYTE` is always allowed by every implementation, regardless of the currently bound render surface. See glReadPixels.

`GL_LINE_WIDTH`

  params returns one value, the line width as specified with glLineWidth. The initial value is 1.

`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 8. See glActiveTexture.

`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 16. See glTexImage2D.

`GL_MAX_FRAGMENT_UNIFORM_VECTORS`

  params returns one value, the maximum number of four-element floating-point, integer, or boolean vectors that can be held in uniform variable storage for a fragment shader. The value must be at least 16. See glUniform.

`GL_MAX_RENDERBUFFER_SIZE`

  params returns one value. The value indicates the largest renderbuffer width and height that the GL can handle. The value must be at least 1. See glRenderbufferStorage.

`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 8. See glActiveTexture.

`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 64. See glTexImage2D.

`GL_MAX_VARYING_VECTORS`

  params returns one value, the maximum number four-element floating-point vectors available for interpolating varying variables used by vertex and fragment shaders. Varying variables declared as matrices or arrays will consume multiple interpolators. The value must be at least 8.

`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 8. See glVertexAttrib.

`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 0. See glActiveTexture.

`GL_MAX_VERTEX_UNIFORM_VECTORS`

  params returns one value, the maximum number of four-element floating-point, integer, or boolean vectors that can be held in uniform variable storage for a vertex shader. The value must be at least 128. 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_NUM_COMPRESSED_TEXTURE_FORMATS`

  params returns a single integer value indicating the number of available compressed texture formats. The minimum value is 0. See glCompressedTexImage2D.

`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_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 in fill mode. 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_RED_BITS`

  params returns one value, the number of red bitplanes in the color buffer of the currently bound framebuffer.

`GL_RENDERBUFFER_BINDING`

  params returns a single value, the name of the currently bound renderbuffer. The initial value is 0, indicating no renderbuffer is bound. See glBindRenderbuffer.

`GL_SAMPLE_ALPHA_TO_COVERAGE`

  params returns a single boolean value indicating if the fragment coverage value should be ANDed with a temporary coverage value based on the fragment's alpha value. 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 currently bound framebuffer. See glSampleCoverage.

`GL_SAMPLE_COVERAGE`

  params returns a single boolean value indicating if the fragment coverage value should be ANDed with a temporary coverage value based on the current sample coverage value. The initial value is `GL_FALSE`. See glSampleCoverage.

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

  params returns a single integer value indicating the coverage mask size of the currently bound framebuffer. 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. `GL_FALSE` indicates that any call to glShaderSource, glCompileShader, or glReleaseShaderCompiler will result in a `GL_INVALID_OPERATION` error being generated.

`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 for front-facing polygons and non-polygons. The initial value is `GL_KEEP`. See glStencilOp and 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 for front-facing polygons and non-polygons. The initial value is `GL_ALWAYS`. See glStencilFunc and 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 for front-facing polygons and non-polygons. The initial value is `GL_KEEP`. See glStencilOp and 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 for front-facing polygons and non-polygons. The initial value is `GL_KEEP`. See glStencilOp and glStencilOpSeparate.

`GL_STENCIL_REF`

  params returns one value, the reference value that is compared with the contents of the stencil buffer for front-facing polygons and non-polygons. The initial value is 0. See glStencilFunc and 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 for front-facing polygons and non-polygons. The initial value is all 1's. See glStencilFunc and glStencilFuncSeparate.

`GL_STENCIL_WRITEMASK`

  params returns one value, the mask that controls writing of the stencil bitplanes for front-facing polygons and non-polygons. The initial value is all 1's. See glStencilMask and 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` for the active multitexture unit. 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` for the active multitexture unit. The initial value is 0. See glBindTexture.

`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_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.

## Errors

`GL_INVALID_ENUM` is generated if pname is not one of the values listed previously.

## See Also

glGetActiveAttrib, glGetActiveUniform, glGetAttachedShaders, glGetAttribLocation, glGetBufferParameteriv, glGetError, glGetFramebufferAttachmentParameteriv, glGetProgramiv, glGetProgramInfoLog, glGetRenderbufferParameteriv, glGetShaderiv, glGetShaderInfoLog, glGetShaderSource, glGetString, glGetTexParameter, glGetUniform, glGetUniformLocation, glGetVertexAttrib, glGetVertexAttribPointerv, glIsEnabled

## Copyright

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