(转)glut函数详解(11)--状态查询API

int glutGet(GLenum state);

检索指定的GLUT状态

参数:
state:指定要检索的状态类型,为以下常量:
  GLUT_WINDOW_X:当前窗口的x坐标,以像素为单位.
  GLUT_WINDOW_Y:当前窗口的y坐标,以像素为单位.
  GLUT_WINDOW_WIDTH:当其窗口的宽度,以像素为单位.
  GLUT_WINDOW_HEIGHT:当前窗口的高度,以像素为单位.
  GLUT_WINDOW_BUFFER_SIZE:当前窗口中,颜色分量占用的位数,即用多少bit表示颜色分量.
  GLUT_WINDOW_STENCIL_SIZE:当前窗口中,蒙板分量占用的位数,即用多少bit表示蒙板分量.
  GLUT_WINDOW_DEPTH_SIZE:当前窗口中,深度分量占用的位数,即用多少bit表示深度分量.
  GLUT_WINDOW_RED_SIZE:当前窗口中,红色分量占用的位数,即用多少bit表示红色分量.
  GLUT_WINDOW_GREEN_SIZE:当前窗口中,绿色分量占用的位数,即用多少bit表示绿色分量.
  GLUT_WINDOW_BLUE_SIZE:当前窗口中,蓝色分量占用的位数,即用多少bit表示蓝色分量.
  GLUT_WINDOW_ALPHA_SIZE:当前窗口中,alpha色分量占用的位数,即用多少bit表示alpha色分量.
  GLUT_WINDOW_ACCUM_RED_SIZE:当前窗口累积缓存中,红色分量占用的位数,即用多少bit表示红色分量.
  GLUT_WINDOW_ACCUM_GREEN_SIZE:当前窗口累积缓存中,绿色分量占用的位数,即用多少bit表示绿色分量.
  GLUT_WINDOW_ACCUM_BLUE_SIZE:当前窗口累积缓存中,蓝色分量占用的位数,即用多少bit表示蓝色分量.
  GLUT_WINDOW_ACCUM_ALPHA_SIZE:当前窗口累积缓存中,alpha色分量占用的位数,即用多少bit表示alpha色分量.
  GLUT_WINDOW_DOUBLEBUFFER:如果窗口式双缓存模式,返回1,否则返回0.
  GLUT_WINDOW_RGBA:如果窗口是RGBA模式,返回1,否则返回0.
  GLUT_WINDOW_PARENT:查询当前窗口的父窗口个数,如果为顶层窗口返回0.
  GLUT_WINDOW_NUM_CHILDREN:查询当前窗口的子窗口个数.
  GLUT_WINDOW_NUM_SAMPLES:查询多重采样的采样点个数.
  GLUT_WINDOW_STEREO:查询是否使用立体模式,是则返回1,否则返回0.
  GLUT_WINDOW_CURSOR:返回光标的整数标示.
  GLUT_SCREEN_HEIGHT:屏幕的高度,以像素为单位.
  GLUT_SCREEN_WIDTH:屏幕的宽度,以像素为单位.
  GLUT_SCREEN_WIDTH_MM:屏幕的宽度,以毫米为单位.
  GLUT_SCREEN_HEIGHT_MM:屏幕的高度,以毫米为单位.
  GLUT_MENU_NUM_ITEMS:查询当前菜单包含的菜单项的个数.
  GLUT_DISPLAY_MODE_POSSIBLE:查询窗口系统是否支持当前的显示模式,1表示支持,0表示不支持.
  GLUT_INIT_DISPLAY_MODE:初始窗口的显示模式.
  GLUT_INIT_WINDOW_X:初始窗口的x坐标.
  GLUT_INIT_WINDOW_Y:初始窗口的y坐标.
  GLUT_INIT_WINDOW_WIDTH:初始窗口的宽度.
  GLUT_INIT_WINDOW_HEIGHT:初始窗口的高度.
  GLUT_ELAPSED_TIME:返回两次调用glutGet(GLUT_ELAPSED_TIME)的时间间隔,单位为毫秒,返回值根据查询的内容返回相应的值,无效的状态名返回-1.
  GLUT_WINDOW_COLORMAP_SIZE:返回颜色索引表的大小.

//*******************************************************************************************

int glutDeviceGet(GLenum type);

检索设备信息

