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.