Open Gl 语法学习(一)

因为在学习的过程中需要使用Open Gl画图,所以现在学习Open Gl的基本语法
在这里强烈感谢Mr_厚厚的博客,真的非常有帮助,接下来将记录跟这位博主学习的过程。

代码解析

具体解释
以下是本人基于个人理解的一些简化的内容

  • glutInit(&argc, argv);
    初始化glut
    GLUT(OpenGL utility library,freeGLUT是GLUT的开源版本,老GLUT早已停止更新),它提供了一个简化的API来操作窗口,以及支持事件处理,IO控制和其他一些功能。

  • glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
    设置双缓冲机制(?)和颜色缓冲(?)(通常需要这两个设置)

  • glutInitWindowSize(480, 320);
    窗口大小

  • glutInitWindowPosition(100, 100);
    窗口位置

  • glutCreateWindow("Tutorial 01");
    窗口名称

  • glutDisplayFunc(RenderScenceCB);
    用一个主回调来完成一帧图像的所有渲染工作。这个回调函数会不断地被GLUT内部循环调用。

  • glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    设置了当帧缓存清空后要使用的颜色值。

  • glutMainLoop();
    这个函数调用,传递指令给GLUT现在开始它的内部循环。在我们这个例子中,GLUT将只会调用我们注册的那个display回调(RenderScenceCB)。

  • RenderScenceCB()
    自定义的代码,用来渲染当前的图像

DEMO 显示一个窗口
void RenderScenceCB() {
// 清空颜色缓存
glClear(GL_COLOR_BUFFER_BIT);
// 交换前后缓存
glutSwapBuffers();
}

/**
* 主函数
*/
int main(int argc, char ** argv) {
// 初始化GLUT
glutInit(&argc, argv);

// 显示模式:双缓冲、RGBA
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);

// 窗口设置
glutInitWindowSize(480, 320);      // 窗口尺寸
glutInitWindowPosition(100, 100);  // 窗口位置
glutCreateWindow("Tutorial 01");   // 窗口标题
glutDisplayFunc(RenderScenceCB);   // 开始渲染

// 缓存清空后的颜色值
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

// 通知开始GLUT的内部循环
glutMainLoop();

return 0;
}

运行结果

Open Gl 语法学习(一)_第1张图片
运行结果

你可能感兴趣的:(Open Gl 语法学习(一))