下面的内容包含OpenGL保留的可查询的全部状态变量名称。变量是由它们相关的函数排名的。表格中的每个变量,传递的符号就是它的值,此外还有描述、初始化函数,以及提供的glGet*()系列函数。大多数状态变量可以使用glGetBooleanv、glGetlntegerv、 glGetFloatv或者glGetDoublev来获得。表格中列出了大多数合适的数据类型的返回值。不过,使用gllsEnabled列出的命令来查询状态变量,同样也可以使用glGetBooleanv、glGetlntegerv、gIGetFloatv或者gIGetDoublev来得。
对于那些列出了其他命令的状态变量,就只能使用对应的那个命令来获取了。

一、查询命令

大多数状态变量可以使用glGetBooleanv、glGetlntegerv、 glGetFloatv或者glGetDoublev来获得 。

  1. void glGetActiveAtomicCounterBufferiv( GLuint program, GLuint bufferindex, GLenum pname, GLint *params );
  2. void glGetActiveAttrib( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name );
  3. void glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize GLsizei *length, GLchar *name );
  4. void glGetActiveSubroutineUniformiv( GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values );
  5. void glGetActiveSubroutineUniformName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name );
  6. void glGetActiveUniform( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name );
  7. void glGetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params );
  8. void glGetActiveUniformBlockName( GLuint program, GLuint unifbrmBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName );
  9. void glGetActiveUniformName( GLuint program, GLuint unifbrmIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName );
  10. void glGetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint *unifbrmlndices, GLenum pname, GLint *params );
  11. void glGetAttachedShaders( GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj );
  12. GLint glGetAttribLocation( GLuint program, const GLchar *name );
  13. void glGetBooleanv( GLenum pname, GLboolean *params );
  14. void glGetBooleani_v( GLenum target, GLuint index, GLboolean *data );
  15. void glGetBufferParameteriv( GLenum target, GLenum pname, GLint *params );
  16. void glGetBufferParameteri64v( GLenum target, GLenum pname, GLint64 *params );
  17. void glGetBufferPointerv( GLenum target, GLenum pname, GLvoid **params );
  18. void glGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data );
  19. void glGetCompressedTexImage( GLenum target, GLint level, GLvoid *img );
  20. GLuint glGetDebugMessageLog( GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog );
  21. void glGetDoublev( GLenum pname, GLdouble *params );
  22. void glGetDoubleiv( GLenum target, GLuint index, GLdouble *data );
  23. GLenum glGetError( void );
  24. void glGetFloatv( GLenum pname, GLfloat *params );
  25. void glGetFloati_v( GLenum target, GLuint index, GLfloat *data );
  26. GLint glGetFragDataIndex( GLuint program, const GLchar *name );
  27. GLint glGetFragDataLocation( GLuint program, const GLchar *name );
  28. void glGetFramebufferAttachmentParameteriv( GLenum target, GLenum attachment, GLenum pname, GLint *params );
  29. void glGetFramebufferParameteriv( GLenum target, GLenum pname, GLint *params );
  30. void glGetIntegerv( GLenum pname, GLint *params );
  31. void glGetIntegerv64v( GLenum pname, GLint64 *params );
  32. void glGetIntegeri_v( GLenum target, GLuint index, GLint *data );
  33. void glGetInteger64i_v( GLenum target, GLuint index, GLint64 *data );
  34. void glGetlntemalformativ( GLenum target, GLenum intemalfbrmat, GLenum pname, GLsizei bufSize, GLint *params );
  35. void glGetInternalformati64v( GLenum target, GLenum intemalformat, GLenum pname, GLsizei bufSize, GLint64 *params );
  36. void glGetMultisamplefv( GLenum pname, GLuint index, GLfloat *val );
  37. void glGetObjectLabel( GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label );
  38. void glGetObjectPtrLabel( const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label );
  39. void glGetPointerv( GLenum pname, GLvoid * *params );
  40. void glGetProgramBinary( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary );
  41. void glGetProgramInfoLog( GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog );
  42. void glGetProgramiv( GLuint program, GLenum pname, GLint *params );
  43. void glGetProgramPipelineInfoLog( GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog );
  44. void glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params );
  45. void glGetProgramInterfaceiv( GLuint program, GLenum programinterface, GLenum pname, GLint *params );
  46. GLuint glGetProgramResourceIndex( GLuint program, GLenum programinterface, const GLchar *name );
  47. GLint glGetProgramResourceLocation( GLuint program, GLenum programinterface, const GLchar *name );
  48. GLint glGetProgramResourceLocationIndex( GLuint program, GLenum programinterface, const GLchar *name );
  49. void glGetProgramResourceName( GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name );
  50. void glGetProgramResourceiv( GLuint program, GLenum programinterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params );
  51. void glGetProgramStageiv( GLuint program, GLenum shadertype, GLenum pname, GLint *values );
  52. void glGetQueryIndexediv( GLenum target, GLuint index, GLenum pname, GLint *params );
  53. void glGetQueryiv( GLenum target, GLenum pname, GLint *params );
  54. void glGetQueryObjectiv( GLuint id, GLenum pname, GLint *params );
  55. void glGetQueryObjecti64v( GLuint id, GLenum pname, GLint64 *params );
  56. void glGetQueryObjectuiv( GLuint id, GLenum pname, GLuint *params );
  57. void glGetQueryObjectui64v( GLint id, GLenum pname, GLuint64 *pname );
  58. void glGetRenderbufferParameteriv( GLenum target, GLenum pname, GLint *params );
  59. void glGetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat *params );
  60. void glGetSamplerParameteriv( GLuint sampler, GLenum pname, GLint *params );
  61. void glGetSamplerParameterliv( GLuint sampler, GLenum pname, GLint *params );
  62. void glGetSamplerParameterluiv( GLuint sampler, GLenum pname, GLuint *params );
  63. void glGetShaderInfoLog( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog );
  64. void glGetShaderiv( GLuint shader, GLenum pname, GLint *params );
  65. void glGetShaderPrecisionFormat( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision );
  66. void glGetShaderSource( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source );
  67. const GLubyte *glGetString( GLenum name );
  68. const GLubyte *glGetStringl( GLenum name, GLuint index );
  69. GLuint glGetSubroutineIndex( GLuint program, GLenum shadertype, const GLchar *name );
  70. GLint glGetSubroutineUniformLocation( GLuint program, GLenum shadertype, const GLchar *name );
  71. void glGetSynciv( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values );
  72. void glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels );
  73. void glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params );
  74. void glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params );
  75. void glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params );
  76. void glGetTexParameteriv( GLenum target, GLenum pname, GLint *params );
  77. void glGetTexParameterliv( GLenum target, GLenum pname, GLint *params );
  78. void glGetTexParameterluiv( GLenum target, GLenum pname, GLuint *params );
  79. void glGetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name );
  80. GLuint glGetUniformBlockIndex( GLuint program, const GLchar *uniformBlockName );
  81. void glGetUniformdv( GLuint program, GLint location, GLdouble *params );
  82. void glGetUniformfv( GLuint program, GLint location, GLfloat *params );
  83. void glGetUniformiv( GLuint program, GLint location, GLint *params );
  84. void glGetUniformuiv( GLuint program, GLint location, GLuint *params );
  85. void glGetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar *uniformNames, GLuint *uniformlndices );
  86. void glGetUniformLocation( GLuint program, const GLchar *name );
  87. void glGetUniformSubroutineuiv( GLenum shadertype, GLint location, GLuint *params );
  88. void glGetVertexAttribdv( GLuint index, GLenum pname, GLdouble *params );
  89. void glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params );
  90. void glGetVertexAttribiv( GLuint index, GLenum pname, GLint *params );
  91. void glGetVertexAttribliv( GLuint index, GLenum pname, GLint *params );
  92. void glGetVertexAttribluiv( GLuint index, GLenum pname, GLuint *params );
  93. void glGetVertexAttribLdv( GLuint index, GLenum pname, GLdouble *params );
  94. void glGetVertexAttribPointerv( GLuint index, GLenum pname, GLvoid * *pointer );

二、状态变量

当前值和相关数据

表D-1当前值和相关数据
状态变量 描述 初始值 查询命令
GL_PATCH_VERTICES 输入patch的顶点数 3 glGetIntegerv()
GL_PATCH_DEFAULT_OUTER_LEVEL 当不使用细分控制着色器(tessellation control shader)时默认的外细分级数 (1.0,1.0,1.0,1.0) glGetFloatv()
GL_PATCH_DEFAULT_INNER_LEVEL 当不使用细分控制着色器时默认的内 细分级数 (1.0, 1.0) glGetFloatv()

顶点数组对象状态

表D-2每个顶点数组对象的状态变量
状态变量 描述 初始值 查询命令
GL_VERTEX_ATTRIB_ARRAY_ENABLED 启用顶点属性(attri-bute)数组 GL_FALSE glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_SIZE 顶点属性数组大小 4 glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_STRIDE 顶点属性数组的跨距 0 glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_TYPE 顶点属性数组类型 GL_FLOAT glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 规范化的顶点属性数组 GL_FALSE glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_INTEGER 未转换的整型顶点属 性数组 GL_FALSE glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_LONG 未转换的整型顶点属 性数组 GL_FALSE glGetVertexAttribiv()
GL_VERTEX ATTRIB_ARRAY_DIVISOR 实例分隔符的顶点属 性数组的实例 0 glGetVertexAttribiv()
GL_VERTEX_ATTRIB_ARRAY_POINTER 顶点属性数组指针 NULL glGetVertexAttribPointerv()
GL_LABEL 调试标签 空字符串 glGetObjectLabeI()
GL_ELEMENT_ARRAY_BUFFER_BINDING 元素数组缓存绑定 0 glGetlntegerv()
GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 属性数组缓存绑定 0 glGetVertexAttribiv()
GL_VERTEX_ATTRIB_BINDING 使用顶点属性i绑定 顶点缓存 i glGetVertexAttribiv()
GL_VERTEX_ATTRIB_RELATIVE_OFFSET 对属性的顶点绑定偏 移增加字节偏移 0 glGetVertexAttribiv()
GL_VERTEX_BINDFNG_OFFSET 在绑定的缓存的第一 个元素字节偏移 i glGetInteger64i_v()
GL_VERTEX_BINDING_STRIDE 顶点缓存绑定跨距 16 glGetIntegeri_v()

