glut.def 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. # This is the definition file for all GLUT stuff
  2. %COPY_INTERFACE
  3. const
  4. // Display mode bit masks
  5. GLUT_RGB = 0;
  6. GLUT_RGBA = GLUT_RGB;
  7. GLUT_INDEX = 1;
  8. GLUT_SINGLE = 0;
  9. GLUT_DOUBLE = 2;
  10. GLUT_ACCUM = 4;
  11. GLUT_ALPHA = 8;
  12. GLUT_DEPTH = 16;
  13. GLUT_STENCIL = 32;
  14. GLUT_MULTISAMPLE = 128;
  15. GLUT_STEREO = 256;
  16. GLUT_LUMINANCE = 512;
  17. // Mouse buttons
  18. GLUT_LEFT_BUTTON = 0;
  19. GLUT_MIDDLE_BUTTON = 1;
  20. GLUT_RIGHT_BUTTON = 2;
  21. // Mouse button state
  22. GLUT_DOWN = 0;
  23. GLUT_UP = 1;
  24. // Keys ###
  25. // Enter / exit state
  26. GLUT_LEFT = 0;
  27. GLUT_ENTERED = 1;
  28. // Menu usage state
  29. GLUT_MENU_NOT_IN_USE = 0;
  30. GLUT_MENU_IN_USE = 1;
  31. // Visibility state
  32. GLUT_NOT_VISIBLE = 0;
  33. GLUT_VISIBLE = 1;
  34. // Window status state
  35. GLUT_HIDDEN = 0;
  36. GLUT_FULLY_RETAINED = 1;
  37. GLUT_PARTIALLY_RETAINED = 2;
  38. GLUT_FULLY_COVERED = 3;
  39. // Color index component selection values
  40. GLUT_RED = 0;
  41. GLUT_GREEN = 1;
  42. GLUT_BLUE = 2;
  43. // Layers for use
  44. GLUT_NORMAL = 0;
  45. GLUT_OVERLAY = 1;
  46. // Bitmap stuff###
  47. // glutGet parameters
  48. GLUT_WINDOW_X = 100;
  49. GLUT_WINDOW_Y = 101;
  50. GLUT_WINDOW_WIDTH = 102;
  51. GLUT_WINDOW_HEIGHT = 103;
  52. GLUT_WINDOW_BUFFER_SIZE = 104;
  53. GLUT_WINDOW_STENCIL_SIZE = 105;
  54. GLUT_WINDOW_DEPTH_SIZE = 106;
  55. GLUT_WINDOW_RED_SIZE = 107;
  56. GLUT_WINDOW_GREEN_SIZE = 108;
  57. GLUT_WINDOW_BLUE_SIZE = 109;
  58. GLUT_WINDOW_ALPHA_SIZE = 110;
  59. GLUT_WINDOW_ACCUM_RED_SIZE = 111;
  60. GLUT_WINDOW_ACCUM_GREEN_SIZE = 112;
  61. GLUT_WINDOW_ACCUM_BLUE_SIZE = 113;
  62. GLUT_WINDOW_ACCUM_ALPHA_SIZE = 114;
  63. GLUT_WINDOW_DOUBLEBUFFER = 115;
  64. GLUT_WINDOW_RGBA = 116;
  65. GLUT_WINDOW_PARENT = 117;
  66. GLUT_WINDOW_NUM_CHILDREN = 118;
  67. GLUT_WINDOW_COLORMAP_SIZE = 119;
  68. GLUT_WINDOW_NUM_SAMPLES = 120;
  69. GLUT_WINDOW_STEREO = 121;
  70. GLUT_WINDOW_CURSOR = 122;
  71. GLUT_SCREEN_WIDTH = 200;
  72. GLUT_SCREEN_HEIGHT = 201;
  73. GLUT_SCREEN_WIDTH_MM = 202;
  74. GLUT_SCREEN_HEIGHT_MM = 203;
  75. GLUT_MENU_NUM_ITEMS = 300;
  76. GLUT_DISPLAY_MODE_POSSIBLE = 400;
  77. GLUT_INIT_WINDOW_X = 500;
  78. GLUT_INIT_WINDOW_Y = 501;
  79. GLUT_INIT_WINDOW_WIDTH = 502;
  80. GLUT_INIT_WINDOW_HEIGHT = 503;
  81. GLUT_INIT_DISPLAY_MODE = 504;
  82. GLUT_ELAPSED_TIME = 700;
  83. GLUT_WINDOW_FORMAT_ID = 123;
  84. // glutDeviceGet parameters
  85. GLUT_HAS_KEYBOARD = 600;
  86. GLUT_HAS_MOUSE = 601;
  87. GLUT_HAS_SPACEBALL = 602;
  88. GLUT_HAS_DIAL_AND_BUTTON_BOX = 603;
  89. GLUT_HAS_TABLET = 604;
  90. GLUT_NUM_MOUSE_BUTTONS = 605;
  91. GLUT_NUM_SPACEBALL_BUTTONS = 606;
  92. GLUT_NUM_BUTTON_BOX_BUTTONS = 607;
  93. GLUT_NUM_DIALS = 608;
  94. GLUT_NUM_TABLET_BUTTONS = 609;
  95. GLUT_DEVICE_IGNORE_KEY_REPEAT = 610;
  96. GLUT_DEVICE_KEY_REPEAT = 611;
  97. GLUT_HAS_JOYSTICK = 612;
  98. GLUT_OWNS_JOYSTICK = 613;
  99. GLUT_JOYSTICK_BUTTONS = 614;
  100. GLUT_JOYSTICK_AXES = 615;
  101. GLUT_JOYSTICK_POLL_RATE = 616;
  102. // glutLayerGet parameters
  103. GLUT_OVERLAY_POSSIBLE = 800;
  104. GLUT_LAYER_IN_USE = 801;
  105. GLUT_HAS_OVERLAY = 802;
  106. GLUT_TRANSPARENT_INDEX = 803;
  107. GLUT_NORMAL_DAMAGED = 804;
  108. GLUT_OVERLAY_DAMAGED = 805;
  109. // glutVideoResizeGet parameters
  110. GLUT_VIDEO_RESIZE_POSSIBLE = 900;
  111. GLUT_VIDEO_RESIZE_IN_USE = 901;
  112. GLUT_VIDEO_RESIZE_X_DELTA = 902;
  113. GLUT_VIDEO_RESIZE_Y_DELTA = 903;
  114. GLUT_VIDEO_RESIZE_WIDTH_DELTA = 904;
  115. GLUT_VIDEO_RESIZE_HEIGHT_DELTA= 905;
  116. GLUT_VIDEO_RESIZE_X = 906;
  117. GLUT_VIDEO_RESIZE_Y = 907;
  118. GLUT_VIDEO_RESIZE_WIDTH = 908;
  119. GLUT_VIDEO_RESIZE_HEIGHT = 909;
  120. // glutGetModifiers return mask
  121. GLUT_ACTIVE_SHIFT = 1;
  122. GLUT_ACTIVE_CTRL = 2;
  123. GLUT_ACTIVE_ALT = 4;
  124. // Cursor stuff ###
  125. // GLUT window callback sub-API
  126. type
  127. TGlutDisplayFunc = procedure; extdecl
  128. TGlutReshapeFunc = procedure(width, height: Integer); extdecl
  129. TGlutTimerFunc = procedure(value: Integer); extdecl
  130. TGlutKeyboardFunc = procedure(key: char;x,y:Integer); extdecl
  131. TGlutIdleFunc = procedure; extdecl
  132. TGlutVisibilityFunc = procedure(state:Integer); extdecl
  133. // GLUT game mode sub-API
  134. {$ifdef GLUT_GAME}
  135. // glutGameModeGet
  136. const
  137. GLUT_GAME_MODE_ACTIVE = 0;
  138. GLUT_GAME_MODE_POSSIBLE = 1;
  139. GLUT_GAME_MODE_WIDTH = 2;
  140. GLUT_GAME_MODE_HEIGHT = 3;
  141. GLUT_GAME_MODE_PIXEL_DEPTH = 4;
  142. GLUT_GAME_MODE_REFRESH_RATE = 5;
  143. GLUT_GAME_MODE_DISPLAY_CHANGED= 6;
  144. {$endif GLUT_GAME}
  145. %END
  146. #=====================================================================
  147. # Procedures and functions
  148. #=====================================================================
  149. %PROCS
  150. // GLUT initialization sub-API
  151. glutInit: procedure(argcp: PInteger; argv: PPChar);
  152. glutInitDisplayMode: procedure(mode: LongWord);
  153. glutInitDisplayString: procedure(AString: PChar);
  154. glutInitWindowPosition: procedure(x, y: Integer);
  155. glutInitWindowSize: procedure(width, height: Integer);
  156. glutMainLoop: procedure;
  157. // GLUT window sub-API
  158. glutCreateWindow: function(title: PChar): Integer;
  159. glutCreateSubWindow: function(win, x, y, width, height: Integer): Integer;
  160. glutDestroyWindow: procedure(win: Integer);
  161. glutPostRedisplay: procedure;
  162. glutPostWindowRedisplay: procedure(win: Integer);
  163. glutSwapBuffers: procedure;
  164. glutGetWindow: function: Integer;
  165. glutSetWindow: procedure(win: Integer);
  166. glutSetWindowTitle: procedure(title: PChar);
  167. glutSetIconTitle: procedure(title: PChar);
  168. glutPositionWindow: procedure(x, y: Integer);
  169. glutReshapeWindow: procedure(width, height: Integer);
  170. glutPopWindow: procedure;
  171. glutPushWindow: procedure;
  172. glutIconifyWindow: procedure;
  173. glutShowWindow: procedure;
  174. glutHideWindow: procedure;
  175. glutFullScreen: procedure;
  176. glutSetCursor: procedure(cursor: Integer);
  177. glutWarpPointer: procedure(x, y: Integer);
  178. //overlays ###
  179. //menus ###
  180. // GLUT window callback sub-API
  181. glutDisplayFunc: procedure(func: TGlutDisplayFunc);
  182. glutReshapeFunc: procedure(func: TGlutReshapeFunc);
  183. glutTimerFunc: procedure(millis: LongWord; func: TGlutTimerFunc; value: longint);
  184. glutKeyboardFunc : procedure(func: TGlutKeyboardFunc);
  185. glutIdleFunc : procedure(func: TGlutIdleFunc);
  186. glutVisibilityFunc : procedure(func: TGlutVisibilityFunc);
  187. // GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK * func)(void));
  188. // GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height));
  189. // GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
  190. // GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  191. // GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  192. // GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  193. // GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK * func)(int state));
  194. // GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK * func)(int state));
  195. // GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK * func)(void));
  196. // GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK * func)(int value), int value);
  197. // GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK * func)(int state));
  198. // GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
  199. // GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  200. // GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK * func)(int x, int y, int z));
  201. // GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK * func)(int button, int state));
  202. // GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK * func)(int button, int state));
  203. // GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK * func)(int dial, int value));
  204. // GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK * func)(int x, int y));
  205. // GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y));
  206. // GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK * func)(int status, int x, int y));
  207. // GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK * func)(void));
  208. // GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK * func)(int state));
  209. // GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y));
  210. // GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK * func)(int key, int x, int y));
  211. // GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK * func)(unsigned int buttonMask, int x, int y, int z), int pollInterval)
  212. // GLUT color index sub-API
  213. glutSetColor: procedure(index: Integer; red, green, blue: Single);
  214. glutGetColor: function(ndx, component: Integer): Single;
  215. glutCopyColormap: procedure(win: Integer);
  216. // GLUT state retrieval sub-API
  217. glutGet: function(AType: GLEnum): Integer;
  218. glutDeviceGet: function(AType: GLEnum): Integer;
  219. glutExtensionSupported: function(name: PChar): Integer;
  220. glutGetModifiers: function: Integer;
  221. glutLayerGet: function(AType: GLEnum): Integer;
  222. // fonts ###
  223. // pre-built models ###
  224. // video resize ###
  225. // debugging ###
  226. // device control ###
  227. // GLUT game mode sub-API
  228. {$ifdef GLUT_GAME}
  229. glutGameModeString: procedure(AString: PChar);
  230. glutEnterGameMode: function: Integer;
  231. glutLeaveGameMode: procedure;
  232. glutGameModeGet: function(mode: GLEnum): Integer;
  233. {$endif GLUT_GAME}
  234. %END