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);
15 static unsigned int start_time;
18 int main(int argc, char **argv)
20 glutInit(&argc, argv);
21 glutInitWindowSize(800, 600);
22 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
23 glutCreateWindow("o2demo");
25 glutDisplayFunc(disp);
27 glutReshapeFunc(reshape);
28 glutKeyboardFunc(keydown);
29 glutKeyboardUpFunc(keyup);
31 glutMotionFunc(motion);
33 if(demo_init(argc, argv) == -1) {
38 start_time = glutGet(GLUT_ELAPSED_TIME);
49 unsigned int get_msec(void)
51 return glutGet(GLUT_ELAPSED_TIME) - start_time;
54 static void disp(void)
56 time_msec = get_msec();
61 assert(glGetError() == GL_NO_ERROR);
64 static void idle(void)
69 static void reshape(int x, int y)
73 win_aspect = (float)x / (float)y;
78 static void keydown(unsigned char c, int x, int y)
80 demo_keyboard((int)c, 1);
83 static void keyup(unsigned char c, int x, int y)
85 demo_keyboard((int)c, 0);
88 static void mouse(int bn, int st, int x, int y)
90 int bidx = bn - GLUT_LEFT_BUTTON;
91 int press = st == GLUT_DOWN ? 1 : 0;
92 demo_mbutton(bidx, press, x, y);
95 static void motion(int x, int y)