顶点数组数据的状态

表D-3顶点数组数据的状态变量(没有存储在顶点数组对象)
状态变量 描述 初始值 查询命令
GL_ARRAY_BUFFER_BINDING 当前的缓存绑定 0 glGetIntegerv()
GL_DRAW_INDIRECT_BUFFER_BINDING 缓存绑定的间接命令 0 glGetIntegerv()
GL_VERTEX_ARRAY_BINDING 当前绑定的顶点数组对象 0 glGetIntegerv()
GL_PRIMITIVE_RJESTART 图元(primitive)重启的开启状态 GL_FALSE glIsEnabled()
GL_PRIMITIVE_RESTART_INDEX 图元重启索引 0 glGetIntegerv()

缓存对象状态

表D-4缓存对象的状态变量
状态变量 描述 初始值 查询命令
GL_BUFFER_SIZE 缓存数据大小 0 gIGetBuffer Parameteri64v()
GL_BUFFER_USAGE 缓存用法模式 GL_STATIC_DRAW gIGetBuffer Parameteriv()
GL_BUFFER_ACCESS 缓存访问标志 GL_READ_WRITE gIGetBuffer Parameteriv()
GL_BUFFER_ACCESS_FLAGS 扩展的缓存访问标志 0 gIGetBuffer Parameteriv()
GL_BUFFER_MAPPED 缓存映射标志 GL_FALSE gIGetBuffer Parameteriv()
GL_BUFFER_MAP_POINTER 被映射的缓存指针 NULL glGetBufferPointerv()
GL_BUFFER_MAP_OFFSET 被映射的缓存的开始位置 0 gIGetBuffer Parameteri64v()
GL_BUFFER_MAP_LENGTH 被映射的缓存范围的大小 0 gIGetBuffer Parameter! 64v()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

变换状态

表D-5变换状态变量
状态变量 描述 初始值 查询命令
GL_VIEWPORT 视口的原点和范围 (0, 0, width, height) 其中的width和height是 OpenGL将要渲染的窗口 大小 glGetFloati_v()
GL_DEPTH_RANGE 深度范围 0,1 glGetDoublei_v()
GL_CLIP_DISTANCEi 第i个用户裁剪平面的开 启状态 GL_FALSE glIsEnabled()
GL_DEPTH_CLAMP 深度截断(clamping)的 开启状态 GL_FALSE glIsEnabled()
GL_TRANSFORM_FEEDBACK_BINDING transform feedback 操作 的物体绑定 0 glGetIntegerv()

颜色状态

表D-6控制颜色的状态变量
状态变量 描述 初始值 查询命令
GL_CLAMP_READ_COLOR 读取颜色裁剪 GL_FIXED_ONLY glGetIntegerv()
GL_PROVOKING_VERTEX Provoking顶点设置 GL_LAST_VERTEX_CONVENTION glGetIntegerv()

光栅化状态

表D-7控制光栅化的状态变量
状态变量 描述 初始值 查询命令
GL_RASTERIZER_DISCARD 光栅化(rasterization)之前的裁剪 图元状态 GL_FALSE glIsEnabled()
GL_POINT_SIZE 点的大小 1 glGetFloatv()
GL_POINT_FADE_THRESHOLD_SIZE alpha衰减阀值 1 glGetFloatv()
GL_POINT_SPRITE_COORD_ORIGIN 点块纹理的原点方向 GL_UPPER_LEFT glGetIntegerv()
GL_LrNE_WIDTH 线的宽度 1 glGetFloatv()
GL_LINE_SMOOTH 直线抗锯齿(antialiasing)的启用 状态 GL_FALSE gllsEnabledO
GL_CULL_FACE 多边形的剔除的启用状态 GL_FALSE glIsEnabled()
GL_CULL_FACE_MODE 多边形正面/背面剔除状态 GL_BACK glGetIntegerv()
GL_FRONT_FACE 多边形正面CW/CCW模型 GL_CCW glGetIntegerv()
GL_POLYGON_SMOOTH 多边形抗锯齿的启用状态 GL_FALSE gllsEnabledO
GL_POLYGON_MODE 多边形的光栅化模式(正面和背面) GL_FILL glGetIntegerv()
GL_POLYGON_OFFSET_FACTOR 多边形的偏移因子 0 glGetFloatv()
GL_POLYGON_OFFSET_UNITS Polygon offset units多边形的偏移 单元 0 glGetFloatv()
GL_POLYGON_OFFSET_POINT 对于多边形模式GL_POINT是否 启用了多边形偏移 GL_FALSE gllsEnabledO
GL_POLYGON_OFFSET_LINE 对于多边形模式GL_LINE是否启 用了多边形偏移 GL_FALSE gllsEnabledO
GL_POLYGON_OFFSET_FILL 对于多边形模式GL_FILL是否开 启了多边形偏移 GL_FALSE gllsEnabledO

多重采样

表D-8多重采样的状态变量
状态变量 描述 初始值 查询命令
GL_MULTISAMPLE 多重采样(multisample)光栅化 GL_TRUE glIsEnabled()
GL_SAMPLE_ALPHA_TO_COVERAGE 根据alpha值更改覆盖值 GL_FALSE glIsEnabled()
GL_SAMPLE_ALPHA_TO_ONE 将alpha设置为最大值 GL_FALSE glIsEnabled()
GL_SAMPLE_COVERAGE 根据掩码更改覆盖值 GL_FALSE glIsEnabled()
GL_SAMPLE_COVERAGE_VALUE 覆盖掩码值 1 glGetFloatv()
GL_SAMPLE_COVERAGE_INVERT 反转覆盖掩码值 GL_FALSE glGetBooleanv()
GL_SAMPLE_SHADING 着色(shading)采样(sample) 的开启状态 GL_FALSE glIsEnabled()
GL_MIN_SAMPLE_SHADING_VALUE 用于采样着色的fraction多重采样 0 glGetFloatv()
GL_SAMPLE_MASK 采样掩码的开启状态 GL_FALSE glIsEnabled()
GL_SAMPLE_MASK_VALUE 采样掩码位 所有可设置的位 glGetIntegeri_v()

纹理单元

表D-9纹理单元的状态变量
状态变量 描述 初始值 查询命令
GL_TEXTURE_xD 如果X维纹理(texturing)启用,其 值为True; X是1、2或者3 GL_FALSE glIsEnabled()
GL_TEXTURE_CUBE_MAP 如果启用了 cubemap (立方体映射) 贴图,其值为True GL_FALSE glIsEnabled()
GL_TEXTURE_BINDING_xD 绑定到GL_TEXTURE_xD的纹理对 象 0 glGetIntegerv()
GL_TEXTURE_BINDING_1D_ARRAY 绑定到 GL TEXTURE ID ARRAY 的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_2D_ARRAY 绑定到 GL_TEXTURE_2D ARRAY 的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 绑定到 GL_TEXTURE_CUBE_MAP_A的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_RECTANGLE 绑定到 GL TEXTURE RECTANGLE 的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_BUFFER 绑定到 GL_TEXTURE_BUFFER 的 纹理对象 0 glGet!ntegerv()
GL_TEXTURE_BINDING_CUBE_MAP 绑定到 GL TEXTU RE CUB E_MAP 的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_2D_MULTISAMPLE 绑定到 GL_TEXTURE_2D_MULTISA- MPLE的纹理对象 0 glGetIntegerv()
GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 绑定到 GL_TEXTURE_2D_MULTISA- MPLE_ARRAY的纹理对象 0 glGetIntegerv()
GL_SAMPLER_BINDING 绑定到活动纹理单元的采样对象 0 glGetlntegerv()
GL_TEXTURE_xD 在细节层次(level-of-detail) i 的 x 维纹理图像 glGetTexImage()
GL_TEXTURE_1D_ARRAY 位于行i的1维纹理数组图像 glGetTexImage()
GL_TEXTURE_2D_ARRAY 位于层i的2维纹理数组对象 glGetTexImage()
GL_TEXTURE_CUBE_MAP_ARRAY 在细节层次i的cubemap数组纹理 图像 glGetTexImage()
GL_TEXTURE_RECTANGLE 在细节层次0的矩形(rectangular) 纹理图像 glGetTexImage()
GL_TEXTURE_CUBE_MAP_POSITIVE_X cubemap纹理图像的细节层i的+x面 glGetTexImage()
GL_TEXTURE_CUBE_MAP_NEGATIVE_X cubem叩纹理图像的细节层i的-x面 glGetTexImage()
GL_TEXTURE_CUBE_MAP_POSITIVE_Y cubemap纹理图像的细节层i的+y面 glGetTexImage()
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y cubemap纹理图像的细节层i的-y面 glGetTexImage()
GL_TEXTURE_CUBE_MAP_POSITIVE_Z cubemap纹理图像的细节层i的+z面 glGetTexImage()
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z cubemap图像的细节层i的-z面 glGetTexImage()

纹理对象

