OpenGL的状态查询

1. glGet:返往返所选择的参数值 

  C语言描述 

  void glGetBooleanv(GLenum pname, GLboolean *params); 

  void glGetDoublev(GLenum pname, GLdouble *params); 

  void glGetFloatv(GLenum pname, GLfloat *params); 

  void glGetIntegerv(GLenum pname, GLint *params); 

  参数 

  pname 指定返回的参数值,可以选择的符号常数看下面的说明。 

  params 返来回指定的参数值。 

  说明 

  本函数为OpenGL中简单状态变量返来回数值,如果params的数据类型并不是状态变量要求的数据类型,则执行类型转换。 

  下面是pname可以选择的部分符号常数: 

  GL_COLOR_CLEAR_VALUE params返往返四个值:用来清除颜色缓存的红色、绿色、蓝色和alpha值。如果需要,整数值由内部的浮点表达式进行线型映***,1.0返回最大的正整数,-1.0返往返最小的正整数值。 

  GL_COLOR_MATERIAL params返来回一个布尔数值,该值表示是否有一个或多个材质参数正在跟踪当前颜色。 

  GL_COLOR_MATERIAL_FACE params返来回一个数值,该值为符号常数,表示有哪些材质正在跟踪当前颜色的参数。 

  GL_COLOR_MATERIAL_PARAMETER params返往返一个数值,该值为符号常数,表示哪些材质参数正在跟踪当前颜色。 

  GL_CULL_FACE params返回一个布尔数值,该值表示是否能使多边形切割。 

  GL_CULL_FACE_MODE params返往返一个数值,该值为符号常数,它表示哪些多边形的面被剔除。 

  GL_CURRENT_COLOR params返回四个数值:当前颜色的红、绿、蓝和alpha值。 

  GL_CURRENT_NORMAL params返往返三个数值:当前法向量的x,y和z值。 

  GL_DOUBLEBUFFER params返往返一个布尔值,该值表示是否能支持双缓存。 

  GL_EDGE_FLAG params返往返一个布尔值,该值表示当前的边界标记是TRUE还是FALSE。 

  GL_FRONT_FACE params返来回一个数值,该值为符号常数,表示是顺时针多边形还是逆时针多边形为正面多边形。 

  GL_LIGHT_MODEL_AMBIENT params返往返四个数值:整个***中***浓度的红、绿、蓝和alpha值。 

  GL_LIGHT_MODEL_TWO_SIDE params返回一个布尔值,该值表示是否使用分离的材质计算正面多边形和反面多边形的光照。 

  GL_LINE_STIPPLE_PATTERN params返回一个数值,该值为16位直线点划图。 

  GL_LINE_STIPPLE_REPEAT params返往返一个数值,该值为直线点划图的重复因子。 

  GL_LINE_WIDTH params返来回一个数值,该值为当前指定的线宽。 

  GL_LINE_WIDTH_RANGE params返回两个数值,线段所支持的最小宽度和最大宽度。 

  GL_MAX_CLIP_PLANES params返来回一个数值,该值为应用程序定义的切割平面的最大数目。 

  GL_MAX_LIGHTS params返回一个数值,该值为光照的最大数目。 

  GL_MAX_MODELVIEW_STACK_DEPTH params返来回一个数值,该值为模型视图矩阵堆栈支持的最大深度。 

  GL_MAX_PROJECTION_STACK_DEPTH params返往返一个数值,该值为投影矩阵堆栈支持的最大深度。 

  GL_MODELVIEW_MATRIX params返来回16个数值:在模型视图矩阵堆栈顶层的模型视图矩阵。 

  GL_MODELVIEW_STACK_DEPTH params返回一个数值,该值为模型视图矩阵堆栈的矩阵数目。 

  GL_POINT_SIZE params返来回一个数值,该值为当前指定的点的大小。 

  GL_POINT_SIZE_RANGE params返回两个数值:点大小的最小值和最大值。 

  GL_POLYGON_MODE params返来回两个数值:指定是正面多边形还是反面多边形被光栅化为点、线或实多边形的符号常数。 

  GL_PROJECTION_MATRIX params返往返16个数值:在投影矩阵堆栈顶层的模型视图矩阵。 

  GL_ PROJECTION_STACK_DEPTH params返往返一个数值,该值投影矩阵堆栈的矩阵数目。 

  GL_SHADE_MODEL params返往返一个数值,该值为符号常数,表示阴影***是平面明暗***还是光滑明暗***。 

  GL_VIEWPORT params返往返四个数值:视口的x和y窗口坐标,接下来是视口的宽度和高度。 

  2.glGetClipPlane:返往返指定的切平面系数 

  C语言描述 

  void glGetClipPlane(GLenum plane, GLdouble *equation); 

  参数 

  plane 指定用GL_CLIP_PLANEi标示的切割平面。 

  *equation 返来回视点坐标中plane平面方程的系数。 

  说明 

  本函数可以***切割平面方程的四个系数。 

  3. glGetLight:返往返光源参数值 

  C语言描述 

  void glGetLightfv(GLenum light, GLenum pname, GLfloat *params); 

  void glGetLightiv(GLenum light, GLenum pname, GLint *params); 

  参数 

  light 指定名为GL_LIGHTi(0≤i≤GL_MAX_LIGHTS)。 

  pname 指定光源参数。 

  *param 返往返请求的数据。 

  说明 

  本函数用于获取光源的参数,pname指定的光源参数如下: 

  GL_AMBIENT params返回四个整数值或浮点数值,这些值表示光源的***RGBA浓度。

  GL_DIFFUSE params返往返四个整数值或浮点数值,这些值表示光源的漫反***RGBA浓度。 

  GL_SPECULAR params返回四个整数值或浮点数值,这些值表示光源的镜面RGBA浓度。 

  GL_POSITION params返往返四个整数值或浮点数值,这些值表示光源的位置。 

  GL_SPOT_DIRECTION params返回三个整数值或浮点数值,这些值表示光源的方向。 

  GL_SPOT_EXPONENT params返往返一个整数值或浮点数值,它表示聚光源指数。 

  GL_SPOT_CUTOFF params返往返单个整数值或浮点数值,它表示聚光源的角度。 

  GL_CONSTANT_ATTENUATION params返来回单个整数值或浮点数值,它表示光照的恒定衰减值(与距离无关)。 

  GL_LINEAR_ATTENUATION params返回单个整数值或浮点数值,它表示光照的线性衰减值。 

  GL_QUADRATIC_ATTENUATION params返回单个整数值或浮点数值,它表示光照的二次衰减值。 

  4. glGetMaterial:返回材质参数 

  C语言描述 

  void glGetMaterialfv(GLenum face, GLenum panem, GLfloat *params); 

  void glGetMaterialiv(GLenum face, GLenum panem, GLint *params); 

  参数 

  face 指定查询的是哪个面的材质,必须为GL_FRONT、GL_BACK或GL_FRONT_AND_BACK。 

  pname 指定返来回的材质参数。 

  *params 返回请求的数据。 

  说明 

  本函数用于获取材质参数。pname可以选择的参数值如下: 

  GL_AMBIENT params返来回四个整数值或浮点数值,这些值表示材质***反***的RGBA值。 

  GL_DIFFUSE params返来回四个整数值或浮点数值,这些值表示材质漫反***的RGBA值。 

  GL_SPECULAR params返往返四个整数值或浮点数值,这些值表示材质镜面反***的RGBA值。 

  GL_EMISSION params返来回四个整数值或浮点数值,这些值表示材质漫反***光浓度的RGBA值。 

  GL_SHININESS params返来回单个整数值或浮点数值,这个值表示材质的RGBA镜面指数。 

  GL_COLOR_INDEXES params返来回三个整数值或浮点数值,这些值表示材质的***反***、漫***反***和镜面反***的颜色索引值。 

  1.9 窗口初始化和启动事件处理 

  1. glutInit:初始化GLUT库 

  C语言描述 

  void glutInit(int *argcp, char **argv); 

  参数 

  *argcp 指向main函数argc变量的指针。由于glutInit用于初始化GLUT库的命令行选项,因此当函数返来回时,argcp指向的数值会被更新。 

  *argv main函数的argv变量。 

  说明 

  本函数用来初始化GLUT库并同窗口系统对话协商。在此***中,如果GLUT不能正确初始化,glutInit函数将会终止GLUT程序,并将错误信息往返送给用户。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值