nuclear@0: #include nuclear@0: #include "opengl.h" nuclear@0: nuclear@0: #ifdef __APPLE__ nuclear@0: #include nuclear@0: #else nuclear@0: #include nuclear@0: #endif nuclear@0: nuclear@0: #include "app.h" nuclear@0: nuclear@0: static void display(); nuclear@0: static void reshape(int x, int y); nuclear@0: static void key_down(unsigned char key, int x, int y); nuclear@0: static void key_up(unsigned char key, int x, int y); nuclear@0: static void mouse(int bn, int state, int x, int y); nuclear@0: static void motion(int x, int y); nuclear@0: nuclear@0: static int win_width, win_height; nuclear@0: static unsigned int mod; nuclear@0: nuclear@0: int main(int argc, char **argv) nuclear@0: { nuclear@0: glutInit(&argc, argv); nuclear@0: nuclear@0: glutInitWindowSize(1280, 720); nuclear@0: glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); nuclear@0: glutCreateWindow("VR file manager"); nuclear@0: nuclear@0: glutDisplayFunc(display); nuclear@0: glutReshapeFunc(reshape); nuclear@0: glutKeyboardFunc(key_down); nuclear@0: glutKeyboardUpFunc(key_up); nuclear@0: glutMouseFunc(mouse); nuclear@0: glutMotionFunc(motion); nuclear@0: glutPassiveMotionFunc(motion); nuclear@0: nuclear@0: if(app_init() == -1) { nuclear@0: return 1; nuclear@0: } nuclear@0: nuclear@0: glutMainLoop(); nuclear@0: return 0; nuclear@0: } nuclear@0: nuclear@0: void swap_buffers() nuclear@0: { nuclear@0: glutSwapBuffers(); nuclear@0: } nuclear@0: nuclear@0: void redisplay() nuclear@0: { nuclear@0: glutPostRedisplay(); nuclear@0: } nuclear@0: nuclear@0: void quit() nuclear@0: { nuclear@0: app_shutdown(); nuclear@0: exit(0); nuclear@0: } nuclear@0: nuclear@0: void get_window_size(int *xsz, int *ysz) nuclear@0: { nuclear@0: *xsz = win_width; nuclear@0: *ysz = win_height; nuclear@0: } nuclear@0: nuclear@0: unsigned int get_modifiers() nuclear@0: { nuclear@0: return mod; nuclear@0: } nuclear@0: nuclear@0: static void display() nuclear@0: { nuclear@0: app_display(); nuclear@0: } nuclear@0: nuclear@0: static void reshape(int x, int y) nuclear@0: { nuclear@0: win_width = x; nuclear@0: win_height = y; nuclear@0: app_reshape(x, y); nuclear@0: } nuclear@0: nuclear@0: static void key_down(unsigned char key, int x, int y) nuclear@0: { nuclear@0: mod = glutGetModifiers(); nuclear@0: app_keyboard(key, true, x, y); nuclear@0: } nuclear@0: nuclear@0: static void key_up(unsigned char key, int x, int y) nuclear@0: { nuclear@0: mod = glutGetModifiers(); nuclear@0: app_keyboard(key, false, x, y); nuclear@0: } nuclear@0: nuclear@0: static void mouse(int bn, int state, int x, int y) nuclear@0: { nuclear@0: mod = glutGetModifiers(); nuclear@0: app_mouse_button(bn - GLUT_LEFT_BUTTON, state == GLUT_DOWN ? 1 : 0, x, y); nuclear@0: } nuclear@0: nuclear@0: static void motion(int x, int y) nuclear@0: { nuclear@0: app_mouse_motion(x, y); nuclear@0: }