表D-10纹理对象的状态变量
状态变量 描述 初始值 查询命令
GL_TEXTURE_SWIZZLE_R 混合的红色分量 GL_RED glGetTexParameter*()
GL_TEXTURE_SWIZZLE_G 混合的绿色分量 GL_GREEN glGetTexParameter*()
GL_TEXTURE_SWIZZLE_B 混合的蓝色分量 GL_BLUE glGetTexParameter*()
GL_TEXTURE_SWIZZLE_A 混合的Alpha分量 GL_ALPHA glGetTexParameter * ()
GL_TEXTURE_BORDER COLOR 边框颜色 (0.0, 0.0, 0.0, 0.0) glGetTexParameter*()
GL_TEXTURE_MIN_FILTER 缩小函数 GL_NEAREST_M1PMAP_LINEAR 或者 GL_LINEAR (矩 形纹理) glGetTexParameter*()
GL_TEXTURE_MAG_FILTER 放大函数 GL_LINEAR glGetTexParameter*。
GL_TEXTURE_WRAP_S 纹理坐标S环绕模式 GL REPEAT 或者 GL CLA- MP_TO_EDGE (矩形纹理) glGetTexParaineter*()
GL_TEXTURE_WRAP_T 纹理坐标t环绕模式(只 适用于2D、3D和cubemap 纹理) GL_REPEAT 或 者 GL_CLA- MP_TO_EDGE (矩形纹理) glGetTexParameter*()
GL_TEXTURE_WRAP_R 纹理坐标r环绕模式(只 有3D纹理) GL_REPEAT glGetTexParameter*()
GL_TEXTURE_MIN_LOD 最小细节层次 -1000 glGetTexParameterfv()
GL_TEXTURE_MAX_LOD 最大细节层次 1000 glGctTexParamcterfv()
GL_TEXTURE_BASE_LEVEL 基纹理数组层 0 glGetTexParameterfv()
GL_TEXTURE_MAX_LEVEL 最大纹理数组层 1000 glGetTexParameterfv()
GL_TEXTURE_LOD_B1AS 纹理细节层偏移 0 glGetTexParameterfv()
GL_DEPTH_STENCIL_TEXTURE_MODE 深度(depth)模板(stencil) 纹理模式 GL_DEPTH_COMPONENT glGetTexParameteriv()
GL_TEXTURE_COMPARE_MODE 纹理比较模式 GL_NONE glGetTexParameteriv()
GL_TEXTURE_COMPARE_FUNC 纹理比较函数 GLLEQUAL glGetTexParameteriv()
GL_TEXTURE_IMMUTABLE_FORMAT 固定的大小和格式 GL_FALSE glGetTexParameter*()
GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 对使用图像单元的纹理 兼容性规则 实现依赖于从GL_IMAGE_FORMAT_COMPATIBILITY_BY SIZE 或者 GL_IMAGE_FORMAT_COMPATIB1L【TY_BY CLASS中选择 glGetTexParameteriv()
GL_TEXTURE_IMMUTABLE_LEVELS 纹理存储层次数目 0 glGetTexParameter*()
GL_TEXTURE_VIEW_MIN_LEVEL 查看基础纹理层次 0 glGetTexParameter*()
GL_TEXTURE_VIEW_NUM_LEVEL 查看纹理层次数目 0 glGetTexParameter*()
GL_TEXTURE_VIEW_MIN_LAYER 查看最少纹理数组层次 0 glGetTexParameter*()
GL_TEXTURE_VIEW_NUM_LEVEL 查看纹理数组层次的数目 0 glGetTexParameter*()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

纹理图像

纹理 表D-11纹理图像的状态变量
状态变量 描述 初始值 查询命令
GL_TEXTURE_WIDTH 指定的宽度 0 glGetTexLevel Parameter* ()
GL_TEXTURE_HEIGHT 指定的高度(2D/3D) 0 glGetTexLevel Parameter* ()
GL_TEXTURE_DEPTH 指定的深度(3D) 0 glGetTexLevel Parameter*()
GL_TEXTURE_SAMPLES 每个纹理元素的采样数目 0 glGetTexLevel Parameter*()
GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 图像是否使用固定采样模式 GL_TRUE glGetTexLevel Parameter*。
GL_TEXTURE_INTERNAL_FORMAT 内部图像格式 GL_RGBA 或 GL_R8 glGetTexLevel Parameter* ()
GL_TEXTURE_x_SIZE 分量大小(X 是 GL RED, GL_GREEN , GL BLUE, GL ALPHA, GL DEPTH 或 者 GL STENCIL) 0 glGetTexLevel Parameter* ()
GL_TEXTURE_SHARED_SIZE 共享的指数字段解析度 0 glGetTexLevel Parameter*()
GL_TEXTURE_x_TYPE 分量类型(x 是 GL_RED、GL_GREEN . GL BLUE、GL ALPHA 或者 GL DEPTH) GL_NONE glGetTexLevel Parameter*()
GL_TEXTURE_COMPRESSED 如果图像有一个内部压缩(compressed) 格式就为真 GL_FALSE glGetTexLeve Parameter*()l
GL_TEXTURE_COMPRESSED_IMAGE_SIZE 压缩纹理的大小(单位为GLuBytes) 0 glGetTexLevel Parameter*()
GL_TEXTURE_BUFFER_DATA_STORE_BINDING 把缓存对象绑定到当前活动图像单元的 缓存纹理的数据存储 0 glGetTexLevel Parameter* ()
GL_TEXTURE_BUFFER_OFFSET 应用于当前图像单元的缓存纹理的缓存 数据偏移 0 glGetTexLevel Parameter*()
GL_TEXTURE_BUFFER_SIZE 应用于当前图像单元的缓存纹理的缓存 数据大小 0 glGetTexLevel Parameter*()

纹理采样对象

纹理 表D-12每个纹理采样对象的状态变量
状态变量 描述 初始值 查询命令
GL TEXTURE BORDER COLOR 纹理边框颜色 (0.0, 0.0, 0.0, 0.0) glGetSampler Parameter* ()
GL_TEXTURE_COMPARE_FUNC 纹理比较函数 GL_LEQUAL glGetSampler Parameteriv()
GL_TEXTURE_COMPARE_MODE 纹理比较模式 GL_NONE glGetSampler Parameteriv()
GL_TEXTURE_LOD_BIAS 纹理细节层次偏移 0 glGetSampler Parameterfv()
GL TEXTURE_MAX_LOD 最大细节层次 1000 glGetSampler Parameterfv()
GL_TEXTURE_MAG_FILTER 放大函数 GL_LINEAR glGetSampler Parameter* ()
GL_TEXTURE_MIN_FILTER 缩小函数 GL_NEAREST_MIPMAP_LINEAR 或 者 GL_LINEAR (矩形纹理) glGetSampler Parameter* ()
GL_TEXTURE_MIN_LOD 最小细节层次 -1000 glGetSampler Parameterfv()
GL_TEXTURE_WRAP_S 纹理坐标S环绕模式 GL_REPEAT 或 者 GL_CLAMP_TO_EDGE (矩形 纹理) glGetSampler Parameter*()
GL_TEXTURE_WRAP_T 纹理坐标t环绕模式(只 适 用 于 2D、3D、cubemap 纹理) GL_REPEAT 或者 GL_CLAMP_TO_EDGE (矩形 纹理) glGetSampler Parameter*()
GL_TEXTURE_WRAP_R 纹理坐标r环绕模式(只 适用于3D纹理) GL_REPEAT glGetSampler Parameter*()
GLLABEL 调试标签 空字符串 glGetObjectLabeI()

环境纹理

环境纹理 表D-13环境纹理和生成的状态变量
状态变量 描述 初始值 查询命令
GL_ACTIVE_TEXTURE 当前活动纹理单元 GL_TEXTUREO glGetIntegerv()

像素操作

像素操作 表D-14像素操作的状态变量
状态变量 描述 初始值 查询命令
GL_SCISSOR_TEST 裁剪的启用状态 GL_FALSE glIsEnabledi()
GL_SCISSOR_BOX 裁剪框 (0, 0, width, height) 其中width和height表示 OpenGL渲染窗口的大小 glGet!ntegeri_v()
GL_STENCIL_TEST 模板的启用状态 GL_FALSE glIsEnabledi()
GL_STENCIL_FUNC 前模板函数 GL_ALWAYS glGetIntegerv()
GL_STENCIL_VALUE_MASK 前模板掩码 2s - 1,其中的s表示 OpenGL设备实现所支持的 模板缓存的最深位数 glGetIntegerv()
GL_STENCIL_REF 前模板的参考值 0 glGetIntegerv()
GL_STENCIL_FAIL 前模板测试失败所采取的操作 GLJCEEP glGetIntegerv()
GL_STENCIL_PASS_DEPTH_FAIL 前模板深度缓存测试失败所 采取的动作 GL_KEEP glGetIntegerv()
GL_STENCIL_PASS_DEPTH_PASS 前模板深度缓存测试通过所 采取的动作 GL_KEEP glGetIntegerv()
GL_STENCIL_BACK_FUNC 后模板函数 GL_ALWAYS glGetlntegerv()
GL_STENCIL_BACK_VALUE_MASK 后模板掩码 2” - 1,其中的s表示 OpenGL设备实现所支持的 模板缓存的最深位数 glGetIntegerv()
GL_STENCIL_BACK_REF 后模板的参考值 0 glGetIntegerv()
GL_STENCIL_BACK_FAIL 后模板测试失败所采取的动作 GLJCEEP glGetIntegerv()
GL_STENCIL_BACK_PASS_DEPTH_FAIL 后模板深度缓存测试失败所 采取的动作 GLJCEEP glGetIntegerv()
GL_STENCIL_BACK_PASS_DEPTH_PASS 后模板深度缓存测试通过所 采取的动作 GL_KJEEP glGetIntegerv()
GL_DEPTH_TEST 深度测试的开启状态 GL_FALSE glIsEnabled()
GL_DEPTH_FUNC 深度缓存测试函数 GL_LESS glGetIntegerv()
GL_BLEND 对于绘制缓存(draw buffer) i 的混合开启状态 GL_FALSE gIIsEnabledi()
GL_BLEND_SRC_RGB 对于绘制缓存i的源RGB混合 函数 GL_ONE glGetlntegeri_v()
GL_BLEND_SRC_ALPHA 对于绘制缓存i的源alpha的 混合函数 GL_ONE glGetIntegeri_v()
GL_BLEND_DST_RGB 对于绘制缓存i的目标RGB的 混合函数 GL_ZERO glGetlntegeri_v()
GL_BLEND_DST_ALPHA 对于绘制缓存i的目标alpha 的混合函数 GL_ZERO glGetIntegeri_v()
GL_BLEND_EQUATION_RGB 对于绘制缓存i的RGB混合 方程 GL_FUNC_ADD glGetIntegeri_v()
GL_BLEND_EQUATION_ALPHA 对于绘制缓存i的alpha的混合 方程 GL_FUNC_ADD glGetIntegeri_v()
GL_BLEND_COLOR 常量混合颜色 (0.0, 0.0, 0.0, 0.0) glGetFloatv()
GL_FRAMEBUFFER_SRGB sRGB更新和混合开启状态 GL_FALSE glIsEnabled()
GL_DITHER 抖动(dithering)开启状态 GL_TRUE glIsEnabled()
GL_COLOR_LOGIC_OP 颜色逻辑操作开启状态 GL_FALSE glIsEnabled()
GL_LOGIC_OP_MODE 逻辑操作函数 GL_COPY glGetIntegerv()

帧缓存控制

