GLUT-注册回调函数
void glutDisplayFunc(void (*func)(void) );
为当前窗口设置显示回调函数
void glutOverlayDisplayFunc(void (*func)(void) );
注册当前窗口的重叠层的显示回调函数
void glutReshapeFunc(void (*Func)(int width, int height) );
指定当窗口的大小改变时调用的函数
void glutKeyboardFunc(void (*func) (unsigned char key, int x, int y) );
注册当前窗口的键盘回调函数
void glutMouseFunc(void (*func) (int button, int state, int x, int y));
注册当前窗口的鼠标回调函数
func为注册的鼠标回调函数,这个函数完成鼠标事件的处理
button为鼠标的按键,为以下定义的常量
GLUT_LEFT_BUTTON |
鼠标左键 |
GLUT_MIDDLE_BUTTON |
鼠标中键 |
GLUT_RIGHT_BUTTON |
鼠标右键 |
state为鼠标按键的动作,为以下定义的常量
GLUT_UP |
鼠标释放 |
GLUT_DOWN |
鼠标按下 |
x,y为鼠标按下式,光标相对于窗口左上角的位置
void glutMotionFunc(void (*func)(int x, int y));
void glutPassiveMotionFunc(void (*func)(int x, int y));
设置移动回调函数;设置当前鼠标移动函数
Func为注册的鼠标移动函数
x,y为鼠标按下式,光标相对于窗口左上角的位置
当鼠标在窗口中按下并移动时调用glutMotionFunc注册的回调函数
当鼠标在窗口中移动时调用glutPassiveMotionFunc注册的回调函数
void glutVisibilityFunc(void (*func) (int state) );
设置当前窗口的可视回调函数
Func为指定的可视回调函数
state表示窗口的可视性,为以下常量:
GLUT_NOT_VISIBLE |
窗口完全不可见 |
GLUT_VISIBLE |
窗口可见或部分可见 |
这个函数设置当前窗口的可视回调函数,当窗口的可视性改变时,该窗口的可视回调函数被调用.只要窗口中的任何一个像素是可见的,或者他的任意一个子窗口中任意一个像素是可见的,GLUT则认为窗口是可见的.
void glutEntryFunc(void (*func) (int state));
设置鼠标的进出窗口的回调函数
Func为注册的鼠标进出回调函数
state为鼠标的进出状态,为以下常量之一:
GLUT_LEFT |
鼠标离开窗口 |
GLUT_RIGHT |
鼠标进入窗口 |
当窗口取得焦点或失去焦点时调用这个函数,当鼠标进入窗口区域并点击时,state为GLUT_RIGHT,当鼠标离开窗口区域点击其他窗口时,state为GLUT_LEFT.
void glutSpecialFunc(void (*func) (int key, int x, int y))
设置当前窗口的特定键的回调函数
Func为注册的特定键的回调函数
key为按下的特定键,为以下定义的常量:
key常量 |
描述 |
GLUT_KEY_F1 |
F1功能键 |
GLUT_KEY_F2 |
F2功能键 |
GLUT_KEY_F3 |
F3功能键 |
GLUT_KEY_F4 |
F4功能键 |
GLUT_KEY_F5 |
F5功能键 |
GLUT_KEY_F6 |
F6功能键 |
GLUT_KEY_F7 |
F7功能键 |
GLUT_KEY_F8 |
F8功能键 |
GLUT_KEY_F9 |
F9功能键 |
GLUT_KEY_F10 |
F10功能键 |
GLUT_KEY_F11 |
F11功能键 |
GLUT_KEY_F12 |
F12功能键 |
GLUT_KEY_LEFT |
左方向键 |
GLUT_KEY_UP |
上方向键 |
GLUT_KEY_RIGHT |
右方向键 |
GLUT_KEY_DOWN |
下方向键 |
GLUT_KEY_PAGE_UP |
PageUp键 |
GLUT_KEY_PAGE_DOWN |
PageDown键 |
GLUT_KEY_HOME |
Home键 |
GLUT_KEY_END |
End键 |
GLUT_KEY_INSERT |
Insert键 |
x,y为当按下键时鼠标的坐标,相对于窗口左上角,以像素为单位
注意:ESC,回车和delete键由ASCII码产生.
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
设置菜单状态回调函数
func是注册的菜单状态回调函数
status是当前是否使用菜单,为以下定义的常量
GLUT_MENU_IN_USE |
菜单正在使用 |
GLUT_MENU_NOT_IN_USE |
菜单未被使用 |
x,y是鼠标按下式,光标相对于窗口左上角的位置
这个函数时glut程序判定是否正在使用菜单,当弹出菜单时,调用注册的菜单状态回调函数,同时status设置为常量GLUT_MENU_IN_USE, 当菜单使用完毕时,也调用菜单状态回调函数,此时status变量变为GLUT_MENU_NOT_IN_USE.从已弹出的菜单中再弹出的菜单不产生菜单状态回调过程.每个glut程序只有一个菜单状态回调函数.
glutSpaceballRotateFunc
glutSpaceballButtonFunc
glutButtonBoxFunc
glutDialsFunc
glutTabletMotionFunc
glutTabletButtonFunc
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
设置菜单状态回调函数
func为注册的菜单状态回调函数
status表示当前是否使用菜单,为以下定义的常量
GLUT_MENU_IN_USE |
菜单正在使用 |
GLUT_MENU_NOT_IN_USE |
菜单未被使用 |
x,y表示鼠标按下式,光标相对于窗口左上角的位置
这个函数时glut程序判定是否正在使用菜单,当弹出菜单时,调用注册的菜单状态回调函数,同时status设置为常量GLUT_MENU_IN_USE, 当菜单使用完毕时,也调用菜单状态回调函数,此时status变量变为GLUT_MENU_NOT_IN_USE.从已弹出的菜单中再弹出的菜单不产生菜单状态回调过程.每个glut程序只有一个菜单状态回调函数.
void glutIdleFunc(void (*func) (void));
设置空闲回调函数
func表示当系统空闲时调用的函数,它的形式为void func(void)
void glutTimerFunc(unsigned int msecs, void (*Func)(int value), int value);
注册一个回调函数,当指定时间值到达后,由GLUT调用注册的函数一次
msecs是等待的时间
Func是注册的函数
value是指定的一个数值,用来传递到回调函数Func中
这个函数注册了一个回调函数,当指定的毫秒数到达后,这个函数就调用注册的函数,value参数用来向这个注册的函数中传递参数。