参数:
type:要检索的设备信息的名字,为以下常量:
  GLUT_HAS_KEYBOARD 如果键盘可用,返回非0值,否则,返回0.
  GLUT_HAS_MOUSE 如果鼠标可用,返回非0值,否则,返回0.
  GLUT_NUM_MOUSE_BUTTONS 返回鼠标支持的按键数,如果鼠标不可用,返回0,返回值0,表示检索的设备不存在,非0表示设备可用.
  GLUT_HAS_SPACEBALL:如果spaceball可用,返回非0值,否则,返回0.
  GLUT_HAS_DIAL_AND_BUTTON_BOX:如果拨号按键盒可用,返回非0值,否则,返回0.
  GLUT_HAS_TABLET:如果图形板可用,返回非0值,否则,返回0.
  GLUT_NUM_SPACEBALL_BUTTONS:返回spaceball支持的按键数,如果spaceball不存在,返回0.
  GLUT_NUM_BUTTON_BOX_BUTTONS:返回拨号按键盒支持的按键数,如果拨号按键盒不存在,返回0.
  GLUT_NUM_DIALS:返回拨号按键盒支持的拨号数,如果拨号按键盒不存在,返回0.
  GLUT_NUM_TABLET_BUTTONS:返回图形板支持的按键数,如果图形板不存在,返回0.
  GLUT_DEVICE_IGNORE_KEY_REPEAT:如果当前窗口被设置成关闭自动重复按键,则返回非0值.
  GLUT_DEVICE_KEY_REPEAT:返回自动重复按键的设置状态.(说明文件上说是返回连续击键的速率,其实此说法有误.)
  GLUT_HAS_JOYSTICK:如果操纵杆可用,返回非0值,否则,返回0.
  GLUT_OWNS_JOYSTICK:如果glut认为已经成功获得操纵杆的使用权,则返回非0值.否则,返回0.
  GLUT_JOYSTICK_BUTTONS:返回操纵杆支持的按键数,如果操纵杆不存在,返回0.
  GLUT_JOYSTICK_AXES:返回操纵杆支持的操纵轴数,如果操纵杆不存在,返回0.
  GLUT_JOYSTICK_POLL_RATE:返回当前窗口操纵杆被拉动的速率.
(注:对操纵杆的查询限制在操纵杆的数量为1;鼠标被默认为存在,并且其按键数默认是3.)

 //******************************************************************************************
int glutExtensionSupported(const char *name);

判定是否支持特定的OpenGL扩展

参数:
extension:指定要测试的OpenGL扩展的名称,如果给定扩展获得支持,函数返回非0,否则返回0.
必须要有一个有效的当前窗口来调用glutExtensionSupported().它只返回OpenGL扩展信息,这意味着窗口系统依赖的扩展不被glutExtensionSupported()反映.
例子:
if(!glutExtensionSupported("GL_EXT_texture"))
{
 fprintf(stderr, "Missing the texture extension!");
 exit(1);
}

 //******************************************************************************************
 int glutGetModifiers(void);

返回组合功能键的状态

返回值为以下定义的常量
  GLUT_ACTIVE_SHIFT:当按下shift键时
  GLUT_ACTIVE_CTRL:当按下ctrl键时
  GLUT_ACTIVE_ALT:当按下alt键时

 //******************************************************************************************
 int glutLayerGet(GLenum type);

查询属于当前窗口的重叠层的状态

参数:
type:查询的重叠层状态常量:
  GLUT_OVERLAY_POSSIBLE:在给定的初始显示模式下,能否为当前窗口创建重叠层.如果能,返回1;如果不能,返回0.
  GLUT_LAYER_IN_USE:返回当前的使用层,为GLUT_NORMAL(使用正常的颜色层)或GLUT_OVERLAY(使用重叠层).
  GLUT_HAS_OVERLAY:判断当前窗口是否创建了重叠层.
  GLUT_NORMAL_DAMAGED:如果当前窗口的图像层在上一次显示回调函数调用后已经破坏,则返回TRUE.
  GLUT_OVERLAY_DAMAGED:如果当前窗口的重叠层在上一次显示回调函数调用后已经破坏,则返回TRUE.
  GLUT_TRANSPARENT_INDEX:返回当前窗口覆盖层的透明颜色索引值,如果没有覆盖层则返回-1.


posted on 2009-03-03 15:37 小虫虫 阅读(948) 评论(0)  编辑 收藏 引用 所属分类: OpenGL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