帧缓存控制 表D-15控制帧缓存处理和值的状态变量
状态变量 描述 初始值 查询命令
GL_COLOR_WRITEMASK 把绘制缓存(R, G, B, A) 的颜色写入开启状态 (GL_TRUE,GL_TRUE, GL_TRUE,GL_TRUE) glGetBooleani_v()
GL_DEPTH_WRITEMASK 深度缓存的写入启用 GL_TRUE glGetBooleanv()
GL_STENCIL_WRITEMASK 前模板缓存的写入掩码 Is glGetIntegerv()
GL_STENCIL_BACK_WRITEMASK 后模板缓存的写入掩码 Is glGetIntegerv()
GL_COLOR_CLEAR_VALUE 颜色缓存的清除值 (0.0, 0.0, 0.0, 0.0) glGetFloatv()
GL_DEPTH_CLEAR_VALUE 深度缓存的清除值 1 glGetFloatv()
GL_STENCIL_CLEAR_VALUE 模板缓存的清除值 0 glGetIntegerv()

帧缓存状态

帧缓存状态 表D-16帧缓存对象的状态变量
状态变量 描述 初始值 查询命令
GL_DRAW_FRAMEBUFFER_BINDING 绑定到 GL_DRAW_FRAMEBUFFER 的帧 缓存(framebuffer)对象 0 , glGetIntegerv()
GL_READ_FRAMEBUFFER_BINDING 绑定 到 GL READ FRAMEBUFFER 的 帧 缓存对象 0 glGetIntegerv()
GL_DRAW_BUFFERi 为颜色输出i渲染 的绘制缓存 如果有后缓存就为GL_BACK,否则就是 GL_FRONT,除非这里没有默认帧缓存,那么 .就为 GL NONEo GL COLOR ATTACHMENTO • — — — 为帧缓存对象的颜色0,否则为GL—NONE glGetIntegerv()
GL_READ_BUFFER 读取源缓存 如果有后缓存就为GL_BACK,否则为GL_FRONT,除非这里没有默认的帧缓存,那么就 为 GL_NONE glGetIntegerv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 附加(attached)到帧缓存附加点的图 像类型 GL_NONE gIGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 附加到帧缓存附加点的对象名称 0 gIGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 如果附加的对象是纹理,附加的图像 为mipmap层 0 gIGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 如果附加的对象为cubemap纹理,则 附加的纹理图像为立方图表面 GL_NONE glGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 如果附加的对象为3D纹理,则附加的 纹理为图像的层 0 glGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_LAYERED 帧缓存附加是否为层 GL_FALSE glGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 附加的图像中的成分的编码 —— glGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_COMPONENTTYPE 附加的图像中的成分的数据类型 glGetFramebuffer Attachment Parameteriv()
GL_FRAMEBUFFER_ATTACHMENT_x_SIZE 附加的图像的X成分的位的大小;X是 GLRED, GL_GREEN、 GLBLUE. GL_ALPHA. GL_DEPTH,或者 GL STENCIL —— glGetFramebuffer Attachment Parameteriv()

绘制缓存状态

状态变量 描述 初始值 查询命令
GL_RENDERBUFFER_BINDING 绑定到GL_RENDERBUFFER的绘制缓存 (renderbuffer)对象 0 glGetIntegerv()
GL_RENDERBUFFER_WIDTH 绘制缓存的宽度 0 glGetRenderbufler Parameteriv()
GL_RENDERBUFFER_HEIGHT 绘制缓存的高度 0 gIGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_INTERNAL_FORMAT 绘制缓存的内部格式 GL_RGBA gIGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_RED_SIZE 绘制缓存图像的红色成分的位的大小 0 gIGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_GREEN_SIZE 绘制缓存图像的绿色成分的位的大小 0 gIGetRenderbuffer Parameteriv()
GL RENDERBUFFER BLUE SIZE 绘制缓存图像的蓝色成分的位的大小 0 glGetRenderbuffer Parameteriv()
GL_RENDERBUFFER ALPHA_SIZE 绘制缓存图像的alpha成分的位的大小 0 glGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_DEPTH_SIZE 绘制缓存图像的深度成分的位的大小 0 glGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_STENCIL_SIZE 绘制缓存图像的模板成分的位的大小 0 glGetRenderbuffer Parameteriv()
GL_RENDERBUFFER_SAMPLES 采样数目 0 glGetRenderbuffer Parameteriv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

像素状态

像素状态 表D-21控制像素传送的状态变量
状态变量 描述 初始值 查询命令
GL_UNPACK_SWAP_BYTES GL_UNPACK_SWAP_BYTES 的值 GL_FALSE glGetBooleanv()
GL_UNPACK_LSB_FIRST GL UNPACK LSB FIRST 的值 GL_FALSE glGetBooleanv()
GL_UNPACK_IMAGE_HEIGHT GL UNPACKJMAGE HEIGHT 的值 0 glGetIntegerv()
GL_UNPACK_SKJP_IMAGES GL UNPACK SKJP IMAGES 的值 0 glGetIntegerv()
GL_UNPACK_ROW_LENGTH GL UNPACK ROW LENGTH 的值 0 glGetIntegerv()
GL_LFNPACK_SKIP_ROWS GL UNPACK SKIP ROWS 的值 0 glGetIntegerv()
GL_UNPACK_SKJP_PIXELS GL_UNPACK_SKIP_PIXELS 的值 0 glGetIntegerv()
GL_UNPACK_ALIGNMENT GL UNPACK ALIGNMENT 的值 4 glGetIntegerv()
GL_UNPACK_COMPRESSED_BLOCK_WIDTH GL_UNPACK_COMPRESSED_BLOCK_WIDTH的值 0 glGetIntegerv()
GL_UNPACK_COMPRESSED_BLOCK_HEIGHT GL_UNPACK_COMPRESSED_BLOCK_HEIGHT的值 0 glGetIntegerv()
GL_UNPACK_COMPRESSED_BLOCK_DEPTH GL_UNPACK_COMPRESSED_BLOCK_DEPTH的值 0 glGetIntegerv()
GL_UNPACK_COMPRESSED_BLOCK_SIZE GL_UNPACK_COMPRESSED_BLOCK_SIZE的值 0 glGetIntegerv()
GL_PIXEL_UNPACK_BUFFER_BINDING 像素解包缓存绑定 0 glGetIntegerv()
GL_PACK_SWAP_BYTES GL_PACK_SWAP_BYTES 的值 GL_FALSE glGetBooleanv()
GL_PACK_LSB_FIRST GL PACK LSB FIRST 的值 GL_FALSE gIGetBooleanv()
GL_PACK_IMAGE_HEIGHT GL_PACK_IMAGE_H EIGHT 的值 0 glGetIntegerv()
GL_PACK_SKIP_IMAGES GL_PACK_SKIP_IMAGES 的值 0 glGetIntegerv()
GL_PACK_ROW_LENGTH GL_PACK_ROW_LENGTH 的值 0 glGetIntegerv()
GL_PACK_SKIP_ROWS GL_PACK_SKIP_ROWS 的值 0 glGetIntegerv()
GL_PACK_SKIP_PIXELS GL_PACK_SKIP_PIXELS 的值 0 glGetIntegerv()
GL_PACK_ALIGNMENT GL_PACK_ALIGNMENT 的值 4 glGetIntegerv()
GL_PACK_COMPRESSED_BLOCK_WIDTH GL_PACK_COMPRESSED_BLOCK_WIDTH的值 0 glGetIntegerv()
GL_PACK_COMPRESSED_BLOCK_HEIGHT GL_PACK_COMPRESSED_BLOCK_HEIGHT的值 0 glGetIntegerv()
GL_PACK_COMPRESSED_BLOCK_DEPTH GL_PACK_COMPRESSED_BLOCK_DEPTH的值 0 glGetIntegerv()
GL_PACK_COMPRESSED_BLOCK_SIZE GL_PACK_COMPRESSED_BLOCK_SIZE的值 0 gIGetIntegerv()
GL_PIXEL_PACK_BUFFER_BINDING 像素包装(pack)缓存绑定 0 glGetIntegerv()

着色器对象状态

着色器对象状态 表D-22着色器对象的状态变量
状态变量 描述 初始值 查询命令
GL_SHADER_TYPE 着色器类型(顶点、几何或者片元着色器) glGetShaderiv()
GL_DELETE_STATUS 带有删除标志的着色器 GL_FALSE glGetShaderiv()
GL_COMPILE_STATUS 最近的编译状态 GL_FALSE glGetShaderiv()
着色器对象的信息日志 空字符串 glGetShaderlnfbLogO
GL_INFO_LOG_LENGTH 信息日志的长度 0 glGetShaderiv()
着色器的源代码 空字符串 glGetShaderSource()
GL_SHADER_SOURCE_LENGTH 源代码的长度 0 glGetShaderiv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

着色器程序管道对象状态

着色器程序管道对象状态 表D-23程序管道对象的状态变量
状态变量 描述 初始值 查询命令
GL_ACTIVE_PROGRAM 绑定PPO时用Uniform*更新的程序 (program)对象 0 glGetProgram Pipelineiv()
GL_VERTEX_SHADER 当前顶点着色器(vertex shader)程序对 象的名称 0 glGetProgram Pipelineiv()
GL_GEOMETRY_SHADER 当前几何着色器(geometry shader)程序 对象的名称 0 glGetProgram Pipelineiv()
GL_FRAGMENT_SHADER 当前片元着色器(fragment shader)程序 对象的名称 0 glGetProgram Pipelineiv()
GL_TESS_CONTROL_SHADER 当前细分控制着色器(tessellation control shader)程序对象的名称 0 glGetProgram Pipelineiv()
GL_TESS_EVALUATION_SHADER 当前细分计算着色器(tesselation evaluation shader)对象 0 gIGetProgram Pipelineiv()
GL_VALIDATE_STATUS 程序管道对象的验证状态 GL_FALSE gIGetProgram Pipelineiv()
程序管道对象的信息日志 glGetProgramPipeline lnfoLog()
GL_INFO_LOG_LENGTH 信息日志的长度 0 gIGetProgram Pipelineiv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

着色器程序对象状态

