Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

glutf90.h 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef __glutf90_h__
  2. #define __glutf90_h__
  3. /* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */
  4. /* This program is freely distributable without licensing fees
  5. and is provided without guarantee or warrantee expressed or
  6. implied. This program is -not- in the public domain. */
  7. /* This header provides the binding interface for William Mitchell's
  8. f90gl Fortran 90 GLUT binding. Other GLUT language bindings
  9. can and should use this interace. */
  10. /* I appreciate the guidance from William Mitchell
  11. (mitchell@cam.nist.gov) in developing this friend interface
  12. for use by the f90gl package. See ../../README.fortran */
  13. #include <GL/glut.h>
  14. /* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */
  15. /* NOTE These values are part of a binary interface for the f90gl Fortran
  16. 90 binding and so must NOT changes (additions are allowed). */
  17. /* GLUTwindow callbacks. */
  18. #define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */
  19. #define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */
  20. #define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */
  21. #define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */
  22. #define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */
  23. #define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */
  24. #define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */
  25. #define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */
  26. #define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */
  27. #define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */
  28. #define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */
  29. #define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */
  30. #define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */
  31. #define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */
  32. #define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */
  33. #define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */
  34. #define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */
  35. #define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */
  36. #define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */
  37. #define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */
  38. /* Non-GLUTwindow callbacks. */
  39. #define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */
  40. #define GLUT_FCB_SELECT 101 /* GLUTselectFCB */
  41. #define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */
  42. /* GLUT Fortran callback function types. */
  43. typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void);
  44. typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *);
  45. /* NOTE the pressed key is int, not unsigned char for Fortran! */
  46. typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *);
  47. typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *);
  48. typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *);
  49. typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *);
  50. typedef void (GLUTCALLBACK *GLUTentryFCB) (int *);
  51. typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *);
  52. typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *);
  53. typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *);
  54. typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *);
  55. typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *);
  56. typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *);
  57. typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *);
  58. typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *);
  59. typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *);
  60. typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *);
  61. typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z);
  62. typedef void (GLUTCALLBACK *GLUTselectFCB) (int *);
  63. typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *);
  64. typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */
  65. typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *);
  66. typedef void (GLUTCALLBACK *GLUTidleFCB) (void);
  67. /* Functions that set and return Fortran callback functions. */
  68. GLUTAPI void* APIENTRY __glutGetFCB(int which);
  69. GLUTAPI void APIENTRY __glutSetFCB(int which, void *func);
  70. #endif /* __glutf90_h__ */