home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / patches / mesa3.1 / mesa-glut.lha / include / GL / glut_h.dja next >
Encoding:
Text File  |  1999-09-01  |  13.8 KB  |  353 lines

  1. /* $Id*/
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  3.1
  6.  * Copyright (C) 1995-1998  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * $Log: glut_h.dja,v $
  26.  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg
  27.  * Imported sources
  28.  *
  29.  * Revision 1.1  1999/06/23 00:51:27  brianp
  30.  * initial check-in
  31.  *
  32.  */
  33.  
  34.  
  35. /*
  36.  * This header file is based on the REAL glut.h by Mark J. Kilgard.
  37.  *
  38.  * The DJGPP/ALLEGRO (DJA) GLUT implementation was written by
  39.  * Bernhard Tschirren (bernie-t@geocities.com) for the sole purpose
  40.  * of compiling all the sample programs (which use GLUT). Therefore,
  41.  * is NOT AT ALL a complete version of GLUT!
  42.  */
  43.  
  44.  
  45. #ifndef __AGLUT_H__
  46. #define __AGLUT_H__
  47.  
  48. #include <GL/gl.h>
  49. #include <GL/glu.h>
  50.  
  51. #define GLUTCALLBACK
  52. #define APIENTRY
  53. #define GLUTAPI             extern
  54.  
  55. #define GLUT_RGB            0
  56. #define GLUT_RGBA            GLUT_RGB
  57. #define GLUT_INDEX            1
  58. #define GLUT_SINGLE            0
  59. #define GLUT_DOUBLE            2
  60. #define GLUT_ACCUM            4
  61. #define GLUT_ALPHA            8
  62. #define GLUT_DEPTH            16
  63. #define GLUT_STENCIL        32
  64.  
  65. /* Mouse buttons. */
  66. #define GLUT_LEFT_BUTTON    0
  67. #define GLUT_MIDDLE_BUTTON  1
  68. #define GLUT_RIGHT_BUTTON   2
  69.  
  70. /* Mouse button  state. */
  71. #define GLUT_DOWN            0
  72. #define GLUT_UP                1
  73.  
  74. /* function keys */
  75. #define GLUT_KEY_F1            1
  76. #define GLUT_KEY_F2            2
  77. #define GLUT_KEY_F3            3
  78. #define GLUT_KEY_F4            4
  79. #define GLUT_KEY_F5            5
  80. #define GLUT_KEY_F6            6
  81. #define GLUT_KEY_F7            7
  82. #define GLUT_KEY_F8            8
  83. #define GLUT_KEY_F9            9
  84. #define GLUT_KEY_F10        10
  85. #define GLUT_KEY_F11        11
  86. #define GLUT_KEY_F12        12
  87.  
  88. /* directional keys */
  89. #define GLUT_KEY_LEFT       100
  90. #define GLUT_KEY_UP            101
  91. #define GLUT_KEY_RIGHT      102
  92. #define GLUT_KEY_DOWN       103
  93. #define GLUT_KEY_PAGE_UP    104
  94. #define GLUT_KEY_PAGE_DOWN  105
  95. #define GLUT_KEY_HOME       106
  96. #define GLUT_KEY_END        107
  97. #define GLUT_KEY_INSERT     108
  98.  
  99. /* Entry/exit  state. */
  100. #define GLUT_LEFT            0
  101. #define GLUT_ENTERED        1
  102.  
  103. /* Visibility  state. */
  104. #define GLUT_NOT_VISIBLE    0
  105. #define GLUT_VISIBLE        1
  106.  
  107. /* Color index component selection values. */
  108. #define GLUT_RED            0
  109. #define GLUT_GREEN            1
  110. #define GLUT_BLUE            2
  111.  
  112. /* Layers for use. */
  113. #define GLUT_NORMAL            0
  114. #define GLUT_OVERLAY        1
  115.  
  116. /* Stroke font constants (use these in GLUT program). */
  117. #define GLUT_STROKE_ROMAN           ((void*)0)
  118. #define GLUT_STROKE_MONO_ROMAN        ((void*)1)
  119.  
  120. /* Bitmap font constants (use these in GLUT program). */
  121. #define GLUT_BITMAP_9_BY_15         ((void*)2)
  122. #define GLUT_BITMAP_8_BY_13         ((void*)3)
  123. #define GLUT_BITMAP_TIMES_ROMAN_10    ((void*)4)
  124. #define GLUT_BITMAP_TIMES_ROMAN_24    ((void*)5)
  125. #define GLUT_BITMAP_HELVETICA_10    ((void*)6)
  126. #define GLUT_BITMAP_HELVETICA_12    ((void*)7)
  127. #define GLUT_BITMAP_HELVETICA_18    ((void*)8)
  128.  
  129. /* glutGet parameters. */
  130. #define GLUT_WINDOW_X                   100
  131. #define GLUT_WINDOW_Y                   101
  132. #define GLUT_WINDOW_WIDTH               102
  133. #define GLUT_WINDOW_HEIGHT              103
  134. #define GLUT_WINDOW_BUFFER_SIZE         104
  135. #define GLUT_WINDOW_STENCIL_SIZE        105
  136. #define GLUT_WINDOW_DEPTH_SIZE          106
  137. #define GLUT_WINDOW_RED_SIZE            107
  138. #define GLUT_WINDOW_GREEN_SIZE          108
  139. #define GLUT_WINDOW_BLUE_SIZE           109
  140. #define GLUT_WINDOW_ALPHA_SIZE          110
  141. #define GLUT_WINDOW_ACCUM_RED_SIZE      111
  142. #define GLUT_WINDOW_ACCUM_GREEN_SIZE    112
  143. #define GLUT_WINDOW_ACCUM_BLUE_SIZE     113
  144. #define GLUT_WINDOW_ACCUM_ALPHA_SIZE    114
  145. #define GLUT_WINDOW_DOUBLEBUFFER        115
  146. #define GLUT_WINDOW_RGBA                116
  147. #define GLUT_WINDOW_PARENT              117
  148. #define GLUT_WINDOW_NUM_CHILDREN        118
  149. #define GLUT_WINDOW_COLORMAP_SIZE       119
  150. #define GLUT_WINDOW_NUM_SAMPLES         120
  151. #define GLUT_WINDOW_STEREO              121
  152. #define GLUT_WINDOW_CURSOR              122
  153. #define GLUT_SCREEN_WIDTH               200
  154. #define GLUT_SCREEN_HEIGHT              201
  155. #define GLUT_SCREEN_WIDTH_MM            202
  156. #define GLUT_SCREEN_HEIGHT_MM           203
  157. #define GLUT_MENU_NUM_ITEMS             300
  158. #define GLUT_DISPLAY_MODE_POSSIBLE      400
  159. #define GLUT_INIT_WINDOW_X              500
  160. #define GLUT_INIT_WINDOW_Y              501
  161. #define GLUT_INIT_WINDOW_WIDTH          502
  162. #define GLUT_INIT_WINDOW_HEIGHT         503
  163. #define GLUT_INIT_DISPLAY_MODE          504
  164. #define GLUT_ELAPSED_TIME               700
  165. #define GLUT_WINDOW_FORMAT_ID           123
  166.  
  167. /* glutDeviceGet parameters. */
  168. #define GLUT_HAS_KEYBOARD               600
  169. #define GLUT_HAS_MOUSE                  601
  170. #define GLUT_HAS_SPACEBALL              602
  171. #define GLUT_HAS_DIAL_AND_BUTTON_BOX    603
  172. #define GLUT_HAS_TABLET                 604
  173. #define GLUT_NUM_MOUSE_BUTTONS          605
  174. #define GLUT_NUM_SPACEBALL_BUTTONS      606
  175. #define GLUT_NUM_BUTTON_BOX_BUTTONS     607
  176. #define GLUT_NUM_DIALS                  608
  177. #define GLUT_NUM_TABLET_BUTTONS         609
  178. #define GLUT_DEVICE_IGNORE_KEY_REPEAT   610
  179. #define GLUT_DEVICE_KEY_REPEAT          611
  180. #define GLUT_HAS_JOYSTICK               612
  181. #define GLUT_OWNS_JOYSTICK              613
  182. #define GLUT_JOYSTICK_BUTTONS           614
  183. #define GLUT_JOYSTICK_AXES              615
  184. #define GLUT_JOYSTICK_POLL_RATE         616
  185.  
  186. /* glutLayerGet parameters. */
  187. #define GLUT_OVERLAY_POSSIBLE           800
  188. #define GLUT_LAYER_IN_USE               801
  189. #define GLUT_HAS_OVERLAY                802
  190. #define GLUT_TRANSPARENT_INDEX          803
  191. #define GLUT_NORMAL_DAMAGED             804
  192. #define GLUT_OVERLAY_DAMAGED            805
  193.  
  194. /* glutVideoResizeGet parameters. */
  195. #define GLUT_VIDEO_RESIZE_POSSIBLE      900
  196. #define GLUT_VIDEO_RESIZE_IN_USE        901
  197. #define GLUT_VIDEO_RESIZE_X_DELTA       902
  198. #define GLUT_VIDEO_RESIZE_Y_DELTA       903
  199. #define GLUT_VIDEO_RESIZE_WIDTH_DELTA    904
  200. #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA    905
  201. #define GLUT_VIDEO_RESIZE_X             906
  202. #define GLUT_VIDEO_RESIZE_Y             907
  203. #define GLUT_VIDEO_RESIZE_WIDTH         908
  204. #define GLUT_VIDEO_RESIZE_HEIGHT        909
  205.  
  206. /* glutUseLayer parameters. */
  207. #define GLUT_NORMAL                     0
  208. #define GLUT_OVERLAY                    1
  209.  
  210. /* glutGetModifiers return mask. */
  211. #define GLUT_ACTIVE_SHIFT               1
  212. #define GLUT_ACTIVE_CTRL                2
  213. #define GLUT_ACTIVE_ALT                 4
  214.  
  215. /* glutSetCursor parameters. */
  216. /* Basic arrows. */
  217. #define GLUT_CURSOR_RIGHT_ARROW         0
  218. #define GLUT_CURSOR_LEFT_ARROW          1
  219. /* Symbolic cursor shapes. */
  220. #define GLUT_CURSOR_INFO                2
  221. #define GLUT_CURSOR_DESTROY             3
  222. #define GLUT_CURSOR_HELP                4
  223. #define GLUT_CURSOR_CYCLE               5
  224. #define GLUT_CURSOR_SPRAY               6
  225. #define GLUT_CURSOR_WAIT                7
  226. #define GLUT_CURSOR_TEXT                8
  227. #define GLUT_CURSOR_CROSSHAIR           9
  228. /* Directional cursors. */
  229. #define GLUT_CURSOR_UP_DOWN             10
  230. #define GLUT_CURSOR_LEFT_RIGHT          11
  231. /* Sizing cursors. */
  232. #define GLUT_CURSOR_TOP_SIDE            12
  233. #define GLUT_CURSOR_BOTTOM_SIDE         13
  234. #define GLUT_CURSOR_LEFT_SIDE           14
  235. #define GLUT_CURSOR_RIGHT_SIDE          15
  236. #define GLUT_CURSOR_TOP_LEFT_CORNER     16
  237. #define GLUT_CURSOR_TOP_RIGHT_CORNER    17
  238. #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER    18
  239. #define GLUT_CURSOR_BOTTOM_LEFT_CORNER    19
  240. /* Inherit from parent window. */
  241. #define GLUT_CURSOR_INHERIT             100
  242. /* Blank cursor. */
  243. #define GLUT_CURSOR_NONE                101
  244. /* Fullscreen crosshair (if available). */
  245. #define GLUT_CURSOR_FULL_CROSSHAIR      102
  246.  
  247. /* GLUT initialization sub-API. */
  248. GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
  249. GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
  250. GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
  251. GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
  252. GLUTAPI void APIENTRY glutMainLoop(void);
  253.  
  254. /* GLUT window sub-API. */
  255. GLUTAPI int APIENTRY glutCreateWindow(const char *title);
  256. GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
  257. GLUTAPI void APIENTRY glutDestroyWindow(int win);
  258. GLUTAPI void APIENTRY glutPostRedisplay(void);
  259. GLUTAPI void APIENTRY glutSwapBuffers(void);
  260. GLUTAPI int APIENTRY glutGetWindow(void);
  261. GLUTAPI void APIENTRY glutSetWindow(int win);
  262. GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
  263. GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
  264. GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
  265. GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
  266. GLUTAPI void APIENTRY glutPopWindow(void);
  267. GLUTAPI void APIENTRY glutPushWindow(void);
  268. GLUTAPI void APIENTRY glutIconifyWindow(void);
  269. GLUTAPI void APIENTRY glutShowWindow(void);
  270. GLUTAPI void APIENTRY glutHideWindow(void);
  271.  
  272. /* GLUT overlay sub-API. */
  273. GLUTAPI void APIENTRY glutEstablishOverlay(void);
  274. GLUTAPI void APIENTRY glutRemoveOverlay(void);
  275. GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
  276. GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
  277. GLUTAPI void APIENTRY glutShowOverlay(void);
  278. GLUTAPI void APIENTRY glutHideOverlay(void);
  279.  
  280. /* GLUT menu sub-API. */
  281. GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *)(int));
  282. GLUTAPI void APIENTRY glutDestroyMenu(int menu);
  283. GLUTAPI int APIENTRY glutGetMenu(void);
  284. GLUTAPI void APIENTRY glutSetMenu(int menu);
  285. GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value);
  286. GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu);
  287. GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
  288. GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
  289. GLUTAPI void APIENTRY glutRemoveMenuItem(int item);
  290. GLUTAPI void APIENTRY glutAttachMenu(int button);
  291. GLUTAPI void APIENTRY glutDetachMenu(int button);
  292.  
  293. /* GLUT window callback sub-API. */
  294. GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK * func)(void));
  295. GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height));
  296. GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
  297. GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  298. GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  299. GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  300. GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK * func)(int state));
  301. GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK * func)(int state));
  302. GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK * func)(void));
  303. GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK * func)(int value), int value);
  304. GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK * func)(int state));
  305. GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
  306. GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  307. GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  308. GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK * func)(int button, int state));
  309. GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK * func)(int button, int state));
  310. GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK * func)(int dial, int value));
  311. GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  312. GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  313. GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK * func)(int status, int x, int y));
  314. GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK * func)(void));
  315. GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK * func)(int state));
  316.  
  317. /* GLUT color index sub-API. */
  318. GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
  319. GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component);
  320. GLUTAPI void APIENTRY glutCopyColormap(int win);
  321.  
  322. /* GLUT state retrieval sub-API. */
  323. GLUTAPI int APIENTRY glutGet(GLenum type);
  324. GLUTAPI int APIENTRY glutDeviceGet(GLenum type);
  325.  
  326. /* GLUT font sub-API */
  327. GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character);
  328. GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character);
  329. GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character);
  330. GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character);
  331.  
  332. /* GLUT pre-built models sub-API */
  333. GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
  334. GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
  335. GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
  336. GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
  337. GLUTAPI void APIENTRY glutWireCube(GLdouble size);
  338. GLUTAPI void APIENTRY glutSolidCube(GLdouble size);
  339. GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
  340. GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
  341. GLUTAPI void APIENTRY glutWireDodecahedron(void);
  342. GLUTAPI void APIENTRY glutSolidDodecahedron(void);
  343. GLUTAPI void APIENTRY glutWireTeapot(GLdouble size);
  344. GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size);
  345. GLUTAPI void APIENTRY glutWireOctahedron(void);
  346. GLUTAPI void APIENTRY glutSolidOctahedron(void);
  347. GLUTAPI void APIENTRY glutWireTetrahedron(void);
  348. GLUTAPI void APIENTRY glutSolidTetrahedron(void);
  349. GLUTAPI void APIENTRY glutWireIcosahedron(void);
  350. GLUTAPI void APIENTRY glutSolidIcosahedron(void);
  351.  
  352. #endif /* __AGLUT_H__ */
  353.