学了很多次OpenGL了,每次都无疾而终,这次真得用了~~~

 1 #include <GLUT/GLUT.h>
 2 
 3 #include <iostream>
 4 
 5 void render(void);
 6 void keyboard(unsigned char c, int x, int y);
 7 void mouse(int button, int state, int x, int y);
 8 
 9 int main(int argc, char **argv)
10 {
11     //初始化glut
12     glutInit(&argc, argv);
13     //初始化显示模式为双缓存、RGBA
14     glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
15     //设置窗口位置
16     glutInitWindowPosition(100, 100);
17     //设置窗口大小
18     glutInitWindowSize(640, 480);
19     //创建窗口
20     glutCreateWindow("Simple GLUT Application");
21     //指定显示回调函数
22     glutDisplayFunc(render);
23     //指定键盘回调函数
24     glutKeyboardFunc(keyboard);
25     //指定鼠标回调函数
26     glutMouseFunc(mouse);
27     //启动主循环
28     glutMainLoop();
29 }
30 
31 //渲染回调函数
32 void render(void)
33 {
34     //清理颜色和深度缓存
35     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
36 
37     //开始绘制图形
38     glBegin(GL_TRIANGLES);
39         //指定笔触颜色
40         glColor3f(1, 0, 0);
41 
42         //绘制点
43         // glVertex234fid
44         glVertex2f(-0.5, -0.5);
45 
46         glColor3f(0, 1, 0);
47         glVertex2f(0.5, -0.5);
48 
49         glColor3f(0, 0, 1);
50         glVertex2f(0, 0.5);
51     glEnd();
52 
53     //交换缓存
54     glutSwapBuffers();
55 }
56 
57 //键盘事件回调函数
58 void keyboard(unsigned char c, int x, int y)
59 {
60     //ESC键
61     if (c == 27)
62     {
63         //退出程序
64         exit(0);
65     }
66 }
67 
68 //鼠标事件回调函数
69 void mouse(int button, int state, int x, int y)
70 {
71     //鼠标右键
72     if (button == GLUT_RIGHT_BUTTON)
73     {
74         exit(0);
75     }
76 }

在Mac下用用GLUT框架和OpenGL框架还是挺简单的,不需要去考虑平台和语言的区别。直接编译运行:

1 :clang++ BasicGlut.cpp -o BasicGlut -framework OpenGL -framework GLUT
2 :./BasicGlut

 

posted on 2013-10-09 11:04  排云鹤  阅读(275)  评论(0编辑  收藏  举报