直接上代码,注释详细
#include <GL/glew.h>
#include<GL/glut.h>
#include <GLFW/glfw3.h>
int main(int argc, char *argv[]) {
glutInit(&argc, argv); //初始化GLUT
/*
GLUT_DOUBLE 设置双缓冲
(double buffering,即当一个 buffer 显示的时候,另一个 buffer 用来绘制)
和 color buffer,后者是大多数渲染结束的地方(比如屏幕)
*/
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
/*这些函数设置了窗口的参数(包括窗口大小、窗口位置以及窗口标题)并创建窗口。*/
glutInitWindowSize(800, 600);
glutInitWindowPosition(100, 100);
glutCreateWindow("Test_1");
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
/*这个函数调用将控制传递给 GLUT,并且开启了它自己内部的循环。
在这个循环中,它监听来自窗口系统的事件并通过我们设置的回调函数传递给 GLUT。*/
glutMainLoop();
/*
glClear()函数的功能仅仅就是清除帧缓存(使用我们在上面指定过的颜色)。
*/
glClear(GL_COLOR_BUFFER_BIT);
/*
glutSwapBuffers()函数调用是为了告诉 GLUT 在 backbuffer 和 frontbuffer 之间进行交换。
在通过帧回调函数的下一个循环中,
我们将场景渲染到当前的 frontbuffer 中,而 backbuffer 将被显示。
*/
glutSwapBuffers();
}