环境的搭建不说了,网上很多。我本人是用GCC,没有用VC完全是因为不熟悉微软的东西,以及不想太过依赖微软(就算依赖至少也得知道到底依赖了他哪些东西)。
其中看到的OpenGL的函数,
以gl开头的函数都是OpenGL的标准函数;
以glu开头的函数都是GLU实用库所提供的函数;
以glut开头的函数都是GLUT工具包所提供的函数;
函数库的内容详见
OpenGL开发库的详细介绍。
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
void
myDisplay(void)
{
// 清除, GL_COLOR_BUFFER_BIT表示清除颜色
glClear(GL_COLOR_BUFFER_BIT);
// 画一个矩形, 四个参数分别为左上角点的x, y坐标, 右下角点的x, y坐标
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
// 保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待), 其作用跟fflush(stdout)类似
glFlush();
}
// 程序入口
int
main(int argc, char *argv[])
{
// 对GLUT进行初始化
glutInit(&argc, argv);
// 设置显示方式
// GLUT_RGB表示使用RGB颜色, GLUT_INDEX表示使用索引颜色
// GLUT_SINGLE表示使用单缓冲, GLUT_DOUBLE表示使用双缓冲
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE );
// 设置窗口在屏幕中的位置
glutInitWindowPosition(100, 100);
// 设置窗口的大小
glutInitWindowSize(400, 400);
// 根据前面设置的信息创建窗口, 参数将被作为窗口的标题
// 此时并不马上显示到屏幕上, 等到调用glutMainLoop后才能看到窗口
glutCreateWindow("My first OpenGL Program, not \"Hello World\", - -");
// 设置一个函数, 需要进行画图时, 这个函数就会被调用
glutDisplayFunc(&myDisplay);
// 进行一个消息循环
glutMainLoop();
return 0;
}
posted on 2010-03-29 22:05
RayRiver 阅读(383)
评论(0) 编辑 收藏 引用 所属分类:
OpenGL