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