7 static void disp(void);
8 static void idle(void);
9 static void reshape(int x, int y);
10 static void keydown(unsigned char c, int x, int y);
11 static void keyup(unsigned char c, int x, int y);
12 static void mouse(int bn, int st, int x, int y);
13 static void motion(int x, int y);
14 static void sball_button(int bn, int pressed);
16 static unsigned int start_time;
19 int main(int argc, char **argv)
21 glutInit(&argc, argv);
22 glutInitWindowSize(800, 600);
23 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
24 glutCreateWindow("o2demo");
26 glutDisplayFunc(disp);
28 glutReshapeFunc(reshape);
29 glutKeyboardFunc(keydown);
30 glutKeyboardUpFunc(keyup);
32 glutMotionFunc(motion);
33 glutSpaceballMotionFunc(demo_sball_motion);
34 glutSpaceballRotateFunc(demo_sball_rotate);
35 glutSpaceballButtonFunc(sball_button);
37 if(demo_init(argc, argv) == -1) {
42 start_time = glutGet(GLUT_ELAPSED_TIME);
53 unsigned int get_msec(void)
55 return glutGet(GLUT_ELAPSED_TIME) - start_time;
58 static void disp(void)
60 time_msec = get_msec();
65 assert(glGetError() == GL_NO_ERROR);
68 static void idle(void)
73 static void reshape(int x, int y)
77 win_aspect = (float)x / (float)y;
82 static void keydown(unsigned char c, int x, int y)
84 demo_keyboard((int)c, 1);
87 static void keyup(unsigned char c, int x, int y)
89 demo_keyboard((int)c, 0);
92 static void mouse(int bn, int st, int x, int y)
94 int bidx = bn - GLUT_LEFT_BUTTON;
95 int press = st == GLUT_DOWN ? 1 : 0;
96 demo_mbutton(bidx, press, x, y);
99 static void motion(int x, int y)
104 static void sball_button(int bn, int pressed)
106 demo_sball_button(bn - 1, pressed == GLUT_DOWN ? 1 : 0);