GLAPI/glGet
Core in version | 4.6 | |
---|---|---|
Core since version | 1.0 |
glGet: return the value or values of a selected parameter
Function Definition
void glGetBooleanv(GLenum pname, GLboolean * params); void glGetDoublev(GLenum pname, GLdouble * params); void glGetFloatv(GLenum pname, GLfloat * params); void glGetIntegerv(GLenum pname, GLint * params); void glGetInteger64v(GLenum pname, GLint64 * params);
- 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.
Function Definition
void glGetBooleani_v(GLenum pname, GLuint index, GLboolean * data); void glGetIntegeri_v(GLenum pname, GLuint index, GLint * data); void glGetFloati_v(GLenum pname, GLuint index, GLfloat * data); void glGetDoublei_v(GLenum pname, GLuint index, GLdouble * data); void glGetInteger64i_v(GLenum pname, GLuint index, GLint64 * data);
- pname
- Specifies the parameter value to be returned. The symbolic constants in the list below are accepted.
- index
- Specifies the zero-based index of the particular element being queried.
- data
- Returns the value or values of the specified parameter.
Description
These four 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 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_BUFFER_IMMUTABLE_STORAGE
- params returns a single boolean value, whether the buffer's data store is immutable. The default is FALSE. See glIsEnabled.
- GL_BUFFER_STORAGE_FLAGS
- params returns a single integer value, the buffer object storage flags, which are initially 0.
- GL_CLAMP_READ_COLOR
- params returns a single enumeration value, the read color clamping, which is initially GL_FIXED_ONLY. See glClampColor.
- GL_PROVOKING_VERTEX
- params returns a single enumeration vlaue, the provoking vertex mode, which is initially GL_LAST_VERTEX_CONVENTION. See glProvokingVertex.
TODO
- 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_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_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_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_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_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 returns the most negative representable integer value. The initial value is (0, 0, 0, 0). See glClearColor.
- GL_COLOR_LOGIC_OP
- params 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
- 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_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_CONTEXT_FLAGS
- params returns one value, the flags with which the context was created (such as debugging functionality).
- GL_CULL_FACE
- params returns a single boolean value indicating whether polygon culling is enabled. The initial value is GL_FALSE. 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_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 returns the most negative representable integer value. The initial value is 1. See glClearDepth.
- 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_TEST
- params 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
- 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_DOUBLEBUFFER
- params returns a single boolean value indicating whether double buffering is supported.
- GL_DRAW_BUFFER
- params returns one value, a symbolic constant indicating which buffers are being drawn to. This is selected from the currently bound GL_DRAW_FRAMEBUFFER. See glDrawBuffer. The initial value is GL_BACK if there are back buffers, otherwise it is GL_FRONT.
- GL_DRAW_BUFFERi
- params returns one value, a symbolic constant indicating which buffers are being drawn to by the corresponding output color. This is selected from the currently bound GL_DRAW_FRAMEBUFFER 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
- 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_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_IMPLEMENTATION_COLOR_READ_FORMAT
- params returns a single GLenum value indicating the implementation's preferred pixel data format. See glReadPixels.
- GL_IMPLEMENTATION_COLOR_READ_TYPE
- params returns a single GLenum value indicating the implementation's preferred pixel data type. See glReadPixels.
- GL_LINE_SMOOTH_HINT
- params returns one value, a symbolic constant indicating the mode of the line antialiasing hint. The initial value is GL_DONT_CARE. See glHint.
- GL_LAYER_PROVOKING_VERTEX
- params 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.
- params returns one value, the width difference between adjacent supported widths for antialiased lines. See glLineWidth.
- params returns two values: the smallest and largest supported widths for antialiased lines. See glLineWidth.
- GL_LOGIC_OP_MODE
- params returns one value, a symbolic constant indicating the selected logic operation mode. The initial value is GL_COPY. See glLogicOp.
- GL_MAJOR_VERSION
- params returns one value, the major version number of the OpenGL API supported by the current context.
- 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 64. Use GL_PROXY_TEXTURE_3D to determine if a texture is too large. 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_CLIP_DISTANCES
- params returns one value, the maximum number of application-defined clipping distances. The value must be at least 8.
- GL_MAX_COLOR_TEXTURE_SAMPLES
- params returns one value, the maximum number of samples in a color multisample texture.
- 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 1024. Use GL_PROXY_TEXTURE_CUBE_MAP to determine if a texture is too large. See glTexImage2D.
- GL_MAX_DEPTH_TEXTURE_SAMPLES
- params returns one value, the maximum number of samples in a multisample depth or depth-stencil texture.
- 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 8. See glDrawBuffers.
- GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
- params 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
- 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_FRAMEBUFFER_WIDTH
- params 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
- params 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
- params 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
- params returns one value, the maximum samples in a framebuffer that has no attachments, which must be at least 4. See glFramebufferParameter.
- GL_MAX_INTEGER_SAMPLES
- params returns one value, the maximum number of samples supported in integer format multisample buffers.
- GL_MIN_MAP_BUFFER_ALIGNMENT
- params 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_RECTANGLE_TEXTURE_SIZE
- params 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_RECTANGLE_TEXTURE to determine if a texture is too large. See glTexImage2D.
- GL_MAX_RENDERBUFFER_SIZE
- params returns one value. The value indicates the maximum supported size for renderbuffers. See glFramebufferRenderbuffer.
- GL_MAX_SAMPLE_MASK_WORDS
- params returns one integer value, the maximum number of sample mask words, which must be at least 1.
- GL_MAX_SAMPLES
- params returns one integer value, the maximum number of samples supported for all non-integer formats, which must be at least 4.
- GL_MAX_SERVER_WAIT_TIMEOUT
- params returns one value, the maximum glWaitSync timeout interval.
- GL_MAX_TEXTURE_BUFFER_SIZE
- params 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_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 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_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_MAX_VIEWPORTS
- params returns one value, the maximum number of simultaneous viewports that are supported. The value must be at least 16. See glViewportIndexed.
- GL_MINOR_VERSION
- params returns one value, the minor version number of the OpenGL 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 4. 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 one value, the number of program binary formats supported by the implementation.
- GL_NUM_SHADER_BINARY_FORMATS
- params 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
- params returns one value, the byte alignment used for writing pixel data to memory. The initial value is 4. See glPixelStore.
- GL_PACK_IMAGE_HEIGHT
- params returns one value, the image height used for writing pixel data to memory. The initial value is 0. See glPixelStore.
- GL_PACK_LSB_FIRST
- params 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
- params returns one value, the row length used for writing pixel data to memory. The initial value is 0. See glPixelStore.
- GL_PACK_SKIP_IMAGES
- params 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
- params 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
- 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 glPixelStore.
- GL_PACK_SWAP_BYTES
- params 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
- 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_PRIMITIVE_RESTART_INDEX
- params returns one value, the current primitive restart index. The initial value is 0. See glPrimitiveRestartIndex.
- GL_PROGRAM_BINARY_FORMATS
- params an array of GL_NUM_PROGRAM_BINARY_FORMATS values, indicating the proram binary formats supported by the implementation.
- 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_PROGRAM_POINT_SIZE
params 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
- params returns one value, the currently selected provoking vertex convention. The initial value is GL_LAST_VERTEX_CONVENTION. See glProvokingVertex.
- GL_POINT_SIZE_GRANULARITY
- params returns one value, the size difference between adjacent supported sizes for antialiased points. See glPointSize.
- GL_POINT_SIZE_RANGE
- params 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
- 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_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_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_LINE
- params 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
- params 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
- params returns a single boolean value indicating whether antialiasing of polygons is enabled. The initial value is GL_FALSE. See glPolygonMode.
- GL_POLYGON_SMOOTH_HINT
- params 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
- params 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. This is selected from the currently bound GL_READ_FRAMEBUFFER. See glReadPixels.
- 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_BUFFERS
- params returns a single integer value indicating the number of sample buffers associated with the framebuffer. See glSampleCoverage.
- GL_SAMPLE_COVERAGE_VALUE
- params returns a single positive floating-point value indicating the current sample coverage value. See glSampleCoverage.
- GL_SAMPLE_COVERAGE_INVERT
- params returns a single boolean value indicating if the temporary coverage value should be inverted. 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 and window coordinates of the scissor box, followed by its width and height. Initially the and 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_COMPILER
- params 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), 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_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_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_SMOOTH_LINE_WIDTH_RANGE
- params returns a pair of values indicating the range of widths supported for smooth (antialiased) lines. See glLineWidth.
- GL_SMOOTH_LINE_WIDTH_GRANULARITY
- params returns a single value indicating the level of quantization applied to smooth line width parameters.
- 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_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_STEREO
- params returns a single boolean value indicating whether stereo buffers (left and right) are supported.
- 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_1D
- params 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
- params 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
- 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_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_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_BUFFER
- params 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
- 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_RECTANGLE
- params 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
- params returns a single value indicating the mode of the texture compression hint. The initial value is GL_DONT_CARE.
- GL_TEXTURE_BINDING_BUFFER
- params 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
- params returns a single value, the minimum required alignment for texture buffer sizes and offset. The initial value is 1. See glUniformBlockBinding.
- GL_TIMESTAMP
- params 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), 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_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_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_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_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 glPixelStore.
- GL_UNPACK_IMAGE_HEIGHT
- params returns one value, the image height used for reading pixel data from memory. The initial is 0. See glPixelStore.
- GL_UNPACK_LSB_FIRST
- params 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
- params returns one value, the row length used for reading pixel data from memory. The initial value is 0. See glPixelStore.
- 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 glPixelStore.
- 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 glPixelStore.
- 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 glPixelStore.
- GL_UNPACK_SWAP_BYTES
- params 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_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_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_ATTRIB_BINDINGS
- params returns a single integer value containing the maximum number of vertex buffers that may be bound.
- GL_VIEWPORT_BOUNDS_RANGE
- params returns two values, the minimum and maximum viewport bounds range. The minimum range should be at least [-32768, 32767].
- GL_VIEWPORT_INDEX_PROVOKING_VERTEX
- params 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
- params 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
- params 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.
Vertex Arrays
Also see glGetVertexAttrib, glGetVertexAttribPointer, and glGetObjectLabel.
- GL_ARRAY_BUFFER_BINDING
- params returns a single integer 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_DRAW_INDIRECT_BUFFER_BINDING
- params returns a single integer value, the name of the buffer object currently bound to the target GL_DRAW_INDIRECT_BUFFER. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.
- GL_ELEMENT_ARRAY_BUFFER_BINDING
- params returns a single integer 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_PRIMITIVE_RESTART
- params returns a single boolean value, whether primitive restart is enabled. The initial value is FALSE. See glIsEnabled.
- GL_PRIMITIVE_RESTART_FIXED_INDEX
- params returns a single boolean value, whether primitive restart fixed index is enabled. The initial value is FALSE See glIsEnabled.
- GL_PRIMITIVE_RESTART_INDEX
- params returns a single integer value, the primitive restart index, which is initially 0.
- GL_VERTEX_ARRAY_BINDING
- params 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_OFFSET
- Accepted by the indexed forms. params returns a single 64-bit 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.
Transformation State
See OpenGL 4.4, table 23.7, page 528.
- GL_CLIP_DISTANCEi
- params returns one boolean value, whether the ith user clipping plane is enabled, which is initially FALSE. See glIsEnabled.
- GL_DEPTH_CLAMP
- params returns one boolean value, whether depth clamping is enabled, which is initially FALSE. See glIsEnabled.
- GL_DEPTH_RANGE
- params returns two float 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 returns the most negative representable integer value. The initial value is (0, 1). See glDepthRange.
- GL_TRANSFORM_FEEDBACK_BINDING
- params returns one integer value, which is the name of the object bound for transform feedback operations.
- GL_VIEWPORT
- When used with non-indexed variants of glGet (such as glGetIntegerv), 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. When used with indexed variants of glGet (such as glGetIntegeri_v), params 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 glViewportIndexed.
Rasterization
See OpenGL 4.4, table 23.9, page 530.
- GL_LINE_SMOOTH (boolean, initially FALSE)
- Whether to antialias lines. See glIsEnabled.
- GL_LINE_WIDTH (float, initially 1.0)
- The line width as specified with glLineWidth.
- GL_POINT_FADE_THRESHOLD_SIZE (float, initially 1.0)
- The point size threshold for alpha attenuation, as specified with glPointParameter with a pname of GL_POINT_FADE_THRESHOLD_SIZE.
- GL_POINT_SIZE (float, initially 1.0)
- The point size as specified by glPointSize.
- GL_POINT_SPRITE_COORD_ORIGIN (enumeration, initially GL_UPPER_LEFT)
- The origin orientation for point sprites, as specified with glPointParameter with a pname of GL_POINT_SPRITE_COORD_ORIGIN.
- GL_RASTERIZER_DISCARD (boolean, initially FALSE)
- Whether to discard primitives before rasterization. See glIsEnabled.
Programs
This sections contains parameters relevant to programs and common to shader execution. See OpenGL 4.4, table 23.63, page 584.
- GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS (integer, must be at least 1)
- The maximum number of atomic counter buffer bindings.
- GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE (integer, must be at least 32)
- The maximum size in basic machine units of an atomic counter buffer.
- GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES (integer, must be at least 8)
- The limit on active image units and fragment outputs.
- GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS (integer, must be at least 8)
- The number of shader storage blocks accessible by a program.
- GL_MAX_IMAGE_SAMPLES (integer, may be 0)
- The maximum number of allowed samples for a texture level bound to an image unit.
- GL_MAX_IMAGE_UNITS (integer, must be at least 8)
- The number of units for image load, store, and atomic functions.
- GL_MAX_PROGRAM_TEXEL_OFFSET (integer, must be at least 7)
- The maximum texel offset allowed in a texture lookup.
- GL_MAX_SHADER_STORAGE_BLOCK_SIZE (64-bit integer, must be at least 224 (16,777,216))
- The maximum size in basic machine units of a shader storage block.
- GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS (integer, must be at least 8)
- The maximum number of shader storage buffer binding points on the context.
- GL_MAX_SUBROUTINES (integer, must be at least 256)
- The maximum number of subroutines per shader stage.
- GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS (integer, must be at least 1024)
- The maximum number of subroutine uniform locations per shader stage.
- GL_MAX_UNIFORM_BLOCK_SIZE (integer, must be at least 16384)
- The maximum size in basic machine units of a uniform block.
- GL_MAX_UNIFORM_BUFFER_BINDINGS (integer, must be at least 84)
- The maximum number of uniform buffer binding points on the context.
- GL_MAX_UNIFORM_LOCATIONS (integer, must be at least 1024)
- The maximum number of explicitly assignable uniform locations.
- GL_MAX_VARYING_VECTORS (integer, must be at least 15)
- The number of four-component vectors for varying variables.
- GL_MIN_PROGRAM_TEXEL_OFFSET (integer, must be at most -8)
- The minimum texel offset allowed in a texture lookup.
- GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT (integer, defaults to 256)
- The minimum required alignment for shader storage buffer sizes and offset. See glShaderStorageBlockBinding.
- GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT (integer, defaults to 1)
- The minimum required alignment for uniform buffer sizes and offset. See glUniformBlockBinding.
Shader Stage Limits
This section contains limits that are present in all shader stages and parameters that are the sums of all shader stages. Subsections contain parameters that are specific to individual shader stages. See OpenGL 4.4, tables 23.57-62, page 578.
- GL_MAX_stage_ATOMIC_COUNTER_BUFFERS and GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
- GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS, GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_ATOMIC_COUNTER_BUFFERS, GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS, GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
- params returns a single integer value, the maximum number of atomic counter buffers that may be accessed by a shader of each stage. The minimum value is 0 for all shader stages except for fragment shaders, which is 1. If an atomic counter buffer is used by multiple shader stages, each such use counts separately against the combined limit. The minimum combined limit is 1. See OpenGL 4.4, section 7.7, page 133.
- GL_MAX_stage_ATOMIC_COUNTERS and GL_MAX_COMBINED_ATOMIC_COUNTERS
- GL_MAX_COMPUTE_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_GEOMETRY_ATOMIC_COUNTERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATOMIC_COUNTERS
- params returns a single value, the maximum number of atomic counters available to shaders of each stage. The minimum value is 0 for all stages except for fragment shaders, which is 8. If more than one pipeline stage accesses the same atomic counter, each such access counts separately towards the combined total. The minimum combined total is 8. See OpenGL 4.4, section 11.1.3.6, page 354.
- GL_MAX_COMBINED_stage_UNIFORM_COMPONENTS
- GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS, GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS, GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS, GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
- params returns one value, the maximum number of words for compute shader uniform variables in all uniform blocks (including default). The value must be at least (GL_MAX_stage_UNIFORM_BLOCK × GL_MAX_stage_UNIFORM_BLOCK_SIZE ÷ 4 + GL_MAX_stage_UNIFORM_COMPONENTS. See glUniform, OpenGL 4.4, table 7.5, page 118, and OpenGL 4.4, table 23.66, page 587.
- GL_MAX_stage_IMAGE_UNIFORMS and GL_MAX_COMBINED_IMAGE_UNIFORMS
- GL_MAX_COMPUTE_IMAGE_UNIFORMS, GL_MAX_FRAGMENT_IMAGE_UNIFORMS, GL_MAX_GEOMETRY_IMAGE_UNIFORMS, GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS, GL_MAX_VERTEX_IMAGE_UNIFORMS
- params returns one value, the maximum number of image uniforms available to the individual shader stage. If more than one shader stage accesses the same uniform, each such access counts separately. There is no minimum value except for the compute and fragment shader stages where it must be at least 8. The combined limit must be at least 8. See OpenGL 4.4, section 11.1.3.7, page 355.
- GL_MAX_stage_SHADER_STORAGE_BLOCKS and GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
- GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
- params returns one value, the maximum number of active shader storage blocks that may be accessed by a shader. There is no minimum limit except in fragment shaders where the minimum is 8. The combined limit must also be at least 8. See OpenGL 4.4, section 7.8, page 135.
- GL_MAX_stage_UNIFORM_COMPONENTS
- GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_GEOMETRY_UNIFORM_COMPONENTS, GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS, GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS, 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 shader. The value must be at least 512 for compute and geometry shaders, and 1024 for all other shader stages. See glUniform.
- GL_MAX_stage_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_IMAGE_UNITS (fragment), GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
- GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS, GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS, GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS, 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 shader. The value may be at least 16. The combined limit must be at least 96. See glActiveTexture.
- GL_MAX_stage_COMPUTE_UNIFORM_BLOCKS and GL_MAX_COMBINED_UNIFORM_BLOCKS
- GL_MAX_COMPUTE_UNIFORM_BLOCKS, GL_MAX_FRAGMENT_UNIFORM_BLOCKS, GL_MAX_GEOMETRY_UNIFORM_BLOCKS, GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS, GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS, GL_MAX_VERTEX_UNIFORM_BLOCKS
- params returns one value, the maximum number of uniform blocks per shader. The value must be at least 14, and the combined limit must be at least 70. See glUniformBlockBinding.
Compute Shaders
See OpenGL 4.4, table 23.62, page 583.
- GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
- params returns one value, the maximum total storage size in bytes of all variables declared as shared in all compute shaders linked into a single program object.
- 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, which must be at least 1024.
- GL_MAX_COMPUTE_WORK_GROUP_COUNT
- Accepted by the indexed versions of glGet. params returns one value, 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. The minimum is 65535 in each dimension.
- GL_MAX_COMPUTE_WORK_GROUP_SIZE
- Accepted by the indexed versions of glGet. params returns one value, 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. The minimum is 1024 in X and Y and 64 in Z.
Fragment Shaders
See OpenGL 4.4, table 23.61, page 582.
- 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 128.
- GL_MAX_FRAGMENT_UNIFORM_VECTORS
- params 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_PROGRAM_TEXTURE_GATHER_OFFSET
- params returns one integer value, the maximum texel offset for textureGather, which must be at least 7. See OpenGL 4.4, section 8.14.1, page 226.
- GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
- params returns one integer value, the minimum texel offset for textureGather, which must be at least -8 (or more negative). See OpenGL 4.4, section 8.14.1, page 226.
- 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.
Geometry Shaders
See OpenGL 4.4, table 23.60, page 581.
- GL_MAX_GEOMETRY_INPUT_COMPONENTS
- params 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
- params returns one value, the maximum number of components of outputs written by a geometry shader, which must be at least 128.
- GL_MAX_GEOMETRY_OUTPUT_VERTICES
- params returns one value, the maximum number of components of outputs written by a geometry shader, which must be at least 256.
- GL_MAX_GEOMETRY_SHADER_INVOCATIONS
- params returns one integer value, the maximum supported geometry shader invocation count, which must be at least 32.
- GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
- params returns one value, the maximum number of all components all vertices written by a geometry shader, which must be at least 1024.
- GL_MAX_VERTEX_STREAMS
- params returns one integer value, the total number of vertex streams geometry shaders may output to, which must be at least 4. See OpenGL 4.4, section 11.3.4.3, page 384.
Tessellation Control Shaders
See OpenGL 4.4, table 23.2, page 523 and OpenGL 4.4, table 23.58, page 579.
- GL_MAX_PATCH_VERTICES
- params returns one integer value, the maximum number of vertices in a patch primitive, which must be at least 32. See glPatchParameter and OpenGL 4.4, section 10.1.15, page 306.
- GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
- params returns one integer value, the number of components for tessellation control shader per-vertex inputs, which must be at least 128. See OpenGL 4.4, section 11.2.1.2.2, page 363.
- GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
- params returns one integer value, the number of components for tessellation control shader per-vertex outputs, which must be at least 128. See OpenGL 4.4, section 11.2.1.2.3, page 365.
- GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
- params returns one integer value, the number of components for tessellation control shader per-patch outputs, which must be at least 4096. See OpenGL 4.4, section 11.2.1.2.3, page 365.
- GL_MAX_TESS_GEN_LEVEL
- params returns one integer value, the maximum level supported by the tessellation primitive generator, which must be at least 64. See OpenGL 4.4, section 11.2.2, page 368.
- GL_MAX_TESS_PATCH_COMPONENTS
- params returns one integer value, the number of components for tessellation control shader per-patch outputs, which must be at least 120. See OpenGL 4.4, section 11.2.1.2.3, page 365.
- GL_PATCH_DEFAULT_INNER_LEVEL
- params returns two float values, the default inner tessellation level without a control shader, which is initially (1.0, 1.0).
- GL_PATCH_DEFAULT_OUTER_LEVEL
- params returns four float values, the default outer tessellation level without a control shader, which is initially (1.0, 1.0, 1.0, 1.0).
- GL_PATCH_VERTICES
- params returns one integer value, the number of vertices in the input patch, which is initially 3.
Tessellation Evaluation Shaders
See OpenGL 4.4, table 23.59, page 580.
- GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
- params returns one integer value, the number of components for tesselation evaluation shader per-vertex inputs, which must be at least 128. See OpenGL 4.4, section 11.2.3.3, page 379.
- GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
- params returns one integer value, the number of components for tesselation evaluation shader per-vertex outputs, which must be at least 128. See OpenGL 4.4, section 11.2.3.4, page 380.
Vertex Shaders
See OpenGL 4.4, table 23.57, page 578.
- 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_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_VECTORS
- params 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 divided by 4 and must be at least 256.
Debug Output State
See OpenGL 4.4, chapter 20, page 490 and OpenGL 4.4, table 23.67, page 588.
- GL_DEBUG_CALLBACK_FUNCTION
- params returns one pointer value, the current debug output callback function pointer, which is initially NULL.
- GL_DEBUG_CALLBACK_USER_PARAM
- params returns one pointer value, the current debug output callback user parameter, which is initially NULL.
- GL_DEBUG_GROUP_STACK_DEPTH
- params returns a single value, the current depth of the debug message group stack, which is initially one.
- GL_DEBUG_LOGGED_MESSAGES
- params returns a single integer value, the number of messages currently in the debug message log.
- GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
- params returns a single integer value, the string length of the oldest debug message in the debug message log, or 0 if there are no strings.
- GL_DEBUG_OUTPUT
- params returns a single boolean value, which is the enabled state for debug output functionality. The initial value is TRUE if this is a debug context, and FALSE otherwise. See glIsEnabled.
- GL_DEBUG_OUTPUT_SYNCHRONOUS
- params returns a single boolean value, which is the enabled state for synchronous debug message callbacks, and is initially FALSE. See glIsEnabled.
- GL_MAX_DEBUG_LOCKED_MESSAGES
- params returns one integer value, the maximum number of messages stored in the debug message log, which is at least 1.
- GL_MAX_DEBUG_MESSAGE_LENGTH
- params returns one integer value, which is the maximum length of a debug message string, including its NUL terminator, which is at least 1.
- GL_MAX_DEBUG_GROUP_STACK_DEPTH
- params returns one integer value, the maximum depth of the debug message group stack, which is at least 64.
- GL_MAX_LABEL_LENGTH
- params returns one integer value, the maximum length of a label string that may be assigned to an object, which is at least 256. See glObjectLabel and glObjectPtrLabel.
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_FRAGMENT_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.
GL_MAX_VARYING_COMPONENTS and GL_MAX_VARYING_FLOATS are deprecated in GL version 4.4.
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, glGetFloati_v, glGetDoublei_v, or glGetInteger64i_v if index is outside of the valid range for the indexed state target.
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-2011 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.