一 、初始化
1、void glutInit(int* argc,char** argv)
这个函数用来初始化GLUT库。对应main函数的形式应是:
int main(int argc,char* argv[]);
这个函数从main函数获取其两个参数。
2、void glutInitWindowSize(int width,int height);
void glutInitWindowPosition(int x,int y);
这两个函数很好理解是设置glut程序要产生的窗口的大小和位置(左上角)。以像素为单位。
3、void glutInitDisplayMode(unsigned int mode);
表明欲建立RGBA模式的窗口。
二、事件处理(Event Processing)
1、void glutMainLoop(void)
2、glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height))
3、glutDisplayFunc(void (GLUTCALLBACK *func)(void))
4、glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y))
5、glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y))
设置鼠标器移动回调函数,当鼠标发生移动时执行被注册的函数。
6、glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y))
设置键盘回调函数,当键盘有键被按下是调用所注册的函数。
7、glutIdleFunc(void (GLUTCALLBACK *func)(void))
三、窗口管理(Window Management)
1、int glutCreateWindow(char* name);
2、int glutCreateSubWindow(int win,int x,int y,int width,int height);
3、void glutSetWindow(int win)
4、void glutDestroyWindow(int win)
5、void glutPostRedisplay(void)
6、void glutSwapBuffers(void)
7、void glutPositionWindow(int x,int y)
8、void glutReshapeWindow(int width,int height)
9、void glutFullscreen(void)
10、void glutPopWindow(void)
11、void glutShowWindow(void)
12、glutSetWindowTitle(char* name);
13、glutSetCursor(int cursor);
GLUT_CURSOR_LEFT_ARROW指向左边的光标,GLUT_CURSOR_INFO成为手状。
GLUT_CURSOR_DESTROY呈叉状,GLUT_CURSOR_HELP呈现问号的形状。
等等。
四、窗口的覆盖管理
1、void glutEstablishOverlay(void);
对当前窗口创建覆盖图层。该覆盖图的模式由初始化显示模式函数glutDisplayMode()决定。glutLayerGet(GLUT_OVERLAY_POSSIBLE)可用以设置对于当前窗口,是否允许产生由初始化显示模式函数规定其模式的覆盖图层。
2、void glutUserLayer(GLenum layer);
枚举量layer可选值为:GLUT_NORMAL,GLUT_OVERLAY.分别选取正常位平面或覆盖平面。
3、void glutRemoveLayer(void);
除去覆盖图。当没有覆盖图层时,调用这条语句也是安全的,这时系统不做任何事。
4、void glutPostOverlayRedisplay (void);
标记该覆盖图层为需要重新显示的状态。
5、void glutShowOverlay(void);
void glutHideOverlay(void);
显示当前窗口的覆盖图层;隐藏覆盖图层。这两条语句即时执行。注意一下,只有窗口可视时,使用glutShowOverlay才能使其覆盖图层可视。当窗口被其他窗口遮挡时,其覆盖图层也被遮挡从而不可视。