使用查询函数
有四个查询函数可用于获取简易状态变量,而其中一个则可用于确定是启用还是禁用了特定状态:
这些查询函数的原型为:
void glGetBooleanv(GLenum pname , GLboolean * params );
void glGetIntegerv(GLenum pname , GLint * params );
void glGetFloatv(GLenum pname , GLfloat * params );
void glGetDoublev(GLenum pname , GLdouble * params );
这些查询函数可分别获取布尔型、整型、浮点型或双精度状态变量。 pname 参数是一个符号常量,它表示要返回的状态变量。params 则为要在其中放置返回数据的所示类型的数组的指针。 pname 的可能值已在 OpenGL 状态变量中列出。 必要时,系统会执行类型转换以将所需变量作为请求的数据类型来返回。
glIsEnabled 的原型为:
GLboolean glIsEnabled(GLenum cap );
如果启用了 cap 指定的模式,glIsEnabled 则会返回 GL_TRUE。 如果禁用了 cap 指定的模式,glIsEnabled 则会返回 GL_FALSE。 cap 的可能值已在 OpenGL 状态变量中列出。
其他专用函数会返回特定的状态变量。 若要了解何时应使用这些函数,请参阅“OpenGL 状态变量”和 OpenGL 参考手册。 有关 OpenGL 的错误处理设施和 glGetError 函数的详细信息,请参阅错误处理。
返回特定状态变量的函数为:
- glGetClipPlane
- glGetError
- glGetLight
- glGetMap
- glGetMaterial
- glGetPixelMap
- glGetPolygonStipple
- glGetString
- glGetTexEnv
- glGetTexGen
- glGetTexImage
- glGetTexLevelParameter
- glGetTexParameter