1. 窗口管理
glutInit(int *argc, char ** argv)
初始化GLUT并处理命令行参数,应在其他GLUT函数前调用。
glutInitDisplayMode(unsigned int mode);
指定使用RGBA颜色模式还是颜色索引模式。
指定使用单缓存还是双缓存。
例如:glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH)
glutInitWindowPosition(int x, int y);
指定窗口左上角在屏幕上的位置。
glutInitWindowSize(int width,int size);
指定窗口大小,单位像素。
glutInitContextVersion(int majorVersion,int minorVersion);
指定使用的OpenGL版本(这是freeglut库中的新特性,在OpenGL3.0中有介绍)
glutInitContextFlags(int flags)
指定使用的OpenGL场景类型。标准的OpenGL操作可以省略该步调用。如果要使用向后兼容的OpenGL场景,就要调用该函数。(也是3.0新特性。)
注:OpenGL场景,原文OpenGL Context
int glutCreateWindow(char *string);
使用一个OpenGL场景创建一个窗口,它返回一个新窗口的唯一标识符。注意:在glutMainLoop()被调用前,这个窗口都不会显示。
2. 显示回调函数
glutDisplayFunc(void (*func)(void))
第一个也是最重要的事件回调函数。GLUT要重新显示显示窗口的内容时,会执行glutDisplayFunc()注册的所有函数。也就是,所有重画的处理函数都要用它注册。
有时程序改变了显示窗口的内容,因此不得不手动调用glutPostRedisplay()来重新显示。glutPostRedisplay()会提醒glutMainLoop()调用注册了的显示回调函数。
3. 执行程序
glutMainLoop()
调用了glutMainLoop()之后,才创建、呈现和渲染显示窗口。