工程及需要加入的framework和导入的头文件见上面的文章。
void display(void)
{
//使用当前设置的颜色清屏,如果不这么做,你得到的是一个很花,并且没有规律的背景
glClear(GL_COLOR_BUFFER_BIT);
//设置当前的使用的颜色
glColor3f(0.0f, 0.0f, 1.0f);
//设置点大小
glPointSize(10);
//开始画点
glBegin(GL_POINTS);
glVertex3f(0.25, 0.25,0.0);
glEnd();
//强制把上面的命令都开始执行
glFlush();
}
void init(void)
{
//viewport并非必须调用,缺省是屏幕大小,指定需要作业的屏幕大小,不能大于窗口大小。
//glViewport(0.0f, 0.0f, 400.0f, 400.0f);
//指定屏幕清除颜色。
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
//指定下面矩阵操作函数操作的矩阵。
glMatrixMode(GL_PROJECTION);
//恢复单位矩阵
glLoadIdentity();
//创建一个正交平行的视景体
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0);
}
int main (int argc, char * argv[])
{
//glut严格的说不是opengl的一部分,是为了支持使用opengl的程序方便的创建和管理窗口而做的,
//下面是它的初始化工作,一般情况下,我们需要把main函数的argv前面的const修饰词去掉,以减少一个警告
glutInit(&argc, argv);
//初始化窗口的显示模式,不使用双缓存系统,颜色使用rgb,
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
//初始化窗口大小为400*400
glutInitWindowSize(400, 400);
//初始化窗口的为止为x = 100,y = 100
glutInitWindowPosition(100, 100);
//创建标题为test的窗口
glutCreateWindow("test");
//初始化opengl
init();
//设置显示回调函数
glutDisplayFunc(display);
//程序开始运行。
glutMainLoop();
//严格的说,下面这句话不会执行到,只是为了符合iso标准C的格式。
return 0;
}