nuclear@3: #include nuclear@3: #include nuclear@3: #include nuclear@3: #include nuclear@3: #include "opengl.h" nuclear@3: nuclear@3: #ifdef __APPLE__ nuclear@3: #include nuclear@3: #else nuclear@3: #include nuclear@3: #endif nuclear@3: nuclear@3: #include "game.h" nuclear@3: nuclear@3: static void display(void); nuclear@3: static void idle(void); nuclear@3: static void reshape(int x, int y); nuclear@3: static void key_down(unsigned char key, int x, int y); nuclear@3: static void key_up(unsigned char key, int x, int y); nuclear@3: static void mouse(int bn, int state, int x, int y); nuclear@3: static void motion(int x, int y); nuclear@3: nuclear@3: int main(int argc, char **argv) nuclear@3: { nuclear@3: glutInit(&argc, argv); nuclear@3: glutInitWindowSize(1280, 800); nuclear@3: glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); nuclear@3: glutCreateWindow("labyrinth game example"); nuclear@3: nuclear@3: glutDisplayFunc(display); nuclear@3: glutIdleFunc(idle); nuclear@3: glutReshapeFunc(reshape); nuclear@3: glutKeyboardFunc(key_down); nuclear@3: glutKeyboardUpFunc(key_up); nuclear@3: glutMouseFunc(mouse); nuclear@3: glutMotionFunc(motion); nuclear@3: glutPassiveMotionFunc(motion); nuclear@3: nuclear@3: glewInit(); nuclear@3: nuclear@3: if(game_init() == -1) { nuclear@3: return 1; nuclear@3: } nuclear@3: glutMainLoop(); nuclear@3: return 0; nuclear@3: } nuclear@3: nuclear@3: void set_mouse_pos(int x, int y) nuclear@3: { nuclear@3: glutWarpPointer(x, y); nuclear@3: } nuclear@3: nuclear@3: void set_mouse_cursor(int enable) nuclear@3: { nuclear@3: glutSetCursor(enable ? GLUT_CURSOR_INHERIT : GLUT_CURSOR_NONE); nuclear@3: } nuclear@3: nuclear@3: static void display(void) nuclear@3: { nuclear@3: game_display(glutGet(GLUT_ELAPSED_TIME)); nuclear@3: nuclear@3: glutSwapBuffers(); nuclear@3: assert(glGetError() == GL_NO_ERROR); nuclear@3: } nuclear@3: nuclear@3: static void idle(void) nuclear@3: { nuclear@3: glutPostRedisplay(); nuclear@3: } nuclear@3: nuclear@3: static void reshape(int x, int y) nuclear@3: { nuclear@3: game_reshape(x, y); nuclear@3: } nuclear@3: nuclear@3: static void key_down(unsigned char key, int x, int y) nuclear@3: { nuclear@3: game_keyboard(key, 1); nuclear@3: } nuclear@3: nuclear@3: static void key_up(unsigned char key, int x, int y) nuclear@3: { nuclear@3: game_keyboard(key, 0); nuclear@3: } nuclear@3: nuclear@3: static void mouse(int bn, int state, int x, int y) nuclear@3: { nuclear@3: game_mouse_button(0, bn - GLUT_LEFT_BUTTON, state == GLUT_DOWN ? 1 : 0, x, y); nuclear@3: } nuclear@3: nuclear@3: static void motion(int x, int y) nuclear@3: { nuclear@3: game_mouse_motion(0, x, y); nuclear@3: }