fixed windows build
[andemo] / src / pc / main_glut.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <assert.h>
4 #include "opengl.h"
5 #include "miniglut.h"
6 #include "demo.h"
7
8 static void display(void);
9 static void keypress(unsigned char key, int x, int y);
10 static void mouse(int bn, int st, int x, int y);
11
12 static long start_time;
13
14
15 int main(int argc, char **argv)
16 {
17         glutInit(&argc, argv);
18         glutInitWindowSize(1280, 800);
19         glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
20         glutCreateWindow("Mindlapse");
21
22         glutDisplayFunc(display);
23         glutIdleFunc(glutPostRedisplay);
24         glutReshapeFunc(demo_reshape);
25         glutKeyboardFunc(keypress);
26         glutMouseFunc(mouse);
27         glutMotionFunc(demo_motion);
28
29         if(demo_init() == -1) {
30                 return 1;
31         }
32         atexit(demo_cleanup);
33
34         start_time = glutGet(GLUT_ELAPSED_TIME);
35         glutMainLoop();
36         return 0;
37 }
38
39 static void display(void)
40 {
41         demo_time_msec = glutGet(GLUT_ELAPSED_TIME) - start_time;
42
43         demo_display();
44
45         glutSwapBuffers();
46         assert(glGetError() == GL_NO_ERROR);
47 }
48
49 static void keypress(unsigned char key, int x, int y)
50 {
51         if(key == 27) exit(0);
52
53         demo_keyboard(key, 1);
54 }
55
56 static void mouse(int bn, int st, int x, int y)
57 {
58         int bidx = bn - GLUT_LEFT_BUTTON;
59         int press = st == GLUT_DOWN;
60
61         demo_mouse(bidx, press, x, y);
62 }