glut_sl.pp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. {
  2. $Id$
  3. Translation of the GLUT headers for FreePascal
  4. Copyright (C) 1999 Sebastian Guenther
  5. Version for static linking in Win32 environment by Alexander Stohr.
  6. Latest change: 1999-11-13
  7. Further information:
  8. GLUT is a powerful toolkit for programming multiplatform OpenGL
  9. applications. It was designed by Mark J. Kilgard while working for SGI,
  10. he is now working for nVidia.
  11. }
  12. { this translation of the c header files is done by Sebastian Guenther 1999 }
  13. { version for static linking for Win32 platforms done by Alexander Stohr 1999 }
  14. {$MODE delphi}
  15. {You have to enable Macros (compiler switch "-Sm") for compiling this unit!
  16. This is necessary for supporting different platforms with different calling
  17. conventions via a single unit.}
  18. unit GLUT_SL; { version which does statically linking }
  19. interface
  20. uses GL_SL;
  21. {x$DEFINE GLUT_GAME} {enable if you need game mode sub api}
  22. {$MACRO ON}
  23. {$IFDEF Win32}
  24. {$DEFINE glut_dll := external 'glut32.dll'}
  25. {$DEFINE glut_callback := cdecl}
  26. {$DEFINE extdecl := }
  27. {$ELSE}
  28. {$MESSAGE Unsupported platform.}
  29. {$ENDIF}
  30. const
  31. // Display mode bit masks
  32. GLUT_RGB = 0;
  33. GLUT_RGBA = GLUT_RGB;
  34. GLUT_INDEX = 1;
  35. GLUT_SINGLE = 0;
  36. GLUT_DOUBLE = 2;
  37. GLUT_ACCUM = 4;
  38. GLUT_ALPHA = 8;
  39. GLUT_DEPTH = 16;
  40. GLUT_STENCIL = 32;
  41. GLUT_MULTISAMPLE = 128;
  42. GLUT_STEREO = 256;
  43. GLUT_LUMINANCE = 512;
  44. // Mouse buttons
  45. GLUT_LEFT_BUTTON = 0;
  46. GLUT_MIDDLE_BUTTON = 1;
  47. GLUT_RIGHT_BUTTON = 2;
  48. // Mouse button state
  49. GLUT_DOWN = 0;
  50. GLUT_UP = 1;
  51. // Keys ###
  52. // Enter / exit state
  53. GLUT_LEFT = 0;
  54. GLUT_ENTERED = 1;
  55. // Menu usage state
  56. GLUT_MENU_NOT_IN_USE = 0;
  57. GLUT_MENU_IN_USE = 1;
  58. // Visibility state
  59. GLUT_NOT_VISIBLE = 0;
  60. GLUT_VISIBLE = 1;
  61. // Window status state
  62. GLUT_HIDDEN = 0;
  63. GLUT_FULLY_RETAINED = 1;
  64. GLUT_PARTIALLY_RETAINED = 2;
  65. GLUT_FULLY_COVERED = 3;
  66. // Color index component selection values
  67. GLUT_RED = 0;
  68. GLUT_GREEN = 1;
  69. GLUT_BLUE = 2;
  70. // Layers for use
  71. GLUT_NORMAL = 0;
  72. GLUT_OVERLAY = 1;
  73. // Bitmap stuff###
  74. // glutGet parameters
  75. GLUT_WINDOW_X = 100;
  76. GLUT_WINDOW_Y = 101;
  77. GLUT_WINDOW_WIDTH = 102;
  78. GLUT_WINDOW_HEIGHT = 103;
  79. GLUT_WINDOW_BUFFER_SIZE = 104;
  80. GLUT_WINDOW_STENCIL_SIZE = 105;
  81. GLUT_WINDOW_DEPTH_SIZE = 106;
  82. GLUT_WINDOW_RED_SIZE = 107;
  83. GLUT_WINDOW_GREEN_SIZE = 108;
  84. GLUT_WINDOW_BLUE_SIZE = 109;
  85. GLUT_WINDOW_ALPHA_SIZE = 110;
  86. GLUT_WINDOW_ACCUM_RED_SIZE = 111;
  87. GLUT_WINDOW_ACCUM_GREEN_SIZE = 112;
  88. GLUT_WINDOW_ACCUM_BLUE_SIZE = 113;
  89. GLUT_WINDOW_ACCUM_ALPHA_SIZE = 114;
  90. GLUT_WINDOW_DOUBLEBUFFER = 115;
  91. GLUT_WINDOW_RGBA = 116;
  92. GLUT_WINDOW_PARENT = 117;
  93. GLUT_WINDOW_NUM_CHILDREN = 118;
  94. GLUT_WINDOW_COLORMAP_SIZE = 119;
  95. GLUT_WINDOW_NUM_SAMPLES = 120;
  96. GLUT_WINDOW_STEREO = 121;
  97. GLUT_WINDOW_CURSOR = 122;
  98. GLUT_SCREEN_WIDTH = 200;
  99. GLUT_SCREEN_HEIGHT = 201;
  100. GLUT_SCREEN_WIDTH_MM = 202;
  101. GLUT_SCREEN_HEIGHT_MM = 203;
  102. GLUT_MENU_NUM_ITEMS = 300;
  103. GLUT_DISPLAY_MODE_POSSIBLE = 400;
  104. GLUT_INIT_WINDOW_X = 500;
  105. GLUT_INIT_WINDOW_Y = 501;
  106. GLUT_INIT_WINDOW_WIDTH = 502;
  107. GLUT_INIT_WINDOW_HEIGHT = 503;
  108. GLUT_INIT_DISPLAY_MODE = 504;
  109. GLUT_ELAPSED_TIME = 700;
  110. GLUT_WINDOW_FORMAT_ID = 123;
  111. // glutDeviceGet parameters
  112. GLUT_HAS_KEYBOARD = 600;
  113. GLUT_HAS_MOUSE = 601;
  114. GLUT_HAS_SPACEBALL = 602;
  115. GLUT_HAS_DIAL_AND_BUTTON_BOX = 603;
  116. GLUT_HAS_TABLET = 604;
  117. GLUT_NUM_MOUSE_BUTTONS = 605;
  118. GLUT_NUM_SPACEBALL_BUTTONS = 606;
  119. GLUT_NUM_BUTTON_BOX_BUTTONS = 607;
  120. GLUT_NUM_DIALS = 608;
  121. GLUT_NUM_TABLET_BUTTONS = 609;
  122. GLUT_DEVICE_IGNORE_KEY_REPEAT = 610;
  123. GLUT_DEVICE_KEY_REPEAT = 611;
  124. GLUT_HAS_JOYSTICK = 612;
  125. GLUT_OWNS_JOYSTICK = 613;
  126. GLUT_JOYSTICK_BUTTONS = 614;
  127. GLUT_JOYSTICK_AXES = 615;
  128. GLUT_JOYSTICK_POLL_RATE = 616;
  129. // glutLayerGet parameters
  130. GLUT_OVERLAY_POSSIBLE = 800;
  131. GLUT_LAYER_IN_USE = 801;
  132. GLUT_HAS_OVERLAY = 802;
  133. GLUT_TRANSPARENT_INDEX = 803;
  134. GLUT_NORMAL_DAMAGED = 804;
  135. GLUT_OVERLAY_DAMAGED = 805;
  136. // glutVideoResizeGet parameters
  137. GLUT_VIDEO_RESIZE_POSSIBLE = 900;
  138. GLUT_VIDEO_RESIZE_IN_USE = 901;
  139. GLUT_VIDEO_RESIZE_X_DELTA = 902;
  140. GLUT_VIDEO_RESIZE_Y_DELTA = 903;
  141. GLUT_VIDEO_RESIZE_WIDTH_DELTA = 904;
  142. GLUT_VIDEO_RESIZE_HEIGHT_DELTA= 905;
  143. GLUT_VIDEO_RESIZE_X = 906;
  144. GLUT_VIDEO_RESIZE_Y = 907;
  145. GLUT_VIDEO_RESIZE_WIDTH = 908;
  146. GLUT_VIDEO_RESIZE_HEIGHT = 909;
  147. // glutGetModifiers return mask
  148. GLUT_ACTIVE_SHIFT = 1;
  149. GLUT_ACTIVE_CTRL = 2;
  150. GLUT_ACTIVE_ALT = 4;
  151. // Cursor stuff ###
  152. // GLUT window callback sub-API
  153. type
  154. TGlutDisplayFunc = procedure; extdecl
  155. TGlutReshapeFunc = procedure(width, height: Integer); extdecl
  156. TGlutTimerFunc = procedure(value: Integer); extdecl
  157. TGlutKeyboardFunc = procedure(key: char;x,y:Integer); extdecl
  158. TGlutIdleFunc = procedure; extdecl
  159. TGlutVisibilityFunc = procedure(state:Integer); extdecl
  160. // GLUT game mode sub-API
  161. {$ifdef GLUT_GAME}
  162. // glutGameModeGet
  163. const
  164. GLUT_GAME_MODE_ACTIVE = 0;
  165. GLUT_GAME_MODE_POSSIBLE = 1;
  166. GLUT_GAME_MODE_WIDTH = 2;
  167. GLUT_GAME_MODE_HEIGHT = 3;
  168. GLUT_GAME_MODE_PIXEL_DEPTH = 4;
  169. GLUT_GAME_MODE_REFRESH_RATE = 5;
  170. GLUT_GAME_MODE_DISPLAY_CHANGED= 6;
  171. {$endif GLUT_GAME}
  172. // GLUT initialization sub-API
  173. procedure glutInit(argcp: PInteger; argv: PPChar); glut_dll;
  174. procedure glutInitDisplayMode(mode: LongWord); glut_dll;
  175. procedure glutInitDisplayString(AString: PChar); glut_dll;
  176. procedure glutInitWindowPosition(x, y: Integer); glut_dll;
  177. procedure glutInitWindowSize(width, height: Integer); glut_dll;
  178. procedure glutMainLoop; glut_dll;
  179. // GLUT window sub-API
  180. function glutCreateWindow(title: PChar): Integer; glut_dll;
  181. function glutCreateSubWindow(win, x, y, width, height: Integer): Integer; glut_dll;
  182. procedure glutDestroyWindow(win: Integer); glut_dll;
  183. procedure glutPostRedisplay; glut_dll;
  184. procedure glutPostWindowRedisplay(win: Integer); glut_dll;
  185. procedure glutSwapBuffers; glut_dll;
  186. function glutGetWindow: Integer; glut_dll;
  187. procedure glutSetWindow(win: Integer); glut_dll;
  188. procedure glutSetWindowTitle(title: PChar); glut_dll;
  189. procedure glutSetIconTitle(title: PChar); glut_dll;
  190. procedure glutPositionWindow(x, y: Integer); glut_dll;
  191. procedure glutReshapeWindow(width, height: Integer); glut_dll;
  192. procedure glutPopWindow; glut_dll;
  193. procedure glutPushWindow; glut_dll;
  194. procedure glutIconifyWindow; glut_dll;
  195. procedure glutShowWindow; glut_dll;
  196. procedure glutHideWindow; glut_dll;
  197. procedure glutFullScreen; glut_dll;
  198. procedure glutSetCursor(cursor: Integer); glut_dll;
  199. procedure glutWarpPointer(x, y: Integer); glut_dll;
  200. //overlays ###
  201. //menus ###
  202. // GLUT window callback sub-API
  203. procedure glutDisplayFunc(func: TGlutDisplayFunc); glut_dll;
  204. procedure glutReshapeFunc(func: TGlutReshapeFunc); glut_dll;
  205. procedure glutTimerFunc(millis: LongWord; func: TGlutTimerFunc; value: longint); glut_dll;
  206. procedure glutKeyboardFunc(func: TGlutKeyboardFunc); glut_dll;
  207. procedure glutIdleFunc(func: TGlutIdleFunc); glut_dll;
  208. procedure glutVisibilityFunc(func: TGlutVisibilityFunc); glut_dll;
  209. // GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK * func)(void));
  210. // GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height));
  211. // GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
  212. // GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  213. // GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  214. // GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  215. // GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK * func)(int state));
  216. // GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK * func)(int state));
  217. // GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK * func)(void));
  218. // GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK * func)(int value), int value);
  219. // GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK * func)(int state));
  220. // GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
  221. // GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  222. // GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  223. // GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK * func)(int button, int state));
  224. // GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK * func)(int button, int state));
  225. // GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK * func)(int dial, int value));
  226. // GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  227. // GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  228. // GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK * func)(int status, int x, int y));
  229. // GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK * func)(void));
  230. // GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK * func)(int state));
  231. // GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
  232. // GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
  233. // GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK * func)(unsigned int buttonMask, int x, int y, int z), int pollInterval)
  234. // GLUT color index sub-API
  235. procedure glutSetColor(index: Integer; red, green, blue: Single); glut_dll;
  236. function glutGetColor(ndx, component: Integer): Single; glut_dll;
  237. procedure glutCopyColormap(win: Integer); glut_dll;
  238. // GLUT state retrieval sub-API
  239. function glutGet(AType: GLEnum): Integer; glut_dll;
  240. function glutDeviceGet(AType: GLEnum): Integer; glut_dll;
  241. function glutExtensionSupported(name: PChar): Integer; glut_dll;
  242. function glutGetModifiers: Integer; glut_dll;
  243. function glutLayerGet(AType: GLEnum): Integer; glut_dll;
  244. // fonts ###
  245. // pre-built models ###
  246. // video resize ###
  247. // debugging ###
  248. // device control ###
  249. // GLUT game mode sub-API
  250. {$ifdef GLUT_GAME} glut_dll;
  251. procedure glutGameModeString(AString: PChar); glut_dll;
  252. function glutEnterGameMode: Integer; glut_dll;
  253. procedure glutLeaveGameMode; glut_dll;
  254. function glutGameModeGet(mode: GLEnum): Integer; glut_dll;
  255. {$endif GLUT_GAME} glut_dll;
  256. implementation
  257. {begin{of init}
  258. end.
  259. {
  260. $Log$
  261. Revision 1.3 2000-10-01 22:17:59 peter
  262. * new bounce demo
  263. Revision 1.1.2.2 2000/10/01 22:12:28 peter
  264. * new demo
  265. }