home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / gl_dev.idb / usr / share / src / OpenGL / toolkits / libaux / aux.h.z / aux.h
Encoding:
C/C++ Source or Header  |  1996-03-15  |  5.8 KB  |  256 lines

  1. #ifndef __aux_h__
  2. #define __aux_h__
  3.  
  4. #include <X11/Xlib.h>
  5. #include <X11/Xutil.h>
  6. #include <GL/gl.h>
  7. #include <GL/glu.h>
  8.  
  9. /*
  10. ** ToolKit Window Types
  11. ** In the future, AUX_RGBA may be a combination of both RGB and ALPHA
  12. */
  13.  
  14. #define AUX_RGB        0
  15. #define AUX_RGBA    AUX_RGB
  16. #define AUX_INDEX    1
  17. #define AUX_SINGLE    0
  18. #define AUX_DOUBLE    2
  19. #define AUX_DIRECT    0
  20. #define AUX_INDIRECT    4
  21.  
  22. #define AUX_ACCUM    8
  23. #define AUX_ALPHA    16
  24. #define AUX_DEPTH    32
  25. #define AUX_STENCIL    512
  26. #define AUX_AUX        128
  27.  
  28.  
  29. /* 
  30. ** Window Masks
  31. */
  32.  
  33. #define AUX_WIND_IS_RGB(x)    (((x) & AUX_INDEX) == 0)
  34. #define AUX_WIND_IS_INDEX(x)    (((x) & AUX_INDEX) != 0)
  35. #define AUX_WIND_IS_SINGLE(x)    (((x) & AUX_DOUBLE) == 0)
  36. #define AUX_WIND_IS_DOUBLE(x)    (((x) & AUX_DOUBLE) != 0)
  37. #define AUX_WIND_IS_INDIRECT(x)    (((x) & AUX_INDIRECT) != 0)
  38. #define AUX_WIND_IS_DIRECT(x)    (((x) & AUX_INDIRECT) == 0)
  39. #define AUX_WIND_HAS_ACCUM(x)    (((x) & AUX_ACCUM) != 0)
  40. #define AUX_WIND_HAS_ALPHA(x)    (((x) & AUX_ALPHA) != 0)
  41. #define AUX_WIND_HAS_DEPTH(x)    (((x) & AUX_DEPTH) != 0)
  42. #define AUX_WIND_HAS_STENCIL(x)    (((x) & AUX_STENCIL) != 0)
  43.  
  44. /*
  45. ** Display Mode Selection Criteria
  46. */
  47.  
  48. enum {
  49.     AUX_USE_ID = 1,
  50.     AUX_EXACT_MATCH,
  51.     AUX_MINIMUM_CRITERIA
  52. };
  53.  
  54.  
  55. /*
  56. ** ToolKit Event Structure
  57. */
  58.  
  59. typedef struct _AUX_EVENTREC {
  60.     GLint event;
  61.     GLint data[4];
  62. } AUX_EVENTREC;
  63.  
  64. /* 
  65. ** ToolKit Event Types
  66. */
  67. #define AUX_EXPOSE    1
  68. #define AUX_CONFIG    2
  69. #define AUX_DRAW    4
  70. #define AUX_KEYEVENT    8
  71. #define AUX_MOUSEDOWN    16
  72. #define AUX_MOUSEUP    32    
  73. #define AUX_MOUSELOC    64
  74.  
  75. /*
  76. ** Toolkit Event Data Indices
  77. */
  78. #define AUX_WINDOWX        0
  79. #define AUX_WINDOWY        1
  80. #define AUX_MOUSEX        0
  81. #define AUX_MOUSEY        1
  82. #define AUX_MOUSESTATUS        3
  83. #define AUX_KEY            0
  84. #define AUX_KEYSTATUS        1
  85.  
  86. /*
  87. ** ToolKit Event Status Messages
  88. */
  89. #define    AUX_LEFTBUTTON        1
  90. #define    AUX_RIGHTBUTTON        2
  91. #define    AUX_MIDDLEBUTTON    4
  92. #define    AUX_SHIFT        1
  93. #define    AUX_CONTROL        2
  94.  
  95. /* 
  96. ** ToolKit Key Codes
  97. */
  98. #define AUX_RETURN        0x0D
  99. #define AUX_ESCAPE        0x1B
  100. #define AUX_SPACE        0x20
  101. #define AUX_LEFT        0x25
  102. #define AUX_UP            0x26
  103. #define AUX_RIGHT        0x27
  104. #define AUX_DOWN        0x28
  105. #define AUX_A            'A'
  106. #define AUX_B            'B'
  107. #define AUX_C            'C'
  108. #define AUX_D            'D'
  109. #define AUX_E            'E'
  110. #define AUX_F            'F'
  111. #define AUX_G            'G'
  112. #define AUX_H            'H'
  113. #define AUX_I            'I'
  114. #define AUX_J            'J'
  115. #define AUX_K            'K'
  116. #define AUX_L            'L'
  117. #define AUX_M            'M'
  118. #define AUX_N            'N'
  119. #define AUX_O            'O'
  120. #define AUX_P            'P'
  121. #define AUX_Q            'Q'
  122. #define AUX_R            'R'
  123. #define AUX_S            'S'
  124. #define AUX_T            'T'
  125. #define AUX_U            'U'
  126. #define AUX_V            'V'
  127. #define AUX_W            'W'
  128. #define AUX_X            'X'
  129. #define AUX_Y            'Y'
  130. #define AUX_Z            'Z'
  131. #define AUX_a            'a'
  132. #define AUX_b            'b'
  133. #define AUX_c            'c'
  134. #define AUX_d            'd'
  135. #define AUX_e            'e'
  136. #define AUX_f            'f'
  137. #define AUX_g            'g'
  138. #define AUX_h            'h'
  139. #define AUX_i            'i'
  140. #define AUX_j            'j'
  141. #define AUX_k            'k'
  142. #define AUX_l            'l'
  143. #define AUX_m            'm'
  144. #define AUX_n            'n'
  145. #define AUX_o            'o'
  146. #define AUX_p            'p'
  147. #define AUX_q            'q'
  148. #define AUX_r            'r'
  149. #define AUX_s            's'
  150. #define AUX_t            't'
  151. #define AUX_u            'u'
  152. #define AUX_v            'v'
  153. #define AUX_w            'w'
  154. #define AUX_x            'x'
  155. #define AUX_y            'y'
  156. #define AUX_z            'z'
  157. #define AUX_0            '0'
  158. #define AUX_1            '1'
  159. #define AUX_2            '2'
  160. #define AUX_3            '3'
  161. #define AUX_4            '4'
  162. #define AUX_5            '5'
  163. #define AUX_6            '6'
  164. #define AUX_7            '7'
  165. #define AUX_8            '8'
  166. #define AUX_9            '9'
  167.  
  168. /*
  169. ** ToolKit Gets and Sets
  170. */
  171. #define AUX_FD            1  /* return fd (long) */
  172. #define AUX_COLORMAP        3  /* pass buf of r, g and b (unsigned char) */
  173. #define AUX_GREYSCALEMAP    4
  174. #define AUX_FOGMAP        5  /* pass fog and color bits (long) */
  175. #define AUX_ONECOLOR        6  /* pass index, r, g, and b (long) */
  176.  
  177. /*
  178. ** Color Macros
  179. */
  180.  
  181. enum {
  182.     AUX_BLACK = 0,
  183.     AUX_RED,
  184.     AUX_GREEN,
  185.     AUX_YELLOW,
  186.     AUX_BLUE,
  187.     AUX_MAGENTA,
  188.     AUX_CYAN,
  189.     AUX_WHITE
  190. };
  191.  
  192. extern float auxRGBMap[8][3];
  193.  
  194. #define AUX_SETCOLOR(x, y) (AUX_WIND_IS_RGB((x)) ? \
  195.                    glColor3fv(auxRGBMap[(y)]) : glIndexf((y)))
  196.  
  197. /*
  198. ** Prototypes
  199. */
  200.  
  201. extern void auxInitDisplayMode(GLenum);
  202. extern void auxInitDisplayModePolicy( GLenum type);
  203. extern void auxInitDisplayModeID( GLint id);
  204. extern void auxInitPosition(int, int, int, int);
  205. extern GLenum auxInitWindow(char *);
  206. extern void auxCloseWindow(void);
  207. extern void auxQuit(void);
  208. extern void auxSwapBuffers(void);
  209.  
  210. extern Display *auxXDisplay(void);
  211. extern Window auxXWindow(void);
  212. extern int auxXScreen(void);
  213.  
  214. extern void auxMainLoop(void (*)());
  215. extern void auxExposeFunc(void (*)(int, int));
  216. extern void auxReshapeFunc(void (*)(int, int));
  217. extern void auxIdleFunc(void (*)());
  218. extern void auxKeyFunc(int, void (*)());
  219. extern void auxMouseFunc(int, int, void (*)(AUX_EVENTREC *));
  220.  
  221. extern int auxGetColorMapSize(void);
  222. extern void auxGetMouseLoc(int *, int *);
  223. extern GLenum auxGetDisplayModePolicy( void);
  224. extern GLint auxGetDisplayModeID( void);
  225. extern GLenum auxGetDisplayMode( void);
  226. extern long auxGetCurrentContext(void);
  227. extern void auxSetOneColor(int, float, float, float);
  228. extern void auxSetFogRamp(int, int);
  229. extern void auxSetGreyRamp(void);
  230. extern void auxSetRGBMap(int, float *);
  231.  
  232. extern void auxWireSphere(GLdouble);
  233. extern void auxSolidSphere(GLdouble);
  234. extern void auxWireCube(GLdouble);
  235. extern void auxSolidCube(GLdouble);
  236. extern void auxWireBox(GLdouble, GLdouble, GLdouble);
  237. extern void auxSolidBox(GLdouble, GLdouble, GLdouble);
  238. extern void auxWireTorus(GLdouble, GLdouble);
  239. extern void auxSolidTorus(GLdouble, GLdouble);
  240. extern void auxWireCylinder(GLdouble, GLdouble);
  241. extern void auxSolidCylinder(GLdouble, GLdouble);
  242. extern void auxWireIcosahedron(GLdouble);
  243. extern void auxSolidIcosahedron(GLdouble);
  244. extern void auxWireOctahedron(GLdouble);
  245. extern void auxSolidOctahedron(GLdouble);
  246. extern void auxWireTetrahedron(GLdouble);
  247. extern void auxSolidTetrahedron(GLdouble);
  248. extern void auxWireDodecahedron(GLdouble);
  249. extern void auxSolidDodecahedron(GLdouble);
  250. extern void auxWireCone(GLdouble, GLdouble);
  251. extern void auxSolidCone(GLdouble, GLdouble);
  252. extern void auxWireTeapot(GLdouble);
  253. extern void auxSolidTeapot(GLdouble);
  254.  
  255. #endif /* __aux_h__ */
  256.