着色器程序对象状态 表D-24着色器程序对象的状态变量
状态变量 描述 初始值 查询命令
GL_CURRENT_PROGRAM 当前程序对象名称 0 glGetIntegerv()
GL_PROGRAM_PIPELINE_BINDING 当前程序管道(pipeline)绑定的 对象 0 glGetIntegerv()
GL_PROGRAM_SEPARABLE 对于单独的管道阶段所能绑定的 程序对象容量 GL_FALSE glGetProgramiv()
GL_DELETE_STATUS 带有删除标志的程序对象 GL_FALSE glGetProgramiv()
GL_LINK_STATUS 最近尝试成功的链接 GL_FALSE glGetProgramiv()
GL_VALIDATE_STATUS 最近尝试成功的验证 GL_FALSE glGetProgramiv()
GL_ATTACHED_SHADERS 所连接的着色器对象数目 0 glGetProgramiv()
连接的着色器对象 glGetAttachedShaders()
程序对象的信息日志 glGetProgramlnfoLog()
GL_INFO_LOG_LENGTH 信息日志长度 0 glGetProgramiv()
GL_PROGRAM_BINARY_LENGTH 程序二进制的长度 0 glGetProgramiv()
GL_PROGRAM_BINARY_RETRIEVABLE_HINT 可回收的二进制(binary)提示开 启状态 GL_FALSE glGetProgramiv()
二进制表示的程序 glGetProgramBinary()
GL_COMPUTE_WORK_GROUP_SIZE 已经链接的计算机程序的局部工 作组大小 0,… glGetProgramiv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()
GL_ACTIVE_UNIFORMS 活动的uniform变量的数目 0 glGetProgramiv()
活动的uniform变量的位置 gIGetUniformLocation()
活动的uniform变量大小 glGetActiveUniform()
活动的uniform变量类型 glGetActiveUniform()
活动的uniform变量名称 空字符串 glGetActiveUniform()
GL_ACTIVE_UNIFORM_MAX_LENGTH 活动的uniform变量名称的最大 长度 0 glGetProgramiv()
uniform变量值 0 glGetUniform()
GL_ACTIVE_ATTRIBUTES 活动的属性变量(attributes)数目 0 glGetProgramiv()
活动通用的属性变量位置 glGetAttribLocation()
活动属性变量大小 glGetActiveAttrib()
活动的属性变量类型 glGetActiveAttrib()
活动的属性变量名称 空字符串 glGetActiveAttrib()
GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 活动的属性变量名称的最大长度 0 glGetProgramiv()
GL_GEOMETRY_VERTICES_OUT 输出变量(output vertices)的最 大数目 0 glGetProgramiv()
GL_GEOMETRY_INPUT_TYPE 图元输入类型 GL_TRIANGLES glGetProgramiv()
GL_GEOMETRY_OUTPUT_TYPE 图元输出类型 GL_TRIANGLE_STRIP glGetProgramiv()
GL_GEOMETRY_SHADER_INVOCATIONS 一个几何着色器对于每个输入图 元执行的次数 1 glGetProgramiv()
GL_TRANSFORM_FEEDBACK_BUFFER_MODE 程序的 Transform feedback 模式 GL_INTERLEAVED_ATTRIBS glGetProgramiv()
GL_TRANSFORM_FEEDBACK_VARYINGS 流(stream)向缓存对象的输出 个数 0 glGetProgramiv()
GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH transform feedback输出变量名字 的最大长度 0 glGetProgramiv()
每个transform feedback输出变量 的大小 glGetTransformFeedbackVarying()
每个transform feedback输出变量 的类型 glGetTransformFeedback Varying()
每个transform feedback输出变量 的名称 glGetTransformFeedback Varying()
GL_UNIFORM_BUFFER_BINDING 绑定到的环境(context)操控的 一致(uniform)缓存对象 0 glGetIntegerv()
GL_UNIFORM_BUFFER_BINDING 绑定到指定的环境绑定点的统一 缓存对象 0 glGetlntegeri_v()
GL_UNIFORM_BUFFER_START 绑定到一致缓存开始的区域 0 glGetInteger64i_v()
GL_UNIFORM_BUFFER_SIZE 绑定到一致缓存的区域大小 0 glGetInteger64i_v()
GL_ACTIVE_UNIFORM_BLOCKS 在一个程序中活动uniform变量 块的数目 0 glGetProgramiv()
GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 活动的uniform变量块名称的最 长长度 0 glGetProgramiv()
GL_UNIFORM_TYPE 活动的uniform变量的类型 glGetActiveUniformsiv()
GL_UNIFORM_SIZE 活动的uniform变量大小 glGetActiveUniformsiv()
GL_UNIFORM_NAME_LENGTH uniform变量名称长度 glGetActiveUnifdrmsiv()
GL_UNIFORM_BLOCK_INDEX uniform变量块索引 glGetActiveUniformsiv()
GL_UNIFORM_OFFSET uniform变量缓存偏移 glGetActiveUniformsiv()
GL_UNIFORM_ARRAY_STRIDE uniform变量缓存数组带 glGetActiveUniformsiv()
GL_UN1FORM_MATRIX_STRIDE uniform变量缓存内部矩阵带 glGetActiveUniformsiv()
GL_UNIFORM_IS_ROW_MAJOR uniform变量是否是一个行主序 矩阵 glGetActivellniformsivO
GL_UNIFORM_BLOCK_BINDING 与特定uniform块相关的属性变 量缓存绑定点 0 glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_DATA_SIZE 保持这个uniform块数据大小所 需的存储空间 glGetActiveUniformBIockiv()
GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 在特定uniform块的活动uniform 变量个数 glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_ACTIVE_UNIFORMINDICES 与特定uniform块相关的活动 uniform变量索引数组 glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFER- ENCED_BY_VERTEX_SHADER 如果在顶点阶段所要用的 uniform块是活动的,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 如果在细分控制阶段所引用的 uniform块是活动的,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUTION_SHADER 如果在细分计算阶段所引用的 uniform块是活动的,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 如果在几何阶段所引用的uniform 块是活动的,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 如果在片段阶段所引用的uniform 块是活动的,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 如果在计算阶段所引用的 uniform块是活动,则为True GL_FALSE glGetActiveUniformBlockiv()
GL_TESS_CONTROL_OUTPUT_VERTICES 细分控制着色器输出patch大小 0 glGetProgramiv()
GL_TESS_GEN_MODE 曲面细分图元生成的基本图元 类型 GL_QUADS glGetProgramiv()
GL_TESS_GEN_SPACING 曲面细分图元生成的边缘细分 空间 GL_EQUAL glGetProgramiv()
GL_TESS_GEN_VERTEX_ORDER 由曲面细分图元生成的在图元生 成时的顶点顺序 GL_CCW glGetProgramiv()
GL_TESS_GEN_POINT_MODE 曲面细分图元生成发出图元或者 顶点 GL_FALSE glGetProgramiv()
GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 在着色器中模块中uniform位置 的数目 0 glGetProgramStageiv()
GL_ACTIVE_SUBROUTINE_UNIFORMS 在着色器中模块uniform的个数 0 glGetProgramStageiv()
GL_ACTIVE_SUBROUTINES 在着色器中模块函数的数目 0 glGetProgramStageiv()
GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 模块uniform名称的最大长度 0 glGetProgramStageiv()
GL_ACTIVE_SUBROUTINE_MAX_LENGTH 模块名称的最大长度 0 glGetProgramStageiv()
GL_NUM_COMPATIBLE_SUBROUTINES 与模块uniform相兼容的模块 个数 glGetActiveSub routineUniformivO
GL_COMPATIBLE_SUBROUTINES 与模块uniform相兼容的模块 列表 glGetActiveSub routineUnifdrmiv()
GL_UNIFORM_SIZE 在模块uniform数组中元素的 个数 glGetActiveSub routineUniformiv()
GL_UNIFORM_NAME_LENGTH 模块uniform名称的长度 glGetActiveSub routineUniformivO
模块uniform名称字符串 gIGetActiveSubroutine UniformName()
模块名称长度 gIGetActiveSubroutine Name()
模块名称字符串 gIGetActiveSubroutine Name()
GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 用于程序中的活动原子计数器缓 存的个数 0 glGetProgramiv()
GL_ATOMIC_COUNTER_BUFFERBINDING 与活动原子计数器(atomic-counter) 缓存相关联的绑定点 glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 一个活动原子计数器缓存需要的 最小长度 glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 在一个活动原子计数器缓存中活 动的原子计数器个数 glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 在一个活动原子计数器缓存中活 动的原子计数器的列表 glGetActiveAtomic CounterBufteriv()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 用于在顶点着色器中活动的原子 计数器有一个计数器(counter) GL_FALSE glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 用于在细分控制着色器中活动的 原子计数器有一个计数器 GL_FALSE glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUTION_SHADER 用于在细分计算着色器中活动的 原子计数器的一个计数器 GL_FALSE glGetActiveAtomic CounterBufferi v()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 用于在几何着色器中活动的原子 计数器的一个计数器 GL_FALSE glGetActiveAtomic CounterBufiferiv()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENTSHADER 用于在片元着色器中活动的原子 计数器的一个计数器 GL_FALSE glGetActiveAtomic CounterBufferiv()
GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 用于在计算着色器中活动的原子 计数器的一个计数器 GL_FALSE glGetActiveAtomic CounterBufferiv()
GL_UNIFORM_ATOMIC_COUNTER_BUFFER INDEX 和一个活动的uniform变量相关 联的活动原子计数器缓存 glGetActiveUniformsiv()

程序接口状态

程序接口状态 表D-25程序接口的状态变量
状态变量 描述 初始值 查询命令
GL_ACTIVE_RESOURCES 在一个程序接口中活动资源数目 0 glGetProgram Interfaceiv()
GL_MAX_NAME_LENGTH 活动资源中名称的最大长度 0 glGetProgram Interfaceiv()
GL_MAX_NUM_ACTIVE_VARIABLES —个活动资源中活动变量的最大 数目 0 glGetProgram Interfaceiv()
GL_MAX_NUM_COMPATIBLE_SUBROUTINES 模块uniforms中兼容的模块最多 数目 0 glGetProgram Interfaceiv()

程序对象资源状态

