GLGET(3G)
π
glGet β your GLGET(3G) bestie β¨
πΈ NAME πΈ
glGet β return the value or values of a selected parameter. π«Ά
π» C SPECIFICATION π»
okay so here's the whole function family, and yes, every single prototype is iconic in its own way:
void glGetBooleanv(GLenum pname, GLboolean * data);
void glGetDoublev(GLenum pname, GLdouble * data);
void glGetFloatv(GLenum pname, GLfloat * data);
void glGetIntegerv(GLenum pname, GLint * data);
void glGetInteger64v(GLenum pname, GLint64 * data);
void glGetBooleani_v(GLenum target, GLuint index, GLboolean * data);
void glGetIntegeri_v(GLenum target, GLuint index, GLint * data);
void glGetFloati_v(GLenum target, GLuint index, GLfloat * data);
void glGetDoublei_v(GLenum target, GLuint index, GLdouble * data);
void glGetInteger64i_v(GLenum target, GLuint index, GLint64 * data);
π PARAMETERS π
pnameβ for the non-indexed versions ofglGet, this is the parameter value you're asking for. The symbolic constants in the list below are accepted. πtargetβ for the indexed versions ofglGet, this is the parameter value you're asking for. The symbolic constants in the list below are accepted too.indexβ the index of the particular element being queried. iykyk.dataβ returns the value or values of the specified parameter. this is where the answer lands, bestie.
β¨ DESCRIPTION β¨
These commands return values for simple state variables in GL. pname is a symbolic constant indicating the state variable to be returned, and data is a pointer to an array of the indicated type in which to place the returned data. no cap.
Type conversion is performed if data has a different type than the state variable value being requested. If glGetBooleanv is called, a floating-point (or integer) value is converted to GL_FALSE if and only if it is 0.0 (or 0). Otherwise, it is converted to GL_TRUE. If glGetIntegerv is called, boolean values are returned as GL_TRUE or GL_FALSE, and most floating-point values are rounded to the nearest integer value. Floating-point colors and normals, however, are returned with a linear mapping that maps 1.0 to the most positive representable integer value and -1.0 to the most negative representable integer value. If glGetFloatv or glGetDoublev is called, boolean values are returned as GL_TRUE or GL_FALSE, and integer values are converted to floating-point values. π
The following symbolic constants are accepted by pname:
GL_ACTIVE_TEXTUREβdatareturns a single value indicating the active multitexture unit. The initial value isGL_TEXTURE0. SeeglActiveTexture().GL_ALIASED_LINE_WIDTH_RANGEβdatareturns a pair of values indicating the range of widths supported for aliased lines. SeeglLineWidth().GL_ARRAY_BUFFER_BINDINGβdatareturns a single value, the name of the buffer object currently bound to the targetGL_ARRAY_BUFFER. If no buffer object is bound to this target,0is returned. The initial value is0. SeeglBindBuffer().GL_BLENDβdatareturns a single boolean value indicating whether blending is enabled. The initial value isGL_FALSE. SeeglBlendFunc().GL_BLEND_COLORβdatareturns four values, the red, green, blue, and alpha values which are the components of the blend color. SeeglBlendColor().GL_BLEND_DST_ALPHAβdatareturns one value, the symbolic constant identifying the alpha destination blend function. The initial value isGL_ZERO. SeeglBlendFunc()andglBlendFuncSeparate().GL_BLEND_DST_RGBβdatareturns one value, the symbolic constant identifying the RGB destination blend function. The initial value isGL_ZERO. SeeglBlendFunc()andglBlendFuncSeparate().GL_BLEND_EQUATION_RGBβdatareturns one value, a symbolic constant indicating whether the RGB blend equation isGL_FUNC_ADD,GL_FUNC_SUBTRACT,GL_FUNC_REVERSE_SUBTRACT,GL_MINorGL_MAX. SeeglBlendEquationSeparate().GL_BLEND_EQUATION_ALPHAβdatareturns one value, a symbolic constant indicating whether the Alpha blend equation isGL_FUNC_ADD,GL_FUNC_SUBTRACT,GL_FUNC_REVERSE_SUBTRACT,GL_MINorGL_MAX. SeeglBlendEquationSeparate().GL_BLEND_SRC_ALPHAβdatareturns one value, the symbolic constant identifying the alpha source blend function. The initial value isGL_ONE. SeeglBlendFunc()andglBlendFuncSeparate().GL_BLEND_SRC_RGBβdatareturns one value, the symbolic constant identifying the RGB source blend function. The initial value isGL_ONE. SeeglBlendFunc()andglBlendFuncSeparate().GL_COLOR_CLEAR_VALUEβdatareturns 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 that1.0returns the most positive representable integer value, and-1.0returns the most negative representable integer value. The initial value is(0, 0, 0, 0). SeeglClearColor().GL_COLOR_LOGIC_OPβdatareturns a single boolean value indicating whether a fragment's RGBA color values are merged into the framebuffer using a logical operation. The initial value isGL_FALSE. SeeglLogicOp().GL_COLOR_WRITEMASKβdatareturns 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). SeeglColorMask().GL_COMPRESSED_TEXTURE_FORMATSβdatareturns a list of symbolic constants of lengthGL_NUM_COMPRESSED_TEXTURE_FORMATSindicating which compressed texture formats are available. SeeglCompressedTexImage2D().GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKSβdatareturns one value, the maximum number of active shader storage blocks that may be accessed by a compute shader.GL_MAX_COMBINED_SHADER_STORAGE_BLOCKSβdatareturns one value, the maximum total number of active shader storage blocks that may be accessed by all active shaders.GL_MAX_COMPUTE_UNIFORM_BLOCKSβdatareturns one value, the maximum number of uniform blocks per compute shader. The value must be at least14. SeeglUniformBlockBinding().GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITSβdatareturns 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 least16. SeeglActiveTexture().GL_MAX_COMPUTE_UNIFORM_COMPONENTSβdatareturns 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 least1024. SeeglUniform().GL_MAX_COMPUTE_ATOMIC_COUNTERSβdatareturns a single value, the maximum number of atomic counters available to compute shaders.GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERSβdatareturns a single value, the maximum number of atomic counter buffers that may be accessed by a compute shader.GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTSβdatareturns one value, the number of words for compute shader uniform variables in all uniform blocks (including default). The value must be at least1. SeeglUniform().GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONSβdatareturns 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 ofglGet.datais the maximum number of work groups that may be dispatched to a compute shader. Indices0,1, and2correspond to the X, Y and Z dimensions, respectively.GL_MAX_COMPUTE_WORK_GROUP_SIZEβ accepted by the indexed versions ofglGet.datais the maximum size of a work groups that may be used during compilation of a compute shader. Indices0,1, and2correspond to the X, Y and Z dimensions, respectively.GL_DISPATCH_INDIRECT_BUFFER_BINDINGβdatareturns a single value, the name of the buffer object currently bound to the targetGL_DISPATCH_INDIRECT_BUFFER. If no buffer object is bound to this target,0is returned. The initial value is0. SeeglBindBuffer().GL_MAX_DEBUG_GROUP_STACK_DEPTHβdatareturns a single value, the maximum depth of the debug message group stack.GL_DEBUG_GROUP_STACK_DEPTHβdatareturns a single value, the current depth of the debug message group stack.GL_CONTEXT_FLAGSβdatareturns one value, the flags with which the context was created (such as debugging functionality).GL_CULL_FACEβdatareturns a single boolean value indicating whether polygon culling is enabled. The initial value isGL_FALSE. SeeglCullFace().GL_CULL_FACE_MODEβdatareturns a single value indicating the mode of polygon culling. The initial value isGL_BACK. SeeglCullFace().GL_CURRENT_PROGRAMβdatareturns one value, the name of the program object that is currently active, or0if no program object is active. SeeglUseProgram().GL_DEPTH_CLEAR_VALUEβdatareturns 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 that1.0returns the most positive representable integer value, and-1.0returns the most negative representable integer value. The initial value is1. SeeglClearDepth().GL_DEPTH_FUNCβdatareturns one value, the symbolic constant that indicates the depth comparison function. The initial value isGL_LESS. SeeglDepthFunc().GL_DEPTH_RANGEβdatareturns 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 that1.0returns the most positive representable integer value, and-1.0returns the most negative representable integer value. The initial value is(0, 1). SeeglDepthRange().GL_DEPTH_TESTβdatareturns a single boolean value indicating whether depth testing of fragments is enabled. The initial value isGL_FALSE. SeeglDepthFunc()andglDepthRange().GL_DEPTH_WRITEMASKβdatareturns a single boolean value indicating if the depth buffer is enabled for writing. The initial value isGL_TRUE. SeeglDepthMask().GL_DITHERβdatareturns a single boolean value indicating whether dithering of fragment colors and indices is enabled. The initial value isGL_TRUE.GL_DOUBLEBUFFERβdatareturns a single boolean value indicating whether double buffering is supported.GL_DRAW_BUFFERβdatagives you back one value, a symbolic constant telling you which buffers are currently getting drawn to. PeepglDrawBuffer(). Initial value?GL_BACKif back buffers exist, otherwise it'sGL_FRONT. πGL_DRAW_BUFFERiβdatareturns one value, a symbolic constant showing which buffers the matching output color is drawing into. SeeglDrawBuffers().GL_DRAW_BUFFER0starts out asGL_BACKif there are back buffers, elseGL_FRONT. And every other output color's draw buffer starts atGL_NONE. periodt.GL_DRAW_FRAMEBUFFER_BINDINGβ one value: the name of the framebuffer object currently bound to theGL_DRAW_FRAMEBUFFERtarget. Default framebuffer bound? Then this is zero. Initial value is zero. SeeglBindFramebuffer(). β¨GL_READ_FRAMEBUFFER_BINDINGβ one value: the name of the framebuffer object currently bound toGL_READ_FRAMEBUFFER. If the default framebuffer is the one bound, this value is zero. Initial value: zero. SeeglBindFramebuffer().GL_ELEMENT_ARRAY_BUFFER_BINDINGβ a single value, bestie: the name of the buffer object currently bound to theGL_ELEMENT_ARRAY_BUFFERtarget. Nothing bound there? You get0back. Initial value is0. SeeglBindBuffer().GL_FRAGMENT_SHADER_DERIVATIVE_HINTβ one value, a symbolic constant for the derivative accuracy hint mode on fragment shaders. Starts atGL_DONT_CARE. SeeglHint(). πGL_IMPLEMENTATION_COLOR_READ_FORMATβ a singleGLenumvalue, telling you the implementation's preferred pixel data format. SeeglReadPixels().GL_IMPLEMENTATION_COLOR_READ_TYPEβ a singleGLenumvalue, this time the implementation's preferred pixel data type. SeeglReadPixels().GL_LINE_SMOOTHβ a single boolean, yes/no on whether line antialiasing is on. Initial valueGL_FALSE. SeeglLineWidth().GL_LINE_SMOOTH_HINTβ one value, a symbolic constant for the line antialiasing hint mode. Initial valueGL_DONT_CARE. SeeglHint().GL_LINE_WIDTHβ one value: the line width, exactly like you set it withglLineWidth(). Initial value is1. π¦GL_LAYER_PROVOKING_VERTEXβ one value, the implementation-dependent vertex of a primitive used to pick the rendering layer. Lowkey a choose-your-own-adventure:- returns something equivalent to
GL_PROVOKING_VERTEXβ the vertex selection follows the convention fromglProvokingVertex() - equivalent to
GL_FIRST_VERTEX_CONVENTIONβ always the first vertex in the primitive - equivalent to
GL_LAST_VERTEX_CONVENTIONβ always the last vertex in the primitive - equivalent to
GL_UNDEFINED_VERTEXβ nah, it's not guaranteed to be taken from any specific vertex in the primitive at all π
- returns something equivalent to
GL_LOGIC_OP_MODEβ one value, a symbolic constant for the selected logic operation mode. Starts atGL_COPY. SeeglLogicOp().GL_MAJOR_VERSIONβ one value: the major version number of the OpenGL API that the current context supports. main character energy fr.GL_MAX_3D_TEXTURE_SIZEβ one value, a rough estimate of the biggest 3D texture the GL can handle. Must be at least64. Wanna know if a texture is too large? UseGL_PROXY_TEXTURE_3D. SeeglTexImage3D(). πΈGL_MAX_ARRAY_TEXTURE_LAYERSβ one value. It's the maximum number of layers allowed in an array texture, and it must be at least256. SeeglTexImage2D().GL_MAX_CLIP_DISTANCESβ one value, the max number of application-defined clipping distances. Must be at least8.GL_MAX_COLOR_TEXTURE_SAMPLESβ one value, the max number of samples in a color multisample texture. πGL_MAX_COMBINED_ATOMIC_COUNTERSβ a single value: the max number of atomic counters available to all active shaders. iconic.GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTSβ one value, the number of words for fragment shader uniform variables across all uniform blocks (default one included). Must be at least1. SeeglUniform().GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTSβ one value, the number of words for geometry shader uniform variables in all uniform blocks (default included). Must be at least1. SeeglUniform().GL_MAX_COMBINED_TEXTURE_IMAGE_UNITSβ one value: the max supported texture image units usable to access texture maps from the vertex shader and the fragment processor combined. Plot twist β if the vertex shader and the fragment processing stage both touch the same texture image unit, that counts as two texture image units against this limit. Must be at least48. SeeglActiveTexture(). π«ΆGL_MAX_COMBINED_UNIFORM_BLOCKSβ one value, the max number of uniform blocks per program. Must be at least70. SeeglUniformBlockBinding().GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTSβ one value, the number of words for vertex shader uniform variables in all uniform blocks (default included). Must be at least1. SeeglUniform().GL_MAX_CUBE_MAP_TEXTURE_SIZEβ one value. It's a rough estimate of the biggest cube-map texture the GL can handle. Must be at least1024. UseGL_PROXY_TEXTURE_CUBE_MAPto check if a texture is too large. SeeglTexImage2D(). β¨GL_MAX_DEPTH_TEXTURE_SAMPLESβ one value, the max number of samples in a multisample depth or depth-stencil texture.GL_MAX_DRAW_BUFFERSβ one value, the max number of simultaneous outputs that can be written in a fragment shader. Must be at least8. SeeglDrawBuffers().GL_MAX_DUAL_SOURCE_DRAW_BUFFERSβ one value, the max number of active draw buffers when you're using dual-source blending. Must be at least1. SeeglBlendFunc()andglBlendFuncSeparate().GL_MAX_ELEMENTS_INDICESβ one value, the recommended max number of vertex array indices. SeeglDrawRangeElements(). πGL_MAX_ELEMENTS_VERTICESβ one value, the recommended max number of vertex array vertices. SeeglDrawRangeElements().GL_MAX_FRAGMENT_ATOMIC_COUNTERSβ a single value, the max number of atomic counters available to fragment shaders.GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKSβ one value, the max number of active shader storage blocks a fragment shader can access.GL_MAX_FRAGMENT_INPUT_COMPONENTSβ one value, the max number of components of the inputs read by the fragment shader. Must be at least128.GL_MAX_FRAGMENT_UNIFORM_COMPONENTSβ one value, the max number of individual floating-point, integer, or boolean values that fit in uniform variable storage for a fragment shader. Must be at least1024. SeeglUniform().GL_MAX_FRAGMENT_UNIFORM_VECTORSβ one value, the max number of individual 4-vectors of floating-point, integer, or boolean values that fit in uniform variable storage for a fragment shader. It equals the value ofGL_MAX_FRAGMENT_UNIFORM_COMPONENTSdivided by4, and must be at least256. SeeglUniform(). π§GL_MAX_FRAGMENT_UNIFORM_BLOCKSβ one value, the max number of uniform blocks per fragment shader. Must be at least12. SeeglUniformBlockBinding().GL_MAX_FRAMEBUFFER_WIDTHβ one value, the max width for a framebuffer with no attachments. Must be at least16384. SeeglFramebufferParameter.GL_MAX_FRAMEBUFFER_HEIGHTβ one value, the max height for a framebuffer with no attachments. Must be at least16384. SeeglFramebufferParameter.GL_MAX_FRAMEBUFFER_LAYERSβ one value, the max number of layers for a framebuffer with no attachments. Must be at least2048. SeeglFramebufferParameter.GL_MAX_FRAMEBUFFER_SAMPLESβ one value, the max samples in a framebuffer with no attachments. Must be at least4. SeeglFramebufferParameter. πGL_MAX_GEOMETRY_ATOMIC_COUNTERSβ a single value, the max number of atomic counters available to geometry shaders.GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKSβ one value, the max number of active shader storage blocks a geometry shader can access.GL_MAX_GEOMETRY_INPUT_COMPONENTSβ one value, the max number of components of inputs read by a geometry shader. Must be at least64.GL_MAX_GEOMETRY_OUTPUT_COMPONENTSβ one value, the max number of components of outputs written by a geometry shader. Must be at least128.GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITSβ one value, the max supported texture image units usable to access texture maps from the geometry shader. Must be at least16. SeeglActiveTexture().GL_MAX_GEOMETRY_UNIFORM_BLOCKSβ one value, the max number of uniform blocks per geometry shader. Must be at least12. SeeglUniformBlockBinding().GL_MAX_GEOMETRY_UNIFORM_COMPONENTSβ one value, the max number of individual floating-point, integer, or boolean values that fit in uniform variable storage for a geometry shader. Must be at least1024. SeeglUniform(). π₯GL_MAX_INTEGER_SAMPLESβ one value, the max number of samples supported in integer format multisample buffers.GL_MIN_MAP_BUFFER_ALIGNMENTβ one value, the minimum alignment in basic machine units of pointers returned fromglMapBuffer()andglMapBufferRange(). This value must be a power of two and must be at least64. no cap. π¦GL_MAX_LABEL_LENGTHβdatagives you back one value: the absolute longest label you're allowed to slap onto an object. Think of it as the character limit for your object's little name tag π·οΈ. SeeglObjectLabel()andglObjectPtrLabel().GL_MAX_PROGRAM_TEXEL_OFFSETβdatareturns one value, the biggest texel offset you're allowed to use in a texture lookup, and it's gotta be at least7.GL_MIN_PROGRAM_TEXEL_OFFSETβdatareturns one value, the smallest texel offset allowed in a texture lookup, which must be at most-8. (Yes bestie, negative. It's giving "the other direction" π .)GL_MAX_RECTANGLE_TEXTURE_SIZEβdatareturns one value, and it's a rough estimate of the biggest rectangular texture the GL can handle. Must be at least1024. Wanna know if a texture is too big? UseGL_PROXY_TEXTURE_RECTANGLEto check. SeeglTexImage2D().GL_MAX_RENDERBUFFER_SIZEβdatareturns one value: the max supported size for renderbuffers β¨. SeeglFramebufferRenderbuffer().GL_MAX_SAMPLE_MASK_WORDSβdatareturns one value, the maximum number of sample mask words.GL_MAX_SERVER_WAIT_TIMEOUTβdatareturns one value, the maximumglWaitSync()timeout interval β³.GL_MAX_SHADER_STORAGE_BUFFER_BINDINGSβdatareturns one value, the max number of shader storage buffer binding points on the context, which must be at least8.GL_MAX_TESS_CONTROL_ATOMIC_COUNTERSβdatareturns a single value: the max number of atomic counters available to tessellation control shaders.GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERSβdatareturns a single value: the max number of atomic counters available to tessellation evaluation shaders.GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKSβdatareturns one value, the max number of active shader storage blocks a tessellation control shader may access.GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKSβdatareturns one value, the max number of active shader storage blocks a tessellation evaluation shader may access.GL_MAX_TEXTURE_BUFFER_SIZEβdatareturns one value: the max number of texels allowed in the texel array of a texture buffer object. Must be at least65536π₯.GL_MAX_TEXTURE_IMAGE_UNITSβdatareturns one value, the max supported texture image units you can use to access texture maps from the fragment shader. Must be at least16. SeeglActiveTexture().GL_MAX_TEXTURE_LOD_BIASβdatareturns one value, the max absolute value of the texture level-of-detail bias. Must be at least2.0.GL_MAX_TEXTURE_SIZEβdatareturns one value, a rough estimate of the biggest texture the GL can handle. Must be at least1024. Curious if a texture is too big? Use a proxy texture target likeGL_PROXY_TEXTURE_1DorGL_PROXY_TEXTURE_2Dto find out. SeeglTexImage1D()andglTexImage2D().GL_MAX_UNIFORM_BUFFER_BINDINGSβdatareturns one value, the max number of uniform buffer binding points on the context, which must be at least36.GL_MAX_UNIFORM_BLOCK_SIZEβdatareturns one value, the max size in basic machine units of a uniform block, which must be at least16384.GL_MAX_UNIFORM_LOCATIONSβdatareturns one value, the max number of explicitly assignable uniform locations, which must be at least1024.GL_MAX_VARYING_COMPONENTSβdatareturns one value, the number of components for varying variables, which must be at least60.GL_MAX_VARYING_VECTORSβdatareturns one value, the number of 4-vectors for varying variables. Fun fact: it's equal to the value ofGL_MAX_VARYING_COMPONENTS, and must be at least15.GL_MAX_VARYING_FLOATSβdatareturns one value, the max number of interpolators available for processing varying variables used by vertex and fragment shaders. It counts individual floating-point values that can be interpolated β so varying variables declared as vectors, matrices, and arrays all eat up multiple interpolators π½οΈ. Must be at least32.GL_MAX_VERTEX_ATOMIC_COUNTERSβdatareturns a single value: the max number of atomic counters available to vertex shaders.GL_MAX_VERTEX_ATTRIBSβdatareturns one value, the max number of 4-component generic vertex attributes a vertex shader can reach. Must be at least16. SeeglVertexAttrib().GL_MAX_VERTEX_SHADER_STORAGE_BLOCKSβdatareturns one value, the max number of active shader storage blocks a vertex shader may access.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITSβdatareturns one value, the max supported texture image units usable to access texture maps from the vertex shader. The value may be at least16. SeeglActiveTexture().GL_MAX_VERTEX_UNIFORM_COMPONENTSβdatareturns one value, the max number of individual floating-point, integer, or boolean values that can live in uniform variable storage for a vertex shader. Must be at least1024. SeeglUniform().GL_MAX_VERTEX_UNIFORM_VECTORSβdatareturns one value, the max number of 4-vectors that may live in uniform variable storage for the vertex shader. This one equals the value ofGL_MAX_VERTEX_UNIFORM_COMPONENTSand must be at least256.GL_MAX_VERTEX_OUTPUT_COMPONENTSβdatareturns one value, the max number of components of output written by a vertex shader, which must be at least64.GL_MAX_VERTEX_UNIFORM_BLOCKSβdatareturns one value, the max number of uniform blocks per vertex shader. Must be at least12. SeeglUniformBlockBinding().GL_MAX_VIEWPORT_DIMSβ ooh, this one returns two values π«Ά: the max supported width and height of the viewport. These must be at least as large as the visible dimensions of the display you're rendering to. SeeglViewport().GL_MAX_VIEWPORTSβdatareturns one value, the max number of simultaneous viewports supported. Must be at least16. SeeglViewportIndexed().GL_MINOR_VERSIONβdatareturns one value, the minor version number of the OpenGL API supported by the current context.GL_NUM_COMPRESSED_TEXTURE_FORMATSβdatareturns a single integer value: how many compressed texture formats are available. The minimum value is4. SeeglCompressedTexImage2D().GL_NUM_EXTENSIONSβdatareturns one value, the number of extensions the GL implementation supports for the current context. SeeglGetString().GL_NUM_PROGRAM_BINARY_FORMATSβdatareturns one value, the number of program binary formats supported by the implementation.GL_NUM_SHADER_BINARY_FORMATSβdatareturns one value, the number of binary shader formats supported by the implementation. If it's greater than zero, bestie, the implementation supports loading binary shaders β . If it's zero, loading binary shaders is not supported β.GL_PACK_ALIGNMENTβdatareturns one value, the byte alignment used when writing pixel data to memory. Initial value is4. SeeglPixelStore().GL_PACK_IMAGE_HEIGHTβdatareturns one value, the image height used when writing pixel data to memory. Initial value is0. SeeglPixelStore().GL_PACK_LSB_FIRSTβdatareturns a single boolean value: whether single-bit pixels being written to memory go first into the least significant bit of each unsigned byte. Initial value isGL_FALSE. SeeglPixelStore().GL_PACK_ROW_LENGTHβdatareturns one value, the row length used when writing pixel data to memory. Initial value is0. SeeglPixelStore().GL_PACK_SKIP_IMAGESβdatareturns one value, how many pixel images get skipped before the first pixel is written into memory. Initial value is0. SeeglPixelStore().GL_PACK_SKIP_PIXELSβdatareturns one value, how many pixel locations get skipped before the first pixel is written into memory. Initial value is0. SeeglPixelStore().GL_PACK_SKIP_ROWSβdatareturns one value, how many rows of pixel locations get skipped before the first pixel is written into memory. Initial value is0. SeeglPixelStore().GL_PACK_SWAP_BYTESβdatareturns a single boolean value: whether the bytes of two-byte and four-byte pixel indices and components get swapped before being written to memory. Initial value isGL_FALSE. SeeglPixelStore().GL_PIXEL_PACK_BUFFER_BINDINGβdatareturns a single value: the name of the buffer object currently bound to theGL_PIXEL_PACK_BUFFERtarget. If nothing's bound there, you get0back. Initial value is0. SeeglBindBuffer().GL_PIXEL_UNPACK_BUFFER_BINDINGβdatareturns a single value: the name of the buffer object currently bound to theGL_PIXEL_UNPACK_BUFFERtarget. Nothing bound?0. Initial value is0. SeeglBindBuffer().GL_POINT_FADE_THRESHOLD_SIZEβdatareturns one value, the point size threshold used for determining the point size. SeeglPointParameter().GL_PRIMITIVE_RESTART_INDEXβdatareturns one value, the current primitive restart index. Initial value is0. SeeglPrimitiveRestartIndex().GL_PROGRAM_BINARY_FORMATSβdatagives you an array ofGL_NUM_PROGRAM_BINARY_FORMATSvalues, indicating the program binary formats supported by the implementation π¦.GL_PROGRAM_PIPELINE_BINDINGβdatagives a single value: the name of the currently bound program pipeline object, or zero if no program pipeline object is bound. SeeglBindProgramPipeline().GL_PROGRAM_POINT_SIZEβdatareturns a single boolean value: is vertex program point size mode on? If it's enabled, the point size comes from the shader built-ingl_PointSizeβ¨. If it's disabled, the point size comes from point state as specified byglPointSize(). Initial value isGL_FALSE.GL_PROVOKING_VERTEXβdatareturns one value, the currently selected provoking vertex convention. Initial value isGL_LAST_VERTEX_CONVENTION. SeeglProvokingVertex().GL_POINT_SIZEβdatareturns one value, the point size as specified byglPointSize(). Initial value is1.GL_POINT_SIZE_GRANULARITYβdatareturns one value, the size difference between adjacent supported sizes for antialiased points. SeeglPointSize().GL_POINT_SIZE_RANGEβdatahands you back two values: the smallest and the largest supported sizes for antialiased points β¨. The smallest size has to be at most 1, and the largest size has to be at least 1, no cap. PeepglPointSize()for the full lore.GL_POLYGON_OFFSET_FACTORβdatareturns one value, the scaling factor that's used to work out the variable offset added onto the depth value of every fragment generated when a polygon gets rasterized π. Initial value is0. SeeglPolygonOffset().GL_POLYGON_OFFSET_UNITSβdatareturns one value. This value gets multiplied by an implementation-specific value and then added to the depth value of each fragment generated when a polygon is rasterized. Initial value is0. SeeglPolygonOffset()π .GL_POLYGON_OFFSET_FILLβdatareturns a single boolean value, telling you whether polygon offset is enabled for polygons in fill mode. Initial value isGL_FALSE. SeeglPolygonOffset().GL_POLYGON_OFFSET_LINEβdatareturns a single boolean value, indicating whether polygon offset is enabled for polygons in line mode. Initial value isGL_FALSE. SeeglPolygonOffset()π¦.GL_POLYGON_OFFSET_POINTβdatareturns a single boolean value, indicating whether polygon offset is enabled for polygons in point mode. Initial value isGL_FALSE. SeeglPolygonOffset().GL_POLYGON_SMOOTHβdatareturns a single boolean value indicating whether antialiasing of polygons is enabled. Initial value isGL_FALSE. SeeglPolygonMode()πΈ.GL_POLYGON_SMOOTH_HINTβdatareturns one value, a symbolic constant indicating the mode of the polygon antialiasing hint. Initial value isGL_DONT_CARE. SeeglHint().GL_READ_BUFFERβdatareturns one value, a symbolic constant that tells you which color buffer is selected for reading π. Initial value isGL_BACKif there's a back buffer β otherwise it'sGL_FRONT, periodt. SeeglReadPixels().GL_RENDERBUFFER_BINDINGβdatareturns a single value, the name of the renderbuffer object currently bound to the targetGL_RENDERBUFFER. If no renderbuffer object is bound to this target,0is returned. Initial value is0. SeeglBindRenderbuffer().GL_SAMPLE_BUFFERSβdatareturns a single integer value indicating the number of sample buffers associated with the framebuffer. SeeglSampleCoverage()π.GL_SAMPLE_COVERAGE_VALUEβdatareturns a single positive floating-point value indicating the current sample coverage value π. SeeglSampleCoverage().GL_SAMPLE_COVERAGE_INVERTβdatareturns a single boolean value indicating if the temporary coverage value should be inverted. SeeglSampleCoverage().GL_SAMPLER_BINDINGβdatareturns a single value, the name of the sampler object currently bound to the active texture unit β¨. Initial value is0. SeeglBindSampler().GL_SAMPLESβdatareturns a single integer value indicating the coverage mask size. SeeglSampleCoverage().GL_SCISSOR_BOXβdatareturns 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 both0, and the width and height are set to the size of the window. SeeglScissor().GL_SCISSOR_TESTβdatareturns a single boolean value indicating whether scissoring is enabled. Initial value isGL_FALSE. SeeglScissor().GL_SHADER_COMPILERβdatareturns a single boolean value indicating whether an online shader compiler is present in the implementation. Heads up bestie: all desktop OpenGL implementations must support online shader compilations, and therefore the value ofGL_SHADER_COMPILERwill always beGL_TRUEπ. Like, always.GL_SHADER_STORAGE_BUFFER_BINDINGβ When it's used with non-indexed variants ofglGet(such asglGetIntegerv),datareturns a single value: the name of the buffer object currently bound to the targetGL_SHADER_STORAGE_BUFFER. If no buffer object is bound to this target,0is returned. When it's used with indexed variants ofglGet(such asglGetIntegeri_v),datareturns a single value: the name of the buffer object bound to the indexed shader storage buffer binding points π₯. Initial value is0for all targets. SeeglBindBuffer(),glBindBufferBase(), andglBindBufferRange().GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENTβdatareturns a single value, the minimum required alignment for shader storage buffer sizes and offset. Initial value is1. SeeglShaderStorageBlockBinding().GL_SHADER_STORAGE_BUFFER_STARTβ When it's used with indexed variants ofglGet(such asglGetInteger64i_v),datareturns a single value: the start offset of the binding range for each indexed shader storage buffer binding π. Initial value is0for all bindings. SeeglBindBufferRange().GL_SHADER_STORAGE_BUFFER_SIZEβ When it's used with indexed variants ofglGet(such asglGetInteger64i_v),datareturns a single value: the size of the binding range for each indexed shader storage buffer binding. Initial value is0for all bindings. SeeglBindBufferRange().GL_SMOOTH_LINE_WIDTH_RANGEβdatareturns a pair of values indicating the range of widths supported for smooth (antialiased) lines π¦. SeeglLineWidth().GL_SMOOTH_LINE_WIDTH_GRANULARITYβdatareturns a single value indicating the level of quantization applied to smooth line width parameters.GL_STENCIL_BACK_FAILβdatareturns one value, a symbolic constant indicating what action is taken for back-facing polygons when the stencil test fails. Initial value isGL_KEEP. SeeglStencilOpSeparate().GL_STENCIL_BACK_FUNCβdatareturns 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. Initial value isGL_ALWAYS. SeeglStencilFuncSeparate()π .GL_STENCIL_BACK_PASS_DEPTH_FAILβdatareturns one value, a symbolic constant indicating what action is taken for back-facing polygons when the stencil test passes, but the depth test fails. Initial value isGL_KEEP. SeeglStencilOpSeparate().GL_STENCIL_BACK_PASS_DEPTH_PASSβdatareturns one value, a symbolic constant indicating what action is taken for back-facing polygons when the stencil test passes and the depth test passes. Initial value isGL_KEEP. SeeglStencilOpSeparate()β¨.GL_STENCIL_BACK_REFβdatareturns one value, the reference value that gets compared with the contents of the stencil buffer for back-facing polygons. Initial value is0. SeeglStencilFuncSeparate().GL_STENCIL_BACK_VALUE_MASKβdatareturns one value, the mask that's used for back-facing polygons to mask both the stencil reference value and the stencil buffer value before they're compared. Initial value is all 1's. SeeglStencilFuncSeparate()π.GL_STENCIL_BACK_WRITEMASKβdatareturns one value, the mask that controls writing of the stencil bitplanes for back-facing polygons. Initial value is all 1's. SeeglStencilMaskSeparate().GL_STENCIL_CLEAR_VALUEβdatareturns one value, the index to which the stencil bitplanes are cleared. Initial value is0. SeeglClearStencil().GL_STENCIL_FAILβdatareturns one value, a symbolic constant indicating what action is taken when the stencil test fails. Initial value isGL_KEEP. SeeglStencilOp(). Important vibe check: this stencil state only affects non-polygons and front-facing polygons β back-facing polygons use separate stencil state, iykyk. SeeglStencilOpSeparate()π.GL_STENCIL_FUNCβdatareturns one value, a symbolic constant indicating what function is used to compare the stencil reference value with the stencil buffer value. Initial value isGL_ALWAYS. SeeglStencilFunc(). This stencil state only affects non-polygons and front-facing polygons; back-facing polygons use separate stencil state. SeeglStencilFuncSeparate().GL_STENCIL_PASS_DEPTH_FAILβdatareturns one value, a symbolic constant indicating what action is taken when the stencil test passes, but the depth test fails. Initial value isGL_KEEP. SeeglStencilOp(). This stencil state only affects non-polygons and front-facing polygons β back-facing polygons use separate stencil state. SeeglStencilOpSeparate()πΈ.GL_STENCIL_PASS_DEPTH_PASSβdatareturns one value, a symbolic constant indicating what action is taken when the stencil test passes and the depth test passes. Initial value isGL_KEEP. SeeglStencilOp(). This stencil state only affects non-polygons and front-facing polygons; back-facing polygons use separate stencil state. SeeglStencilOpSeparate().GL_STENCIL_REFβdatareturns one value, the reference value that gets compared with the contents of the stencil buffer. Initial value is0. SeeglStencilFunc(). This stencil state only affects non-polygons and front-facing polygons β back-facing polygons use separate stencil state. SeeglStencilFuncSeparate()π.GL_STENCIL_TESTβdatareturns a single boolean value indicating whether stencil testing of fragments is enabled. Initial value isGL_FALSE. SeeglStencilFunc()andglStencilOp().GL_STENCIL_VALUE_MASKβdatareturns one value, the mask that's used to mask both the stencil reference value and the stencil buffer value before they're compared. Initial value is all 1's. SeeglStencilFunc(). This stencil state only affects non-polygons and front-facing polygons; back-facing polygons use separate stencil state. SeeglStencilFuncSeparate()π.GL_STENCIL_WRITEMASKβdatareturns one value, the mask that controls writing of the stencil bitplanes. Initial value is all 1's. SeeglStencilMask(). This stencil state only affects non-polygons and front-facing polygons β back-facing polygons use separate stencil state. SeeglStencilMaskSeparate().GL_STEREOβdatareturns a single boolean value indicating whether stereo buffers (left and right) are supported π¦.GL_SUBPIXEL_BITSβdatareturns 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 least4, no exceptions bestie.GL_TEXTURE_BINDING_1Dβdatareturns a single value, the name of the texture currently bound to the targetGL_TEXTURE_1D. Initial value is0. SeeglBindTexture()π.GL_TEXTURE_BINDING_1D_ARRAYβ data gets you one value: the name of the texture that's currently bound toGL_TEXTURE_1D_ARRAY. Initial value?0. SeeglBindTexture().GL_TEXTURE_BINDING_2Dβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_2D. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_2D_ARRAYβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_2D_ARRAY. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_2D_MULTISAMPLEβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_2D_MULTISAMPLE. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAYβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_2D_MULTISAMPLE_ARRAY. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_3Dβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_3D. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_BUFFERβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_BUFFER. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_CUBE_MAPβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_CUBE_MAP. Initial value is0. SeeglBindTexture().GL_TEXTURE_BINDING_RECTANGLEβ data gets you one value: the name of the texture currently bound toGL_TEXTURE_RECTANGLE. Initial value is0. SeeglBindTexture().GL_TEXTURE_COMPRESSION_HINTβ data gets you one value telling you the mode of the texture compression hint. Initial value isGL_DONT_CARE.GL_TEXTURE_BINDING_BUFFERβ yes bestie, it's listed again π and this time it's a different thing, so don't @ me: data gets you one value, the name of the buffer object currently bound to theGL_TEXTURE_BUFFERbuffer binding point. Initial value is0. SeeglBindBuffer().GL_TEXTURE_BUFFER_OFFSET_ALIGNMENTβ data gets you one value: the minimum required alignment for texture buffer sizes and offset. Initial value is1. SeeglUniformBlockBinding().GL_TIMESTAMPβ data gets you one value: the 64-bit value of the current GL time. SeeglQueryCounter().GL_TRANSFORM_FEEDBACK_BUFFER_BINDINGβ okay so it depends on the flavour ofglGetyou're using π With the non-indexed variants (likeglGetIntegerv), data gets you one value: the name of the buffer object currently bound toGL_TRANSFORM_FEEDBACK_BUFFER. No buffer object bound to that target? You get0. With the indexed variants (likeglGetIntegeri_v), data gets you one value: the name of the buffer object bound to the indexed transform feedback attribute stream. Initial value is0for all targets. SeeglBindBuffer(),glBindBufferBase(), andglBindBufferRange().GL_TRANSFORM_FEEDBACK_BUFFER_STARTβ with the indexed variants ofglGet(likeglGetInteger64i_v), data gets you one value: the start offset of the binding range for each transform feedback attribute stream. Initial value is0for all streams. SeeglBindBufferRange().GL_TRANSFORM_FEEDBACK_BUFFER_SIZEβ with the indexed variants ofglGet(likeglGetInteger64i_v), data gets you one value: the size of the binding range for each transform feedback attribute stream. Initial value is0for all streams. SeeglBindBufferRange().GL_UNIFORM_BUFFER_BINDINGβ same split-brain situation as above, so stay with me π«Ά With the non-indexed variants (likeglGetIntegerv), data gets you one value: the name of the buffer object currently bound toGL_UNIFORM_BUFFER. If nothing's bound to that target,0comes back. With the indexed variants (likeglGetIntegeri_v), data gets you one value: the name of the buffer object bound to the indexed uniform buffer binding point. Initial value is0for all targets. SeeglBindBuffer(),glBindBufferBase(), andglBindBufferRange().GL_UNIFORM_BUFFER_OFFSET_ALIGNMENTβ data gets you one value: the minimum required alignment for uniform buffer sizes and offset. Initial value is1. SeeglUniformBlockBinding().GL_UNIFORM_BUFFER_SIZEβ with the indexed variants ofglGet(likeglGetInteger64i_v), data gets you one value: the size of the binding range for each indexed uniform buffer binding. Initial value is0for all bindings. SeeglBindBufferRange().GL_UNIFORM_BUFFER_STARTβ with the indexed variants ofglGet(likeglGetInteger64i_v), data gets you one value: the start offset of the binding range for each indexed uniform buffer binding. Initial value is0for all bindings. SeeglBindBufferRange().GL_UNPACK_ALIGNMENTβ data gets you one value: the byte alignment used for reading pixel data from memory. Initial value is4. SeeglPixelStore().GL_UNPACK_IMAGE_HEIGHTβ data gets you one value: the image height used for reading pixel data from memory. The initial is0. SeeglPixelStore().GL_UNPACK_LSB_FIRSTβ data gets you a single boolean value telling you whether single-bit pixels being read from memory are read first from the least significant bit of each unsigned byte. Initial value isGL_FALSE. SeeglPixelStore().GL_UNPACK_ROW_LENGTHβ data gets you one value: the row length used for reading pixel data from memory. Initial value is0. SeeglPixelStore().GL_UNPACK_SKIP_IMAGESβ data gets you one value: the number of pixel images skipped before the first pixel is read from memory. Initial value is0. SeeglPixelStore().GL_UNPACK_SKIP_PIXELSβ data gets you one value: the number of pixel locations skipped before the first pixel is read from memory. Initial value is0. SeeglPixelStore().GL_UNPACK_SKIP_ROWSβ data gets you one value: the number of rows of pixel locations skipped before the first pixel is read from memory. Initial value is0. SeeglPixelStore().GL_UNPACK_SWAP_BYTESβ data gets you a single boolean value telling you whether the bytes of two-byte and four-byte pixel indices and components are swapped after being read from memory. Initial value isGL_FALSE. SeeglPixelStore().GL_VERTEX_ARRAY_BINDINGβ data gets you one value: the name of the vertex array object currently bound to the context. If no vertex array object is bound to the context,0comes back. Initial value is0. SeeglBindVertexArray().GL_VERTEX_BINDING_DIVISORβ accepted by the indexed forms β¨ data gets you a single integer value representing the instance step divisor of the first element in the bound buffer's data store for vertex attribute bound to index.GL_VERTEX_BINDING_OFFSETβ accepted by the indexed forms. data gets you a single integer value representing the byte offset of the first element in the bound buffer's data store for vertex attribute bound to index.GL_VERTEX_BINDING_STRIDEβ accepted by the indexed forms. data gets you a single integer value representing the byte offset between the start of each element in the bound buffer's data store for vertex attribute bound to index.GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSETβ data gets you a single integer value containing the maximum offset that may be added to a vertex binding offset.GL_MAX_VERTEX_ATTRIB_BINDINGSβ data gets you a single integer value containing the maximum number of vertex buffers that may be bound.GL_VIEWPORTβ okay this one's got two whole moods, keep up π- With the non-indexed variants of
glGet(likeglGetIntegerv), data gets you 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 to0, and the width and height are set to the width and height of the window into which the GL will do its rendering. SeeglViewport(). - With the indexed variants of
glGet(likeglGetIntegeri_v), data gets you 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 to0, and the width and height are set to the width and height of the window into which the GL will do its rendering. See
- With the non-indexed variants of
glViewportIndexedf
GL_VIEWPORT_BOUNDS_RANGEβ data gets you two values: the minimum and maximum viewport bounds range. The minimum range should be at least[-32768, 32767].GL_VIEWPORT_INDEX_PROVOKING_VERTEXβ data gets you one value: the implementation dependent specifc vertex of a primitive that is used to select the viewport index. And what that value means is whole lore, so:- If it's equivalent to
GL_PROVOKING_VERTEX, then the vertex selection follows the convention specified byglProvokingVertex(). - If it's equivalent to
GL_FIRST_VERTEX_CONVENTION, then the selection is always taken from the first vertex in the primitive. - If it's equivalent to
GL_LAST_VERTEX_CONVENTION, then the selection is always taken from the last vertex in the primitive. - If it's equivalent to
GL_UNDEFINED_VERTEX, then the selection is not guaranteed to be taken from any specific vertex in the primitive. π
- If it's equivalent to
GL_VIEWPORT_SUBPIXEL_BITSβ data gets you 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 is0.GL_MAX_ELEMENT_INDEXβ data gets you a single value: the maximum index that may be specified during the transfer of generic vertex attributes to the GL.
Lowkey the best part: many of the boolean parameters can also be queried more easily using glIsEnabled(). Noted, bestie, noted π
π NOTES π
Okay bestie, real talk: these params 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. Slay, but keep that texture-unit context in mind. β¨
GL_MAX_VIEWPORTS, GL_VIEWPORT_SUBPIXEL_BITS, GL_VIEWPORT_BOUNDS_RANGE, GL_LAYER_PROVOKING_VERTEX, and GL_VIEWPORT_INDEX_PROVOKING_VERTEX are available only if the GL version is 4.1 or greater.
GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, GL_MAX_GEOMETRY_ATOMIC_COUNTERS, GL_MAX_FRAMGENT_ATOMIC_COUNTERS, and GL_MIN_MAP_BUFFER_ALIGNMENT are accepted by pname only if the GL version is 4.2 or greater.
GL_MAX_ELEMENT_INDEX is accepted by pname only if the GL version is 4.3 or greater. π
GL_MAX_COMPUTE_UNIFORM_BLOCKS, GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_ATOMIC_COUNTERS, GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_COUNT, and GL_MAX_COMPUTE_WORK_GROUP_SIZE and GL_DISPATCH_INDIRECT_BUFFER_BINDING are available only if the GL version is 4.3 or greater.
GL_MAX_DEBUG_GROUP_STACK_DEPTH, GL_DEBUG_GROUP_STACK_DEPTH, and GL_MAX_LABEL_LENGTH are accepted only if the GL version is 4.3 or greater.
GL_MAX_UNIFORM_LOCATIONS is accepted only if the GL version is 4.3 or greater.
GL_MAX_FRAMEBUFFER_WIDTH, GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_LAYERS, and GL_MAX_FRAMEBUFFER_SAMPLES are available only if the GL version is 4.3 or greater. π«Ά
GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, and GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS are available only if the GL version is 4.3 or higher.
GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT is available only if the GL version is 4.3 or greater.
GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE, GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, and GL_MAX_VERTEX_ATTRIB_BINDINGS are available only if the GL version is 4.3 or greater. π¦
π ERRORS π
GL_INVALID_ENUM is generated if pname is not an accepted value. Not iconic, but thatβs the rule.
GL_INVALID_VALUE is generated on any of glGetBooleani_v, glGetIntegeri_v, or glGetInteger64i_v if index is outside of the valid range for the indexed state target. Maβam, that index is out of bounds. π
π VERSION SUPPORT π
OpenGL Version vibes are 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3, 4.4, and 4.5. Hereβs the whole support grid as a list, because tables are not the moment.
β Function / Feature Name β
glGetBooleani_vβ2.0: -,2.1: -,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetBooleanvβ2.0: β,2.1: β,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetDoublei_vβ2.0: -,2.1: -,3.0: -,3.1: -,3.2: -,3.3: -,4.0: -,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetDoublevβ2.0: β,2.1: β,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetFloati_vβ2.0: -,2.1: -,3.0: -,3.1: -,3.2: -,3.3: -,4.0: -,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetFloatvβ2.0: β,2.1: β,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetInteger64i_vβ2.0: -,2.1: -,3.0: -,3.1: -,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetInteger64vβ2.0: -,2.1: -,3.0: -,3.1: -,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetIntegeri_vβ2.0: -,2.1: -,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: βglGetIntegervβ2.0: β,2.1: β,3.0: β,3.1: β,3.2: β,3.3: β,4.0: β,4.1: β,4.2: β,4.3: β,4.4: β,4.5: β
π SEE ALSO π
The whole friend group: glGetActiveUniform(), glGetAttachedShaders(), glGetAttribLocation(), glGetBufferParameter(), glGetBufferPointerv(), glGetBufferSubData(), glGetCompressedTexImage(), glGetError(), glGetProgram(), glGetProgramInfoLog(), glGetQueryiv(), glGetQueryObject(), glGetShader(), glGetShaderInfoLog(), glGetShaderSource(), glGetString(), glGetTexImage(), glGetTexLevelParameter(), glGetTexParameter(), glGetUniform(), glGetUniformLocation(), glGetVertexAttrib(), glGetVertexAttribPointerv(), glIsEnabled().
π COPYRIGHT π
Copyright Β© 1991-2006 Silicon Graphics, Inc. Copyright Β© 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/. π«Ά
π COPYRIGHT π (the encore π)
Copyright Β© 1991-2006 Silicon Graphics, Inc.
Copyright Β© 2010-2014 Khronos Group
Mwah π bestie, thatβs the whole page. The footer energy is source/version [FIXME: source], date 08/09/2021, and page GLGET(3G) β now go query some GL state and slay. β¨π
π¦ where this page comes from
- centos-stream 9: gl-manpages 1.1-24.20190306.el9 Β· MIT and Open Publication
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms