OpenGL入门实例(一)

来源:互联网 发布:翼梦账号淘宝 编辑:程序博客网 时间:2024/05/18 02:20

    通过下面的实例,我们在黑色背景中绘制一个白色矩形,来了解一下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函数中,定义了要绘制的图形实体。

   

 

原创粉丝点击