程序对象资源状态 表D-26程序对象资源的状态变量
状态变量 描述 初始值 查询命令
GL_NAME_LENGTH 活动资源名称的长度 glGetProgram Resourceiv()
GL_TYPE 活动资源的类型 —— glGetProgram Resourceiv()
GL_ARRAY_SIZE 活动资源数组大小 gIGetProgram Resourceiv()
GL_OFFSET 在内存中活动资源的偏移 gIGetProgram Resourceiv()
GL_BLOCK_INDEX 拥有资源的接口块的索引 gIGetProgram Resourceiv()
GL_ARRAY_STRIDE 在内存中活动资源数组的跨距 gIGetProgram Resourceiv()
GL_MATRIX_STRIDE 在内存中活动资源矩阵的跨距 gIGetProgram Resourceiv()
GLJS_ROW_MAJOR 活动资源存储一个行序为主的矩阵 gIGetProgram Resourceiv()
GL_ATOMIC_COUNTER_BIJFFER_INDEX 拥有资源的原子计数器缓存的索引 gIGetProgram Resourceiv()
GL_BUFFER_BINDING 与当前资源绑定的缓存 gIGetProgram Resourceiv()
GL_BUFFER_DATA_SIZE 资源要求的最小缓存数据大小 gIGetProgram Resourceiv()
GL_NUM_ACTIVE_VARIABLES 活动资源拥有的活动变量(active variables)数目 gIGetProgram Resource! v()
GL_ACTIVE_VARI ABLES 活动资源拥有的活动变量列表 gIGetProgram Resourceiv()
GL_REFERENCED_BY_VERTEX_SHADER 在顶点着色器中使用的活动资源 gIGetProgram Resourceiv()
GL_REFERENCED_BY_TESS_CONTROL_SHADER 在细分控制着色器中使用的活动 资源 gIGetProgram Resourceiv()
GL_REFERENCED BY_TESS_EVALUAnON SHADER 在细分计算控制器中使用的活动 资源 gIGetProgram Resourceiv()
GLREFERENCEDBYGEOMETRY SHADER 在几何着色器中使用的活动资源 gIGetProgram Resourceiv()
GL_REFERENCED_BY_FRAGMENT_SHADER 在片元着色器中使用的活动资源 gIGetProgram Resourceiv()
GL_REFERENCED_BY_COMPUTE_SHADER 在计算着色器中使用的活动资源 gIGetProgram Resourceiv()
GL_TOP_LEVEL_ARRAY_SIZE 共享的存储块成员的顶层数组大小 gIGetProgram Resourceiv()
GL_TOP_LEVEL_ARRAY_STRIDE 共享的存储块成员的顶层数组跨距 gIGetProgram Resourceiv()
GL_LOCATION 活动资源中分配的位置 gIGetProgram Resourceiv()
GL_LOCATION_INDEX 活动资源中分配的位置索引 gIGetProgram Resourceiv()
GL_IS_PER_PATCH 每个patch属性中活动的输入或者 输出 gIGetProgramResourceiv()
GL_NUM_COMPATIBLE_SUBROUTINES 对活动的模块uniform变量兼容的 模块数目 gIGetProgramResourceiv()
GL_COMPATIBLE_SUBROUTINES 活动的模块uniform变量兼容的模 块列表 gIGetProgramResourceiv()

顶点、几何着色器状态

顶点和几何着色器状态 表D-27顶点和几何着色器的状态变量
状态变量 描述 初始值 查询命令
GL_CURRENT_VERTEX_ATTRIB 当前同样的顶点属性值 0.0,0.0,0.0,1.0 glGetVertexAttribfv()
GL_PROGRAM_POINT_SIZE 点大小模式 GL_FALSE glIsEnabled()

查询对象状态

查询对象状态 表D-28查询对象的状态变量
状态变量 描述 初始值 查询命令
GLQUERYRESULT 查询对象结果 0 or GL_FALSE glGetQueryObjectuiv()
GL_QUERY_RESULT_AVAILABLE 查询对象结果是否有效 GL_FALSE glGetQueryObjectiv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

图像状态

图像状态 表D-29每个图像单元的状态变量
状态变量 描述 初始值 查询命令
GL_IMAGE_BINDING_NAME 绑定纹理对象的名称 0 glGetIntegeri_v()
GL_IMAGE_BINDING_LEVEL 绑定纹理对象的级数(level) 0 glGetIntegeri_v()
GL_IMAGE_BINDING_LAYERED 纹理对象是否绑定多个层次(layers) GL_FALSE glGetBooleani_v()
GL_IMAGE_BINDING_LAYER 如果没有分层,纹理绑定的层 0 glGetIntegeri_v()
GL_IMAGE_BINDING_ACCESS 绑定纹理的读取或者写入处理 GL_READ_ONLY glGetIntegeri_v()
GL_IMAGE_BINDING_FORMAT 用于处理绑定纹理的格式 GL_R8 glGetIntegeri_v()

transform feedback状态

transform feedback 状态 表D・30 transform feedback的状态变量
状态变量 描述 初始值 查询命令
GL_TRANSFORM_FEEDBACK_BUFFER_B1NDING 绑定到transform feedback的通用绑定 点的缓存对象 0 glGetIntegerv()
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 绑定到每个transform feedback属性流 的缓存对象 0 glGetlntegeri_v()
GL_TRANSFORM_FEEDBACK_BUFFER_START 针对每个transform feedback属性流的 绑定范围的起始偏移量 0 glGetInteger64i_v()
GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 针对每个transform feedback属性流的 绑定范围的大小 0 glGetInteger64i_v()
GL_TRANSFORM_FEEDBACK_PAUSED 在这个物体上的transform feedback是 否停止 GL FALSE glGetBooleanv()
GL_TRANSFORM_FEEDBACK_ACTIVE 在这个物体上的transform feedback是 否活动 GL_FALSE glGetBooleanv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

原子计数器状态

原子计数器状态 表D-31原子计数器的状态变量
状态变量 描述 初始值 查询命令
GL_ATOMIC_COUNTER_BUFFER_BINDING 通用的原子计数器缓存绑定的 当前值 0 glGetIntegerv()
GL_ATOMIC_COUNTER_BUFFER BINDING 绑定到每个原子计数器缓存绑 定点的缓存对象 0 glGetIntegeri_v()
GL_ATOMIC_COUNTER_BUFFER START 绑定每个原子计数器缓存范围 的起始偏移 0 glGetInteger64i_v()
GL_ATOMIC_COUNTER_BUFFER_SIZE 对于每个原子计数器缓存绑定 范围的大小 0 glGetInteger64i_v()

着色器存储缓存状态

着色器存储缓存状态 表D-32着色器存储缓存的状态变量
状态变量 描述 初始值 查询功能
GL_SHADER_STORAGE_BUFFER_BINDING 通用的着色器存储缓存绑定的 当前值 0 glGetIntegerv()
GL_SHADER_STORAGE_BUFFER_BINDING 绑定到每个着色器存储缓存绑 定点的绑定缓存 0 glGetIntegeri_v()
GL_SHADER_STORAGE_BUFFER_START 对于每个着色器存储缓存绑定 范围的起始位置偏移 0 glGetlnteger64i_v()
GL_SHADER_STORAGE_BUFFER SIZE 对于每个着色溶存储缓存绑定 范围的大小 0 glGetlnteger64i_v()

同步状态变量

同步状态变量 表D-33同步对象的状态变量
状态变量 描述 初始值 查询命令
GL_OBJECT_TYPE 同步(sync)对象的类型 GL SYNC_FENCE glGetSynciv()
GL_SYNC_STATUS 同步对象的状态 GLUNSIGNALED glGetSynciv()
GL_SYNC_CONDITION 同步对象的条件 GL_SYNC_GPU_COMMANDS_COMPLETE glGetSynciv()
GL_SYNC_FLAGS 同步对象的标志 0 glGetSynciv()
GL_LABEL 调试标签 空字符串 glGetObjectLabel()

提示

提示 表D・34提示
状态变量 描述 初始值 查询命令
GL_LINE_SMOOTH_HINT 直线平滑(smooth)提示 GL_DONT_CARE gIGetIntegerv()
GL_POLYGON_SMOOTH_HINT 多边形平滑提示 GL_DONT_CARE glGet!ntegerv()
GL_TEXTURE_COMPRESSION_HINT 纹理压缩质量提示 GL_DONT_CARE glGetIntegerv()
GL_FRAGMENT_SHADER_DERIVATIVE_HINT 片元着色器派生准确性提示 GL_DONT_CARE glGetIntegerv()

计算调度状态

计算调度状态 表D-35计算着色器调度的状态变量
状态变量 描述 初始值 查询命令
GL_DISPATCHJNDIRECT_BUFFER_BINDING 缓存绑定的间接调度 0 glGet!ntegerv()

设备实现相关

设备实现相关的值 表D-36设备实现相关的状态变量
状态变量 描述 初始值 查询命令
GL_MAX_CLIP_DISTANCES 用户定义的裁剪平面的最多数量 8 glGetIntegerv()
GL_SUBPIXEL_BITS 在屏幕Xw和力子像素精度位的 数量 4 glGetIntegerv()
GL_IMPLEMENTATION_COLOR_READ_TYPE 实现首选的像素类型 GL_UNSIGNED_BYTE glGetIntegerv()
GL_IMPLEMENTATION_COLOR_READ_FORMAT 实现首选的像素格式 GL_RGBA gIGetIntegerv()
GL_MAX_3D_TEXTURE_SIZE 3D纹理图像的最大维度 2048 glGetIntegerv()
GL_MAX_TEXTURE_SIZE 2D/1D纹理图像的最大维度 16384 glGetIntegerv()
GL_MAX_ARRAY_TEXTURE_LAYERS 纹理数组的最大层数 2048 glGetIntegerv()
GL_MAX_TEXTURE_LOD_BIAS 纹理细节层的偏移量的最大绝对值 2 glGetFloatv()
GL_MAX_CUBE_MAP_TEXTURE_SIZE cubemap纹理图像的最大维度 16384 glGetIntegerv()
GL_MAX_RENDERBUFFER_SIZE 渲染缓存的最大宽度和高度 16384 glGetIntegerv()
GL_MAX_VIEWPORT_DIMS 视口 (viewport)的最大值 实现腿日大值 glGetFloatv()
GL_MAX_VIEWPORTS 活动视口的最大数量 16 glGet!ntegerv()
GL_VIEWPORT_SUBPIXEL_BITS 视口包围的子像素精度位的数量 0 glGetIntegerv()
GL_VIEWPORT_BOUNDS_RANGE 视口包围范围【最小,最大](至 少[-32768, 32767]) 依赖于实现 glGetFloatv()
GL_LAYER_PROVOK1NG_VERTEX 在gl Layer后面的顶点约定 依赖于实现 glGet!ntegerv()
GL_VIEWPORT_INDEX_PROVOKING_VERTEX 在gl_ViewportIndex之后的顶点 约定 依赖于实现 glGetIntegerv()
GL_POINT_SIZE_RANGE 点精灵(point sprite)大小范围(从 小到大) 1,1 glGetFloatv()
GL_POINT_SIZE_GRANULARJTY 点精灵大小粒度 glGetFloatv()
GL_ALIASED_LINE_WIDTH_RANGE 锯齿(aliased)线宽度范围(从小 到大) 1,1 glGetFloatv()
GL_SMOOTH_LINE_WIDTH_RANGE 抗锯齿(antialiased)线宽度的范 围(从小到大) 1,1 glGetFloatv()
GL_SMOOTH_LINE_WIDTH_GRANULARITY 抗锯齿线宽度的粒度 glGetFloatv()
GL_MAX_ELEMENTS_INDICES 由 glDrawRangeElements()建议的 最大索引数 glGetIntegerv()
GL_MAX_ELEMENTS_VERTICES 由 glDrawRangeElements()建议的 最大顶点数 glGetIntegerv()
GLCOMPRESSEDTEXTUREFORMATS 列举的压缩纹理格式 glGetIntegerv()
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 添加到顶点缓存绑定偏移的最大 偏移值 2047 glGetIntegerv()
GL_MAX_VERTEX_ATTRIB_BINDINGS 顶点缓存的最大数目 16 glGetIntegerv()
GL_NUM_COMPRESSED_TEXTURE_FORMATS 压缩纹理格式的数目 0 glGet!ntegerv()
GL_MAX_TEXTURE_BUFFER_SIZE 用于缓存纹理的可寻址的纹理单 元的数目 65536 glGetIntegerv()
GL_MAX_RECTANGLE_TEXTURE_SIZE 矩形纹理的最大宽度和高度 16384 glGetIntegerv()
GL_PROGRAM_BINARY_FORMATS 列举程序二进制(binary)格式 N/A glGetIntegerv()
GL_NUM_PROGRAM_BINARY FORMATS 程序二进制格式的数目 0 glGetIntegerv()
GL_SHADER_BINARY_FORMATS 列举着色器二进制格式 glGet!ntegerv()
GL_NUM_SHADER_BINARY_FORMATS 着色器二进制格式的数目 0 glGet!ntegerv()
GL_SHADER_COMPILER 着色器编译是否支持 glGetBooleanv()
GL_MIN_MAP_BUFFER_ALIGNMENT 由glMapBuffer()返回的指针的最 小字节对齐 64 glGetIntegerv()
GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 对纹理缓存偏移的最小要求对齐 1 glGetIntegerv()
GLMAJ0RVERS10N 支持的主版本号 glGetIntegerv()
GL_MINOR_VERS1ON 支持的次版本号 glGetIntegerv()
GL_CONTEXT_FLAGS 完全或向前兼容环境标志 glGetIntegerv()
GLEXTENSIONS 支持的扩展名字 glGetStringi()
GL_NUM_EXTENSIONS 支持扩展名字的数目 glGetIntegerv()
GL_SHADING_LANGUAGE_VERSION 支持的最新的着色语言版本 gIGetString()
GL_SHADING_LANGUAGE_VERSION 支持的着色语言版本 glGetStringi()
GL_NUM_SHADING_LANGUAGE_VERSIONS 着色语言支持的数目 3 glGetIntegerv()
GL_VENDOR 厂商字符串 glGetString()
GL_VERSION OpenGL支持的版本 glGetStringO
GL_MAX_VERTEX_ATTRIBS 活动的顶点属性数目 16 glGetIntegerv()
GL_MAX_VERTEX_UNIFORMjCOMPONENTS 顶点着色器uniform变量分量的 数目 1024 glGetIntegerv()
GL_MAX_VERTEX_UNIFORM_VECTORS 顶点着色器uniform变量的向量 数目 256 glGetIntegerv()
GL_MAX_VERTEX_UNIFORM BLOCKS 每个程序中顶点uniform变量缓存 的最大数目 14 glGetIntegerv()
GL_MAX_VERTEX_OUTPUT_COMPONENTS 在顶点着色器中输出写入分量的 最大数目 64 glGetIntegerv()
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 在顶点着色器中纹理图像单元处 理的数目 16 glGetIntegerv()
GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 由顶点着色器处理的原子计数器 缓存的数目 0 glGet!ntegerv()
GL_MAX_VERTEX_ATOMIC_COUNTERS 由顶点着色器中处理的原子计数 器数目 0 glGetIntegerv()
GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 由顶点着色器处理的着色存储处 理块的数目 0 glGetIntegerv()

细分着色器实现相关值的限制

细分着色器实现的相关值限制 表D-37细分着色器实现相关值的状态变量
状态变量 描述 初始值 查询命令
GL_MAX_TESS_GEN_LEVEL 由细分图元(primitive)支持生成的最大 层次 64 glGetIntegerv()
GL_MAX_PATCH_VERTICES 最大patch大小 32 glGet!ntegerv()
GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 细分控制着色器uniform变量值的双子 节数目(细分着色器) 1024 glGetIntegerv()
GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 细分控制着色器中纹理图像单元的数目 16 glGetintegerv()
GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 细分控制着色器逐顶点输出的分量 (components)数目 128 glGetIntegerv()
GL_MAX_TESS_PATCH_COMPONENTS 细分控制着色器的逐patch输出的分量 数目 120 glGetIntegerv()
GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 细分控制着色器的逐patch输出的分量 数目 4096 glGetIntegerv()
GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 细分控制着色器逐输入顶点的分量数目 128 glGetIntegerv()
GL_MAX_TESS_8NTROL_UNIFORM_BLOCKS 在细分控制着色器中支持的uniform变 量块的数目 14 glGetIntegerv()
GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 在细分控制着色器中处理的原子计数器 缓存数目 0 glGetlntegerv()
GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 在细分控制着色器中处理的原子计数器 数目 0 glGetIntegerv()
GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 在细分控制着色器中支持的着色存储块 的数目 0 glGetIntegerv()
GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 细分计算着色器(细分计算着色器) uniform变量的双子节数目 1024 glGetIntegerv()
GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 细分计算着色器的纹理图像单元数目 16 glGetIntegerv()
GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 在细分计算着色器中逐顶点输出的分量 数目 128 glGet!ntegerv()
GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 细分计算着色器中逐顶点输入的分量数目 128 glGetIntegerv()
GL_MAX_TESS_EVALUATION_UNIFORMBLOCKS 在细分计算着色器中支持的uniform变 量块的数目 12 glGetIntegerv()
GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERBUFFERS 在细分计算着色器中处理的原子计数器 缓存的数目 0 glGetIntegerv()
GL_MAX_TESS_EVALUATION_ATOMIC. COUNTERS 在细分计算着色器中处理的原子计数器 数目 0 glGetIntegerv()
GL_MAX_TESS_EVALUATION_SHADER_STOAGEBLOCKS 在细分计算着色器中处理的着色存储块 数目 0 glGetIntegerv()

几何着色器实现相关值的限制

几何着色器实现相关值的限制
状态变量 描述 初始值 查询命令
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 几何着色器uniform变最的分量数目 512 glGetIntegerv()
GL_MAX_GEOMETRY_UNIFORM_BLOCKS 每个程序的几何uniform变量缓存 的最大数目 14 glGet!ntegerv()
GL_MAX_GEOMETRY_INPUT_COMPONENTS 由几何着色器读取输入分量的最大 数目 64 glGet!ntegerv()
GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 由几何着色器写入输出分量的最大 数目 128 glGetlntegerv()
GL_MAX_GEOMETRY_OUTPUT_VERTICES 任何几何着色器可以发送的最大顶 点数目 256 glGetIntegerv()
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 一个几何着色器可以发送的活动输 出总分量的最大数目(所有顶点) 1024 glGetIntegerv()
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 由几何着色器处理的纹理图像单元 数目 16 glGetIntegerv()
GL_MAX_GEOMETRY_SHADER_INVOCATIONS 几何着色器支持的调用计数的最大 数目 -32 glGetIntegerv()
GL_MAX_VERTEX_STREAMS 顶点流(streams)的总数目 4 glGetIntegerv()
GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 由几何着色器处理的原子计数器缓 存的数目 0 glGetIntegerv()
GL_MAX_GEOMETRY_ATOMIC_COUNTERS 由几何着色器处理的原子计数器 数目 0 glGetIntegerv()
GL_MAX_GEOMETRY_SHADER_STOAGE_BLOCKS 由几何着色器处理的着色存储块的 数目 0 glGetIntegerv()

片段着色器实现相关值的限制

片元着色器实现相关值的限制 表D-39片段着色器实现相关值的状态变量
状态变量 描述 初始值 查询命令
GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 片元着色器uniform变量的分量 数目 1024 glGetIntegerv()
GL_MAX_FRAGMENT_UNIFORM_VECTORS 片元着色器uniform变量的向量 数目 256 glGetIntegerv()
GL_MAX_FRAGMENT_UNIFORM_BLOCKS 每个程序的片段uniform变量缓存 的最大数目 14 glGetIntegerv()
GL_MAX_FRAGMENT_INPUT_COMPONENTS 每个片元着色器读取输入的最大 分量数目 128 glGetIntegerv()
GL_MAX_TEXTUREJMAGE_UNITS 每个片元着色器处理的纹理图像 单元数目 16 glGetIntegerv()
GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET textureGather最小纹理偏移 -8 glGetIntegerv()
GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET textureGather最大纹理偏移 7 glGetIntegerv()
GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 由片元着色器处理的原子计数器 缓存的数目 1 glGetIntegerv()
GL_MAX_FRAGMENT_ATOMIC_COUNTERS 由片元着色器处理的原子计数器 的数目 8 glGetIntegerv()
GL_MAX_FRAGMENT_SHADER_STOAGE_BLOCKS 由片元着色器处理的着色存储块 的数目 8 glGetIntegerv()

计算着色器实现相关值的限制

