1 #ifndef GLUT_H 2 #define GLUT_H 3 4 #include <tgl/gl.h> 5 #include <tgl/glu.h> 6 #include <tgl/gla.h> 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 /* Mouse buttons */ 13 #define GLUT_LEFT_BUTTON 0 14 #define GLUT_MIDDLE_BUTTON 1 15 #define GLUT_RIGHT_BUTTON 2 16 17 /* Mouse button state */ 18 #define GLUT_DOWN 0 19 #define GLUT_UP 1 20 21 /* function keys */ 22 #define GLUT_KEY_F1 1 23 #define GLUT_KEY_F2 2 24 #define GLUT_KEY_F3 3 25 #define GLUT_KEY_F4 4 26 #define GLUT_KEY_F5 5 27 #define GLUT_KEY_F6 6 28 #define GLUT_KEY_F7 7 29 #define GLUT_KEY_F8 8 30 #define GLUT_KEY_F9 9 31 #define GLUT_KEY_F10 10 32 #define GLUT_KEY_F11 11 33 #define GLUT_KEY_F12 12 34 /* directional keys */ 35 #define GLUT_KEY_LEFT 100 36 #define GLUT_KEY_UP 101 37 #define GLUT_KEY_RIGHT 102 38 #define GLUT_KEY_DOWN 103 39 #define GLUT_KEY_PAGE_UP 104 40 #define GLUT_KEY_PAGE_DOWN 105 41 #define GLUT_KEY_HOME 106 42 #define GLUT_KEY_END 107 43 #define GLUT_KEY_INSERT 108 44 45 /* Entry/exit state */ 46 #define GLUT_LEFT 0 47 #define GLUT_ENTERED 1 48 49 /* Visibility state */ 50 #define GLUT_NOT_VISIBLE 0 51 #define GLUT_VISIBLE 1 52 53 /* Display mode bit masks. */ 54 #define GLUT_RGB 0 55 #define GLUT_RGBA GLUT_RGB 56 #define GLUT_INDEX 1 57 #define GLUT_SINGLE 0 58 #define GLUT_DOUBLE 2 59 #define GLUT_ACCUM 4 60 #define GLUT_ALPHA 8 61 #define GLUT_DEPTH 16 62 #define GLUT_STENCIL 32 63 #define GLUT_MULTISAMPLE 128 64 #define GLUT_STEREO 256 65 #define GLUT_LUMINANCE 512 66 67 /* glutGet parameters */ 68 #define GLUT_WINDOW_X 100 69 #define GLUT_WINDOW_Y 101 70 #define GLUT_WINDOW_WIDTH 102 71 #define GLUT_WINDOW_HEIGHT 103 72 #define GLUT_WINDOW_DEPTH_SIZE 106 73 #define GLUT_WINDOW_DOUBLEBUFFER 115 74 #define GLUT_WINDOW_PARENT 117 75 #define GLUT_WINDOW_NUM_CHILDREN 118 76 #define GLUT_SCREEN_WIDTH 200 77 #define GLUT_SCREEN_HEIGHT 201 78 #define GLUT_SCREEN_WIDTH_MM 202 79 #define GLUT_SCREEN_HEIGHT_MM 203 80 #define GLUT_INIT_WINDOW_X 500 81 #define GLUT_INIT_WINDOW_Y 501 82 #define GLUT_INIT_WINDOW_WIDTH 502 83 #define GLUT_INIT_WINDOW_HEIGHT 503 84 #define GLUT_ELAPSED_TIME 700 85 86 /* glutGetModifiers return mask */ 87 #define GLUT_ACTIVE_SHIFT 1 88 #define GLUT_ACTIVE_CTRL 2 89 #define GLUT_ACTIVE_ALT 4 90 91 /* Stroke font constants (use these in GLUT program) */ 92 #define GLUT_STROKE_ROMAN ((void*)0) 93 #define GLUT_STROKE_MONO_ROMAN ((void*)1) 94 95 /* Bitmap font constants (use these in GLUT program) */ 96 #define GLUT_BITMAP_9_BY_15 ((void*)2) 97 #define GLUT_BITMAP_8_BY_13 ((void*)3) 98 #define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) 99 #define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) 100 #define GLUT_BITMAP_HELVETICA_10 ((void*)6) 101 #define GLUT_BITMAP_HELVETICA_12 ((void*)7) 102 #define GLUT_BITMAP_HELVETICA_18 ((void*)8) 103 104 105 #ifdef _NO_PPCINLINE 106 107 void glutInit(int *argcp, char **argv); 108 void glutInitWindowPosition(int x, int y); 109 void glutInitWindowSize(int width, int height); 110 int glutCreateWindow(char *name); 111 void glutFullScreen(void); 112 void glutSetWindow(int win); 113 int glutGetWindow(void); 114 void glutDestroyWindow(int win); 115 void glutSwapBuffers(void); 116 void glutMainLoop(void); 117 void glutPostRedisplay(void); 118 void glutDisplayFunc(void (*func)(void)); 119 void glutReshapeFunc(void (*func)(int width, int height)); 120 void glutIdleFunc(void (*func)(void)); 121 void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); 122 void glutKeyboardUpFunc (void (*func)(unsigned char key, int x, int y)); 123 void glutMouseFunc(void (*func)(int button, int state, int x, int y)); 124 void glutMotionFunc(void (*func)(int x, int y)); 125 void glutPassiveMotionFunc(void (*func)(int x, int y)); 126 void glutSpecialFunc(void (*func)(int key, int x, int y)); 127 void glutSpecialUpFunc(void (*func)(int key, int x, int y)); 128 void glutTimerFunc(int time, void (*func)(int value), int value); 129 void glutEntryFunc(void (*func)(int state)); 130 void glutVisibilityFunc(void (*func)(int state)); 131 void glutShowWindow(void); 132 void glutHideWindow(void); 133 void glutPositionWindow(int x, int y); 134 void glutReshapeWindow(int width, int height); 135 int glutGet(GLenum state); 136 int glutGetModifiers(void); 137 138 void *glutGetWindowHandle(GLContext *c); 139 140 void glutInitDisplayMode(unsigned int mode); 141 142 #else 143 144 #define glutInit(argc, argv) GLUTInit(__tglContext, argc, argv) 145 #define glutInitWindowPosition(x, y) GLUTInitWindowPosition(__tglContext, x, y) 146 #define glutInitWindowSize(width, height) GLUTInitWindowSize(__tglContext, width, height) 147 #define glutCreateWindow(name) GLUTCreateWindow(__tglContext, name) 148 #define glutFullScreen() GLUTFullScreen(__tglContext) 149 #define glutSetWindow(win) GLUTSetWindow(__tglContext, win) 150 #define glutGetWindow() GLUTGetWindow(__tglContext) 151 #define glutDestroyWindow(win) GLUTDestroyWindow(__tglContext, win) 152 #define glutSwapBuffers() GLUTSwapBuffers(__tglContext) 153 #define glutMainLoop() GLUTMainLoop(__tglContext) 154 #define glutPostRedisplay() GLUTPostRedisplay(__tglContext) 155 #define glutDisplayFunc(func) GLUTDisplayFunc(__tglContext, func) 156 #define glutReshapeFunc(func) GLUTReshapeFunc(__tglContext, func ) 157 #define glutIdleFunc(func) GLUTIdleFunc(__tglContext, func) 158 #define glutKeyboardFunc(func) GLUTKeyboardFunc(__tglContext, func) 159 #define glutKeyboardUpFunc(func) GLUTKeyboardUpFunc(__tglContext, func) 160 #define glutMouseFunc(func) GLUTMouseFunc(__tglContext, func) 161 #define glutMotionFunc(func) GLUTMotionFunc(__tglContext, func) 162 #define glutPassiveMotionFunc(func) GLUTPassiveMotionFunc(__tglContext, func) 163 #define glutSpecialFunc(func) GLUTSpecialFunc(__tglContext, func) 164 #define glutSpecialUpFunc(func) GLUTSpecialUpFunc(__tglContext, func) 165 #define glutVisibilityFunc(func) GLUTVisibilityFunc(__tglContext, func) 166 #define glutTimerFunc(time, func, val) GLUTTimerFunc(__tglContext, time, func, val) 167 #define glutEntryFunc(func) GLUTEntryFunc(__tglContext, func) 168 #define glutShowWindow() GLUTShowWindow(__tglContext) 169 #define glutHideWindow() GLUTHideWindow(__tglContext) 170 #define glutPositionWindow(x, y) GLUTPositionWindow(__tglContext, x, y) 171 #define glutReshapeWindow(w, h) GLUTReshapeWindow(__tglContext, w, h) 172 #define glutGet(state) GLUTGet(__tglContext, state) 173 #define glutInitDisplayMode(mode) GLUTInitDisplayMode(__tglContext, mode) 174 #define glutGetModifiers() GLUTGetModifiers(__tglContext) 175 #define glutGetWindowHandle() GLUTGetWindowHandle(__tglContext) 176 177 /* some dummy functions */ 178 179 #define glutSetColor(a, b, c, d) 180 181 #endif /* _NO_PPCINLINE */ 182 183 /* functions which reside in libtinyglut.a linked library */ 184 185 void glutBitmapCharacter(void *font, int character); 186 int glutBitmapWidth(void *font, int character); 187 void glutStrokeCharacter(void *font, int character); 188 int glutStrokeWidth(void *font, int character); 189 int glutBitmapLength(void *font, const unsigned char *string); 190 int glutStrokeLength(void *font, const unsigned char *string); 191 192 void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); 193 void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); 194 void glutWireCone(GLdouble base, GLdouble height,GLint slices, GLint stacks); 195 void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); 196 void glutWireCube(GLdouble size); 197 void glutSolidCube(GLdouble size); 198 void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 199 void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 200 void glutWireDodecahedron(void); 201 void glutSolidDodecahedron(void); 202 void glutWireOctahedron(void); 203 void glutSolidOctahedron(void); 204 void glutWireIcosahedron(void); 205 void glutSolidIcosahedron(void); 206 void glutWireTetrahedron(void); 207 void glutSolidTetrahedron(void); 208 209 void glutSolidTeapot(GLdouble scale); 210 void glutWireTeapot(GLdouble scale); 211 212 #ifdef __cplusplus 213 } 214 #endif 215 216 #endif /* GLUT_H */ 217