#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
///
// Called to draw scene
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
// Flush drawing commands
glFlush();
}
///
// Set up the rendering state
void SetupRC(void)
{
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
}
///
// Main program entry point
int main(int argc, char* argv[])
{
//初始化glut
glutInit(&argc, argv);
//告诉我们要创建的是一个什么窗口(单缓存,RGBA格式)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
//创建opengl窗口,明成为Simple
glutCreateWindow("Simple");
//设置显示的回调函数,即调用什么函数显示
glutDisplayFunc(RenderScene);
//初始化我们的窗口
SetupRC();
//用于保证opengl的消息循环
glutMainLoop();
return 0;
}
下面详细说明几个函数
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
用于设置清空窗口时使用的颜色,分别为R,G,B各各颜色分量的值
另外alpha其实可以理解为透明度的意思
glClear(GL_COLOR_BUFFER_BIT);
将会把窗口清空为glClearColor所设置的颜色
最后调用glFlush();
将命令队列发送至硬件显示
这是什么意思呢?其实就是opengl为了更好的提高效率,会将多个命令以队列的形式一次性发到显示设备上,因为于显示设备通讯是一件比较费时的事情,假如一次性搞定,将会大大提高效率。因此,当我们调用glFlush的时候,其实前面进行的glClear命令才会才会被发送到显示设备
今天就学了这么一点,本人英文有点烂,读E文大牛的书有点恼火啊~~~~
好了,就这样了,有什么问题的话可以留言或邮件哈lihn1987@gmail.com
ubuntu+opengl程序设计(2)第一个程序
最新推荐文章于 2024-07-25 18:44:22 发布
ubuntu+opengl程序设计(2)第一个程序
--lihn1987(转载请注明出处,谢谢)