计算着色器实现相关值的限制 表D-40计算着色器实现相关值限制的状态变量
状态变量 描述 初始值 查询命令
GL_MAX_COMPITTE_WORK_GROUP_COUNT 被单一调度命令(每1维)可 能调度的工作组最大数目 65535 glGetIntegeri_v()
GL_MAX_COMPUTE_WORK_GROUP_SIZE 一个计算工作组(每1维)的 最大局部大小 1024 (x, y), 64 ⑵ glGetIntegeri_v()
GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 在单一局部工作组中最大宗的 着色器调用 1024 glGetlntegerv()
GL_MAX_COMPUTE_UNIFORM_BLOCKS 每个计算着色器最大uniform块 14 glGetIntegerv()
GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 被计算着色器处理的最大纹理 图像单元数目 16 glGetIntegerv()
GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 被计算着色器处理的原子计数 器缓存数目 8 glGetIntegerv()
GL_MAX_COMPUTE_ATOMIC_COUNTERS 被计算着色器处理的原子计数 器数目 8 glGetIntegerv()
GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 所有计算着色器链接到单一程 序对象的所有声明变量的总的存 储最大大小 32768 glGetIntegerv()
GL_MAX_COMPUTE_UNIFORM_COMPONENTS 计算着色器uniform变量的分 量数目 512 glGetIntegerv()
GL_MAX_COMPUTE_IMAGE_UNIFORMS 计算着色器的图像变量数目 8 glGetIntegerv()
GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 所有uniform块包括默认的计 算着色器uniform变量的双子节 数目 —— glGetIntegerv()
GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 被计算着色器处理的着色存储 块的数目 8 glGetIntegerv()

着色器实现相关值的限制

着色器实现相关值的限制 表D-41着色器实现相关值限制的状态变量
状态变量 描述 初始值 查询命令
GL_MIN_PROGRAM_TEXEL_OFFSET 允许查找的最小纹理单元偏移 -8 glGetIntegerv()
GL_MAX_PROGRAM_TEXEL_OFFSET 允许查找的最大纹理单元偏移 7 glGetlntegerv()
GL_MAX_UNIFORM_BUFFER_BINDINGS 在环境中uniform变量缓存绑定点 (buffer binding points)的最大数目 72 glGetIrrtegerv()
GL_MAX_UNIFORM_BLOCK_SIZE 在基础机器上uniform变量块单元 的最大大小 16384 glGetIntegerv()
GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT uniform变量缓存大小和偏移所需 的最小对齐 1 glGetlntegerv()
GL_MAX_COMBINED_UNIFORM_BLOCKS 每个程序组合uniform变量缓存的 最大数目 70 glGetIntegerv()
GL_MAX_VARYING_COMPONENTS 输出变量的成分数目 60 glGetIntegerv()
GL_MAX_VARYING_VECTORS 输出变量的向量数目 15 glGetIntegerv()
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 在GL中处理的纹理单元总的数目 96 glGetlntegerv()
GL_MAX_SUBROUTINES 每个着色器阶段模块的最大数目 256 glGetIntegerv()
GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 每个阶段模块uniform变量位置的 最大数目 1024 glGetIntegerv()
GL_MAX_UNIFORM_LOCATIONS 用户可分配的uniform变量位置的 最大数目 1024 glGetIntegerv()
GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 原子计数器缓存绑定的最大数目 1 glGetIntegerv()
GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 在基本机器上一个原子计数器缓存 单元的最大大小 32 glGetIntegerv()
GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 每个程序原子计数器缓存的最大 数目 1 glGetlntegerv()
GL_MAX_COMBINED_ATOMIC_COUNTERS 每个程序的原子计数器uniform变 量的最大数目 8 glGetIntegerv()
GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 着色器存储缓存绑定的最大数目 8 glGet!ntegerv()
GL_MAX_SHADER_STORAGE_BLOCK_SIZE 着色器存储绑定的最大大小 224 glGet!nteger64v()
GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 由程序处理的着色存储缓存的最大 数目 8 glGetIntegerv()
GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 对着色存储缓存绑定偏移的要求的 最小对齐 256 glGetIntegerv()
GL_MAX_IMAGE_UNITS 对图像加载/存储/原子单元的 数目 8 glGetIntegerv()
GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 对活动的图像单元片段输出的限制 8 glGetIntegerv()
GL_MAX_IMAGE_SAMPLES 对一个纹理层绑定到图形单元允许 采样的最大数目 0 glGetIntegerv()
GL_MAX_VERTEX_IMAGE_UNIFORMS 在顶点着色器中图像变量的数目 0 glGetIntegerv()
GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 在细分控制着色器中图像变量的 数目 0 glGetIntegerv()
GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 在细分计算着色器中图像变量的 数目 0 glGet!ntegerv()
GL_MAX_GEOMETRY_IMAGE_UNIFORMS 在几何着色器中图像变量的数目 0 glGetIntegerv()
GL_MAX_FRAGMENTJMAGE_UNIFORMS 在片元着色器中图像变量的数目 8 glGetIntegerv()
GL_MAX_COMBINED_IMAGE_UNIFORMS 在所有着色器中图像变量的数目 8 glGetIntegerv()
GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 对顶点着色器中uniform变量在所 有uniform块(包括默认)的双子节 数目 依赖于实现 glGetIntegerv()
GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 对几何着色器uniform变•量在所有 的uniform变量块(包括默认)的双 子节数目 依赖于实现 glGetIntegerv()
GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 对细分控制着色器一变量在所有的 uniform变量块(包括默认)的双子节 数目 依赖于实现 glGetIntegerv()
GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 对细分计算着色器uniform变量在 所有的uniform变量块(包括默认) 的双子节数目 依赖于实现 glGetIntegerv()
GL_MAX_COMBINED_FRAGMENT_UNIFORM COMPONENTS 对片元着色器uniform变量在所有 的uniform变量块(包括默认)的双 子节数目 依赖于实现 glGetlntegerv()

调试输出状态实现的相关值

调试输出状态实现的相关值 表D-42调试输出的状态变量
状态变量 描述 初始值 查询命令
GL_MAX_DEBUG_MESSAGE_LENGTH 调试信息字符串的最大长度,包括空 结束符 1 glGet!ntegerv()
GL_MAX_DEBUG_LOGGED_MESSAGES 存储在调试信息日志的最大信息长度 1 glGetIntegerv()
GL_MAX_DEBUG_GROUP_STACK_DEPTH 调试组的最深堆栈深度 64 glGetIntegerv()
GL_MAX_LABEL_LENGTH 一个调试标签的最大长度 256 glGetlntegervQ

设备实现的相关值

设备实现的相关值 表D-43设备实现的相关值
状态变量 描述 初始值 查询命令
GL_MAX_SAMPLE_MASK_WORDS 采样掩码(mask)字的最大位数 1 glGetIntegerv()
GL_MAX_SAMPLES 支持的所有非整格式的最多采样数 4 glGet!ntegerv()
GL_MAX_COLOR_TEXTURE_SAMPLES 在多重采样纹理中支持的所有颜色格式的 最多采样数 1 gIGetIntegerv()
GL_MAX_DEPTH_TEXTURE_SAMPLES 在多重采样(multisample)纹理中支持的 所有深度/模板格式的最多采样数 1 glGet!ntegerv()
GL_MAX_INTEGER_SAMPLES 在多重采样缓存中支持的所有整型格式的 最多采样数 1 glGetIntegerv()
GL_QUERY_COUNTER BITS 异步(asynchronous)查询计数位 依赖于实现 glGetQueryiv()
GL_MAX_SERVER_WAJT_TIMEOUT glWaitSync()最长超时时间间隔 0 glGet!nteger64v()
GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 对interpolate AtOffset最大的负偏移 -0.5 gIGetFIoatv()
GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 对interpolate AtO仟set最大的正偏移 0.5 glGetFloatv()
GL_FRAGMENT_INTERPOLATION_OFFSETBITS 对iterpolate AtOffset的子像素位 4 glGetlntegerv()
GL_MAX_DRAW BUFFERS 活动绘制缓存的最大数目 8 glGet!ntegerv()
GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 当使用双重源混合时活动绘制缓存的最大 数目 1 glGetIntegerv()
GL_MAX_COLOR_ATTACHMENTS 对颜色缓存FBO附加点的最多数目 8 glGetIntegerv()

内部格式相关的值

内部格式相关的值 表D-44内部格式相关的值
状态变量 描述 初始值 查询命令
GL_SAMPLES 支持的采样数 依赖于实现 glGetIntemalfbnnativ()
GL_NUM_SAMPLE_COUNTS 支持的采样数目 1 glGetlntemalfonnativO

依赖于transform feedback实现的限制

依赖于transform feedback实现的限制 表D・45 依赖于transform feedback实现的限制
状态变量 描述 初始值 查询命令
GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 在交错模式下写入单一缓存的最大成分 数目 64 glGet!ntegerv()
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 在transform feedback关键字中可以获得 的单独属性或者输出的最大数目 4 glGetIntegerv()
GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 在单一模式中每个属性或者输出的最大 成分数目 4 glGetIntegerv()
GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 写入transform feedback的缓存对象的最 多数目 4 glGetlntegerv()

帧缓冲存的相关值

帧缓冲存的相关值 表D-46帧缓冲存的相关值
状态变量 描述 初始值 查询命令
GL_DOUBLEBUFFER 如果前和后缓存存在就为真 glGetBooleanv()
GL_STEREO 如果左和右缓存存在就为真 glGetBooleanv()
GL_SAMPLE_BUFFERS 多重缓存的数目 0 glGetlntegerv()
GL_SAMPLES 覆盖掩码大小 0 glGetIntegerv()
GL_SAMPLE_POSITION 明确的采样位置 glGetMultisamplefv()

杂项

杂项 表D-47杂项的状态变量
状态变量 描述 初始值 查询命令
GL_- 当前错误代码 GL_NO_ERROR glGetErrorO
GL_CURRENT_QUERY 活动查询对象名称 0 glGetQueryiv()
GL_COPY_READ_BUFFER_BINDING 绑定到拷贝缓存“读入”绑定点 的缓存 0 gIGetIntegerv()
GL_COPY_WRITE_BUFFER_BINDING 绑定到拷贝缓存“写入”绑定点 的缓存对象 0 glGetIntegerv()
GL_TEXTURE_CUBE_MAP_SEAMLESS cubemap贴图无缝过滤开启状态 GL_FALSE glIsEnabled()