00001 #include <stdio.h>
00002 #include <stdlib.h>
00003 #include <string.h>
00004 #ifdef WIN32
00005 #include <windows.h>
00006 #else
00007 #include <unistd.h>
00008 #endif
00009 #include <math.h>
00010 #include <GL/glut.h>
00011 #include <plib/pu.h>
00012
00013 #include "common_gui_funcs.h"
00014 #include "common_vars_gui.h"
00015
00016 void mouse_motionfn(int x, int y);
00017 void mmotionfn ( int x, int y )
00018 {
00019 puMouse ( x, y ) ;
00020 glutPostRedisplay () ;
00021 }
00022
00023
00024 void reshape ( int w, int h )
00025 {
00026 glViewport ( 0, 0, w, h ) ;
00027 display_height = h;
00028 display_width = w;
00029 }
00030
00031 void mousefn (int button, int updown, int x, int y);
00032 void mmousefn ( int button, int updown, int x, int y )
00033 {
00034 puMouse ( button, updown, x, y ) ;
00035 glutPostRedisplay () ;
00036 }
00037
00038 void displayfn();
00039 void mdisplayfn ()
00040 {
00041 glClearColor ( 0.1, 0.4, 0.7, 1.0 ) ;
00042 glClear ( GL_COLOR_BUFFER_BIT ) ;
00043
00044 puDisplay () ;
00045
00046 glutSwapBuffers () ;
00047 glutPostRedisplay () ;
00048 }
00049
00050 void keyfn(unsigned char, int, int);
00051
00052 void _register_glutfuncs_menuonly() {
00053 glutDisplayFunc ( mdisplayfn ) ;
00054 glutMouseFunc ( mmousefn ) ;
00055 glutMotionFunc ( mmotionfn ) ;
00056 glutKeyboardFunc ( mkeyfn ) ;
00057 glutReshapeFunc ( reshape ) ;
00058 }
00059
00060 void _register_glutfuncs_game() {
00061 glutDisplayFunc ( displayfn ) ;
00062 glutMouseFunc ( mousefn ) ;
00063 glutMotionFunc ( mouse_motionfn ) ;
00064 glutPassiveMotionFunc(mouse_motionfn);
00065 glutKeyboardFunc ( keyfn ) ;
00066 }
00067
00068
00069 void mkeyfn ( unsigned char key, int, int )
00070 {
00071 puKeyboard ( key, PU_DOWN ) ;
00072 glutPostRedisplay () ;
00073 }
00074
00075 void _clear_total_menu (){
00076 if (total_menu != NULL) {
00077 total_menu->hide();
00078 delete total_menu;
00079 }
00080 total_menu = NULL;
00081 }
00082
00083