eleni@0: #include eleni@0: #include eleni@0: eleni@0: #include eleni@0: #include eleni@0: eleni@0: //static void init(void); eleni@0: static void display(void); eleni@0: static void reshape(int x, int y); eleni@0: static void keyboard(unsigned char key, int x, int y); eleni@0: static void mouse(int button, int state, int x, int y); eleni@0: static void motion(int x, int y); eleni@0: eleni@0: static int win_xsz, win_ysz; eleni@0: eleni@0: int main(int argc, char **argv) eleni@0: { eleni@0: glutInit(&argc, argv); eleni@0: glutInitWindowSize(1280, 720); eleni@0: glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); eleni@0: eleni@0: //TODO parse arguments eleni@0: eleni@0: glutCreateWindow("My Colonoscopie OEO!"); eleni@0: eleni@0: glutDisplayFunc(display); eleni@0: glutReshapeFunc(reshape); eleni@0: glutKeyboardFunc(keyboard); eleni@0: glutMouseFunc(mouse); eleni@0: glutMotionFunc(motion); eleni@0: eleni@0: glewInit(); eleni@0: eleni@0: //call init eleni@0: eleni@0: glutMainLoop(); eleni@0: return 0; eleni@0: } eleni@0: eleni@0: int init(void) eleni@0: { eleni@0: //TODO eleni@0: return 0; eleni@0: } eleni@0: eleni@0: void display(void) eleni@0: { eleni@0: //render eleni@0: eleni@0: glutSwapBuffers(); eleni@0: assert(glGetError() == GL_NO_ERROR); eleni@0: } eleni@0: eleni@0: void reshape(int x, int y) eleni@0: { eleni@0: glViewport(0, 0, x, y); eleni@0: if(x != win_xsz || y != win_ysz) { eleni@0: //TODO raytex_needs_recalc = 1; eleni@0: win_xsz = x; eleni@0: win_ysz = y; eleni@0: } eleni@0: } eleni@0: eleni@0: void keyboard(unsigned char key, int x, int y) eleni@0: { eleni@0: switch(key) { eleni@0: case 27: eleni@0: exit(0); eleni@0: default: eleni@0: break; eleni@0: } eleni@0: } eleni@0: eleni@0: static int prev_x, prev_y; eleni@0: void mouse(int bn, int state, int x, int y) eleni@0: { eleni@0: prev_x = x; eleni@0: prev_y = y; eleni@0: } eleni@0: eleni@0: void motion(int x, int y) eleni@0: { eleni@0: int dx = x - prev_x; eleni@0: int dy = y - prev_y; eleni@0: prev_x = x; eleni@0: prev_y = y; eleni@0: }