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函数中,定义了要绘制的图形实体。
#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函数中,定义了要绘制的图形实体。
相关文章推荐
- OpenGL入门实例(2)-图元和其他
- OpenGL入门实例(3)-多边形细节
- JAVA的OPENGL,JOGL入门实例----碰撞移动的正方体 (配置+源代码)
- opengl入门实例(4)-鼠标事件
- OpenGL 入门教程实例
- JAVA的OPENGL,JOGL入门实例----不断变色的点阵 (源代码)
- Android OpenGL 入门实例
- JAVA的OPENGL,JOGL入门实例----不断变色的点阵 (源代码)
- 第一个 Ajax 入门实例
- iOS开发入门实例
- iOS入门(十六)实例变量可见度和方法
- OpenGL入门
- OpenGL入门学习(六)
- cocos2dx opengl入门系列一-序言
- koa2 入门及express应用迁移到koa2实例
- Pentaho 之Schame workbench入门实例
- Spring集成Redis实例入门
- OpenGL入门学习(二)
- WinForm 实例教程 通讯录 视频教程 入门教程
- 【转】php中的curl使用入门教程和常见用法实例