- glutInit
/*
负责初始化GLUT库。他会处理向程序输入的命令行参数,并且移除其中与控制GLUT如何操作相关的部分。
它必须是应用程序的第一个GLUT函数,负责设置其他GLUT例程必须的数据结构。
OpenGL上下文环境初始化,这个上下文存储所有与OpenGL相关的状态每一个上下文都可以描绘一个不同的可视界面。使用OpenGL之前的初始化第一阶段。
*/
glutInit();
- glutInitDisplayMode
/*
设置了程序所使用的窗口类型。窗口设置更多的OpenGL 特性,例如RAGA颜色空间,使用深度缓存或动画效果.
颜色缓存区:GLUT_RGBA
就是帧缓冲区(图形设备的内存),需要渲染的场景的每一个像素都最终写入该缓冲区,然后由他渲染到屏幕上显示
深度缓冲区:GLUT_DEPTH
与帧缓冲区对应,用于记录上面每个像素的深度值,通过深度缓冲区,我们可以进行深度测试,从而确定像素的遮挡关系,保证渲染正确。(注意区分深度测试和背面剔除)
双缓存区:GLUT_DOUBLE
双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。
模板缓存区:GLUT_STENCIL
与深度缓冲区类似,通过设置模板缓冲每个像素的值,我们可以在渲染的时候只渲染后写像素,从而可以达到一些特殊的效果。
模板缓冲区可以为屏幕上的每个像素点保存一个无符号的整数值,在渲染过程中,可以用这个值与一个预先设定的参考值相比较,根据比较的结果来决定是否更新相应的像素点的颜色值。
模板测试发生在透明度测试之后,深度测试之前,如果模板测试通过,则相应的像素点更新,否则不更新。
*/
glutInitDisplayMode();
- glutInitWindowSize
/*
设置窗口大小
*/
glutInitWindowSize();
- glutCreateWindow
/*
创建window
*/
glutCreateWindow("name");
- glewInit
/*
辅助库GLEW(OpenGL Extension Wrangler)的初始化方法,可以简化获取函数地址的过程,并且包含了可以跨平台使用的其他一些OpenGL编程方法。
定位所有需要在OpenGL中使用的函数。使用OpenGL之前的初始化第二阶段。
*/
glewInit();
- glutDisplayFunc
/*
设置显示回调函数,每次窗口更新内容都会执行这个回调。
*/
glutDisplayFunc();
- glutMainLoop
/*
无线运行的循环,负责一直处理窗口和操作系统的用户输入等操作。
*/
glutMainLoop();