#ifdef G_OS_WIN32 #define WIN32_LEAN_AND_MEAN 1 #include #endif #include #include #include #include #include "menu.h" #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 void init_gl(void) { double l_dHalfWidth = SCREEN_WIDTH / 2; double l_dHalfHeight = SCREEN_HEIGHT / 2; glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); glMatrixMode(GL_PROJECTION); glOrtho(-l_dHalfWidth, l_dHalfWidth, -l_dHalfHeight, l_dHalfHeight, -1, 1 ); glMatrixMode(GL_MODELVIEW); } void render_scene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(1, 1, 1, 0); MenuRender(); glutSwapBuffers(); } void process_normal_keys(unsigned char key, int x, int y) { // escape if (key == 27) exit(0); } void process_special_keys(int key, int x, int y) { switch (key) { // do sumting } } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(SCREEN_WIDTH, SCREEN_HEIGHT); glutCreateWindow("Menu demo"); glutDisplayFunc(render_scene); glutIdleFunc(render_scene); glutKeyboardFunc(process_normal_keys); glutSpecialFunc(process_special_keys); init_gl(); MenuInit(); glutMainLoop(); return 0; }