您的位置:首页 > 运维架构

OpenGL入门实例(一)

2010-11-08 00:51 197 查看
通过下面的实例,我们在黑色背景中绘制一个白色矩形,来了解一下OpenGL程序的结构:

#include <GL/glut.h>

void display();

int main(int argc, char **argv)
{
glutInit(&argc, argv);

glutCreateWindow("example");
glutDisplayFunc(display);
glutMainLoop();

return 0;
}

void display()
{
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f( 0.5, 0.5);
glVertex2f( 0.5, -0.5);
glEnd();

glFlush();
}

在Ubuntu 8.04终端中,通过下面命令对源码进行编译:

gcc -lglut -o example_2_1 example_2_1.c

编译完成执行,在终端执行命令:

./example_2_1

执行结果如下:



在上面的程序中,main函数负责OpenGL的初始化,display函数定义要绘制的图形实体。

在main函数中:

glutInit函数负责初始化GLUT,在任何的GLUT函数和OpenGL函数调用之前,必须先调用此函数来进行初始化;

glutCreateWindow函数在屏幕上创建一个窗口,窗口的默认大小是300x300像素,在屏幕上面的默认显示位置是在屏幕的左上角,可以通过该函数的参数设置窗口的标题,在上面的例子中,我们将窗口的标题设置为“example”;

glutDisplayFunc函数负责注册回调函数,通过该函数注册的回调函数,在OpenGL确定需要进行重绘时,就会调用该函数注册的显示回调函数;

glutMainLoop函数使程序进入无限事件循环,在函数要作为main函数的最后一条语句出现;

在display函数中,定义了要绘制的图形实体。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: