Hex Artifact Content
Not logged in

Artifact 3de56e892d0253fa096bdcec038f3af6e7969fda:


0000: 0a 3b 3b 3b 20 59 70 73 69 6c 6f 6e 20 53 63 68  .;;; Ypsilon Sch
0010: 65 6d 65 20 53 79 73 74 65 6d 0a 3b 3b 3b 20 43  eme System.;;; C
0020: 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30  opyright (c) 200
0030: 34 2d 32 30 30 39 20 59 2e 46 55 4a 49 54 41 20  4-2009 Y.FUJITA 
0040: 2f 20 4c 69 74 74 6c 65 57 69 6e 67 20 43 6f 6d  / LittleWing Com
0050: 70 61 6e 79 20 4c 69 6d 69 74 65 64 2e 0a 3b 3b  pany Limited..;;
0060: 3b 20 53 65 65 20 6c 69 63 65 6e 73 65 2e 74 78  ; See license.tx
0070: 74 20 66 6f 72 20 74 65 72 6d 73 20 61 6e 64 20  t for terms and 
0080: 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 75 73  conditions of us
0090: 65 2e 0a 0a 3b 3b 3b 20 50 6f 72 74 65 64 20 74  e...;;; Ported t
00a0: 6f 20 43 68 65 7a 20 53 63 68 65 6d 65 20 62 79  o Chez Scheme by
00b0: 20 45 64 20 43 61 76 61 7a 6f 73 20 28 77 61 79   Ed Cavazos (way
00c0: 6f 2e 63 61 76 61 7a 6f 73 40 67 6d 61 69 6c 2e  o.cavazos@gmail.
00d0: 63 6f 6d 29 0a 0a 28 6c 69 62 72 61 72 79 20 28  com)..(library (
00e0: 67 6c 75 74 29 0a 20 20 28 65 78 70 6f 72 74 20  glut).  (export 
00f0: 47 4c 55 54 5f 52 47 42 0a 20 20 20 20 20 20 20  GLUT_RGB.       
0100: 20 20 20 47 4c 55 54 5f 52 47 42 41 0a 20 20 20     GLUT_RGBA.   
0110: 20 20 20 20 20 20 20 47 4c 55 54 5f 49 4e 44 45         GLUT_INDE
0120: 58 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55 54  X.          GLUT
0130: 5f 53 49 4e 47 4c 45 0a 20 20 20 20 20 20 20 20  _SINGLE.        
0140: 20 20 47 4c 55 54 5f 44 4f 55 42 4c 45 0a 20 20    GLUT_DOUBLE.  
0150: 20 20 20 20 20 20 20 20 47 4c 55 54 5f 41 43 43          GLUT_ACC
0160: 55 4d 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55  UM.          GLU
0170: 54 5f 41 4c 50 48 41 0a 20 20 20 20 20 20 20 20  T_ALPHA.        
0180: 20 20 47 4c 55 54 5f 44 45 50 54 48 0a 20 20 20    GLUT_DEPTH.   
0190: 20 20 20 20 20 20 20 47 4c 55 54 5f 53 54 45 4e         GLUT_STEN
01a0: 43 49 4c 0a 20 20 20 20 20 20 20 20 20 20 47 4c  CIL.          GL
01b0: 55 54 5f 4d 55 4c 54 49 53 41 4d 50 4c 45 0a 20  UT_MULTISAMPLE. 
01c0: 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f 53 54           GLUT_ST
01d0: 45 52 45 4f 0a 20 20 20 20 20 20 20 20 20 20 47  EREO.          G
01e0: 4c 55 54 5f 4c 55 4d 49 4e 41 4e 43 45 0a 20 20  LUT_LUMINANCE.  
01f0: 20 20 20 20 20 20 20 20 47 4c 55 54 5f 4e 4f 5f          GLUT_NO_
0200: 52 45 43 4f 56 45 52 59 0a 20 20 20 20 20 20 20  RECOVERY.       
0210: 20 20 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54     GLUT_LEFT_BUT
0220: 54 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 47 4c  TON.          GL
0230: 55 54 5f 4d 49 44 44 4c 45 5f 42 55 54 54 4f 4e  UT_MIDDLE_BUTTON
0240: 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f  .          GLUT_
0250: 52 49 47 48 54 5f 42 55 54 54 4f 4e 0a 20 20 20  RIGHT_BUTTON.   
0260: 20 20 20 20 20 20 20 47 4c 55 54 5f 44 4f 57 4e         GLUT_DOWN
0270: 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f  .          GLUT_
0280: 55 50 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55  UP.          GLU
0290: 54 5f 4b 45 59 5f 46 31 0a 20 20 20 20 20 20 20  T_KEY_F1.       
02a0: 20 20 20 47 4c 55 54 5f 4b 45 59 5f 46 32 0a 20     GLUT_KEY_F2. 
02b0: 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f 4b 45           GLUT_KE
02c0: 59 5f 46 33 0a 20 20 20 20 20 20 20 20 20 20 47  Y_F3.          G
02d0: 4c 55 54 5f 4b 45 59 5f 46 34 0a 20 20 20 20 20  LUT_KEY_F4.     
02e0: 20 20 20 20 20 47 4c 55 54 5f 4b 45 59 5f 46 35       GLUT_KEY_F5
02f0: 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f  .          GLUT_
0300: 4b 45 59 5f 46 36 0a 20 20 20 20 20 20 20 20 20  KEY_F6.         
0310: 20 47 4c 55 54 5f 4b 45 59 5f 46 37 0a 20 20 20   GLUT_KEY_F7.   
0320: 20 20 20 20 20 20 20 47 4c 55 54 5f 4b 45 59 5f         GLUT_KEY_
0330: 46 38 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55  F8.          GLU
0340: 54 5f 4b 45 59 5f 46 39 0a 20 20 20 20 20 20 20  T_KEY_F9.       
0350: 20 20 20 47 4c 55 54 5f 4b 45 59 5f 46 31 30 0a     GLUT_KEY_F10.
0360: 20 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f 4b            GLUT_K
0370: 45 59 5f 46 31 31 0a 20 20 20 20 20 20 20 20 20  EY_F11.         
0380: 20 47 4c 55 54 5f 4b 45 59 5f 46 31 32 0a 20 20   GLUT_KEY_F12.  
0390: 20 20 20 20 20 20 20 20 47 4c 55 54 5f 4b 45 59          GLUT_KEY
03a0: 5f 4c 45 46 54 0a 20 20 20 20 20 20 20 20 20 20  _LEFT.          
03b0: 47 4c 55 54 5f 4b 45 59 5f 55 50 0a 20 20 20 20  GLUT_KEY_UP.    
03c0: 20 20 20 20 20 20 47 4c 55 54 5f 4b 45 59 5f 52        GLUT_KEY_R
03d0: 49 47 48 54 0a 20 20 20 20 20 20 20 20 20 20 47  IGHT.          G
03e0: 4c 55 54 5f 4b 45 59 5f 44 4f 57 4e 0a 20 20 20  LUT_KEY_DOWN.   
03f0: 20 20 20 20 20 20 20 47 4c 55 54 5f 4b 45 59 5f         GLUT_KEY_
0400: 50 41 47 45 5f 55 50 0a 20 20 20 20 20 20 20 20  PAGE_UP.        
0410: 20 20 47 4c 55 54 5f 4b 45 59 5f 50 41 47 45 5f    GLUT_KEY_PAGE_
0420: 44 4f 57 4e 0a 20 20 20 20 20 20 20 20 20 20 47  DOWN.          G
0430: 4c 55 54 5f 4b 45 59 5f 48 4f 4d 45 0a 20 20 20  LUT_KEY_HOME.   
0440: 20 20 20 20 20 20 20 47 4c 55 54 5f 4b 45 59 5f         GLUT_KEY_
0450: 45 4e 44 0a 20 20 20 20 20 20 20 20 20 20 47 4c  END.          GL
0460: 55 54 5f 4b 45 59 5f 49 4e 53 45 52 54 0a 20 20  UT_KEY_INSERT.  
0470: 20 20 20 20 20 20 20 20 47 4c 55 54 5f 4c 45 46          GLUT_LEF
0480: 54 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55 54  T.          GLUT
0490: 5f 45 4e 54 45 52 45 44 0a 20 20 20 20 20 20 20  _ENTERED.       
04a0: 20 20 20 47 4c 55 54 5f 4d 45 4e 55 5f 4e 4f 54     GLUT_MENU_NOT
04b0: 5f 49 4e 5f 55 53 45 0a 20 20 20 20 20 20 20 20  _IN_USE.        
04c0: 20 20 47 4c 55 54 5f 4d 45 4e 55 5f 49 4e 5f 55    GLUT_MENU_IN_U
04d0: 53 45 0a 20 20 20 20 20 20 20 20 20 20 47 4c 55  SE.          GLU
04e0: 54 5f 4e 4f 54 5f 56 49 53 49 42 4c 45 0a 20 20  T_NOT_VISIBLE.  
04f0: 20 20 20 20 20 20 20 20 47 4c 55 54 5f 56 49 53          GLUT_VIS
0500: 49 42 4c 45 0a 20 20 20 20 20 20 20 20 20 20 47  IBLE.          G
0510: 4c 55 54 5f 48 49 44 44 45 4e 0a 20 20 20 20 20  LUT_HIDDEN.     
0520: 20 20 20 20 20 47 4c 55 54 5f 46 55 4c 4c 59 5f       GLUT_FULLY_
0530: 52 45 54 41 49 4e 45 44 0a 20 20 20 20 20 20 20  RETAINED.       
0540: 20 20 20 47 4c 55 54 5f 50 41 52 54 49 41 4c 4c     GLUT_PARTIALL
0550: 59 5f 52 45 54 41 49 4e 45 44 0a 20 20 20 20 20  Y_RETAINED.     
0560: 20 20 20 20 20 47 4c 55 54 5f 46 55 4c 4c 59 5f       GLUT_FULLY_
0570: 43 4f 56 45 52 45 44 0a 20 20 20 20 20 20 20 20  COVERED.        
0580: 20 20 47 4c 55 54 5f 52 45 44 0a 20 20 20 20 20    GLUT_RED.     
0590: 20 20 20 20 20 47 4c 55 54 5f 47 52 45 45 4e 0a       GLUT_GREEN.
05a0: 20 20 20 20 20 20 20 20 20 20 47 4c 55 54 5f 42            GLUT_B
05b0: 4c 55 45 0a 20 20 20 20 20 20 20 20 20 20 47 4c  LUE.          GL
05c0: 55 54 5f 4e 4f 52 4d 41 4c 0a 20 20 20 20 20 20  UT_NORMAL.      
05d0: 20 20 20 20 47 4c 55 54 5f 4f 56 45 52 4c 41 59      GLUT_OVERLAY
05e0: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 49  .          glutI
05f0: 6e 69 74 0a 20 20 20 20 20 20 20 20 20 20 67 6c  nit.          gl
0600: 75 74 49 6e 69 74 44 69 73 70 6c 61 79 53 74 72  utInitDisplayStr
0610: 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 67 6c  ing.          gl
0620: 75 74 49 6e 69 74 44 69 73 70 6c 61 79 4d 6f 64  utInitDisplayMod
0630: 65 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  e.          glut
0640: 49 6e 69 74 57 69 6e 64 6f 77 50 6f 73 69 74 69  InitWindowPositi
0650: 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75  on.          glu
0660: 74 49 6e 69 74 57 69 6e 64 6f 77 53 69 7a 65 0a  tInitWindowSize.
0670: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 4d 61            glutMa
0680: 69 6e 4c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20  inLoop.         
0690: 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e 64 6f   glutCreateWindo
06a0: 77 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  w.          glut
06b0: 43 72 65 61 74 65 53 75 62 57 69 6e 64 6f 77 0a  CreateSubWindow.
06c0: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 44 65            glutDe
06d0: 73 74 72 6f 79 57 69 6e 64 6f 77 0a 20 20 20 20  stroyWindow.    
06e0: 20 20 20 20 20 20 67 6c 75 74 50 6f 73 74 52 65        glutPostRe
06f0: 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20  display.        
0700: 20 20 67 6c 75 74 50 6f 73 74 57 69 6e 64 6f 77    glutPostWindow
0710: 52 65 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20  Redisplay.      
0720: 20 20 20 20 67 6c 75 74 53 77 61 70 42 75 66 66      glutSwapBuff
0730: 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 67 6c  ers.          gl
0740: 75 74 47 65 74 57 69 6e 64 6f 77 0a 20 20 20 20  utGetWindow.    
0750: 20 20 20 20 20 20 67 6c 75 74 53 65 74 57 69 6e        glutSetWin
0760: 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 67 6c  dow.          gl
0770: 75 74 53 65 74 57 69 6e 64 6f 77 54 69 74 6c 65  utSetWindowTitle
0780: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 53  .          glutS
0790: 65 74 49 63 6f 6e 54 69 74 6c 65 0a 20 20 20 20  etIconTitle.    
07a0: 20 20 20 20 20 20 67 6c 75 74 50 6f 73 69 74 69        glutPositi
07b0: 6f 6e 57 69 6e 64 6f 77 0a 20 20 20 20 20 20 20  onWindow.       
07c0: 20 20 20 67 6c 75 74 52 65 73 68 61 70 65 57 69     glutReshapeWi
07d0: 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 67  ndow.          g
07e0: 6c 75 74 50 6f 70 57 69 6e 64 6f 77 0a 20 20 20  lutPopWindow.   
07f0: 20 20 20 20 20 20 20 67 6c 75 74 50 75 73 68 57         glutPushW
0800: 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20  indow.          
0810: 67 6c 75 74 49 63 6f 6e 69 66 79 57 69 6e 64 6f  glutIconifyWindo
0820: 77 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  w.          glut
0830: 53 68 6f 77 57 69 6e 64 6f 77 0a 20 20 20 20 20  ShowWindow.     
0840: 20 20 20 20 20 67 6c 75 74 48 69 64 65 57 69 6e       glutHideWin
0850: 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 67 6c  dow.          gl
0860: 75 74 46 75 6c 6c 53 63 72 65 65 6e 0a 20 20 20  utFullScreen.   
0870: 20 20 20 20 20 20 20 67 6c 75 74 53 65 74 43 75         glutSetCu
0880: 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 67  rsor.          g
0890: 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 0a 20  lutWarpPointer. 
08a0: 20 20 20 20 20 20 20 20 20 67 6c 75 74 45 73 74           glutEst
08b0: 61 62 6c 69 73 68 4f 76 65 72 6c 61 79 0a 20 20  ablishOverlay.  
08c0: 20 20 20 20 20 20 20 20 67 6c 75 74 52 65 6d 6f          glutRemo
08d0: 76 65 4f 76 65 72 6c 61 79 0a 20 20 20 20 20 20  veOverlay.      
08e0: 20 20 20 20 67 6c 75 74 55 73 65 4c 61 79 65 72      glutUseLayer
08f0: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 50  .          glutP
0900: 6f 73 74 4f 76 65 72 6c 61 79 52 65 64 69 73 70  ostOverlayRedisp
0910: 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 67 6c  lay.          gl
0920: 75 74 50 6f 73 74 57 69 6e 64 6f 77 4f 76 65 72  utPostWindowOver
0930: 6c 61 79 52 65 64 69 73 70 6c 61 79 0a 20 20 20  layRedisplay.   
0940: 20 20 20 20 20 20 20 67 6c 75 74 53 68 6f 77 4f         glutShowO
0950: 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20  verlay.         
0960: 20 67 6c 75 74 48 69 64 65 4f 76 65 72 6c 61 79   glutHideOverlay
0970: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 43  .          glutC
0980: 72 65 61 74 65 4d 65 6e 75 0a 20 20 20 20 20 20  reateMenu.      
0990: 20 20 20 20 67 6c 75 74 44 65 73 74 72 6f 79 4d      glutDestroyM
09a0: 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 67 6c  enu.          gl
09b0: 75 74 47 65 74 4d 65 6e 75 0a 20 20 20 20 20 20  utGetMenu.      
09c0: 20 20 20 20 67 6c 75 74 53 65 74 4d 65 6e 75 0a      glutSetMenu.
09d0: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 41 64            glutAd
09e0: 64 4d 65 6e 75 45 6e 74 72 79 0a 20 20 20 20 20  dMenuEntry.     
09f0: 20 20 20 20 20 67 6c 75 74 41 64 64 53 75 62 4d       glutAddSubM
0a00: 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 67 6c  enu.          gl
0a10: 75 74 43 68 61 6e 67 65 54 6f 4d 65 6e 75 45 6e  utChangeToMenuEn
0a20: 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 67 6c  try.          gl
0a30: 75 74 43 68 61 6e 67 65 54 6f 53 75 62 4d 65 6e  utChangeToSubMen
0a40: 75 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  u.          glut
0a50: 52 65 6d 6f 76 65 4d 65 6e 75 49 74 65 6d 0a 20  RemoveMenuItem. 
0a60: 20 20 20 20 20 20 20 20 20 67 6c 75 74 41 74 74           glutAtt
0a70: 61 63 68 4d 65 6e 75 0a 20 20 20 20 20 20 20 20  achMenu.        
0a80: 20 20 67 6c 75 74 44 65 74 61 63 68 4d 65 6e 75    glutDetachMenu
0a90: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 44  .          glutD
0aa0: 69 73 70 6c 61 79 46 75 6e 63 0a 20 20 20 20 20  isplayFunc.     
0ab0: 20 20 20 20 20 67 6c 75 74 52 65 73 68 61 70 65       glutReshape
0ac0: 46 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67  Func.          g
0ad0: 6c 75 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 0a  lutKeyboardFunc.
0ae0: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 4d 6f            glutMo
0af0: 75 73 65 46 75 6e 63 0a 20 20 20 20 20 20 20 20  useFunc.        
0b00: 20 20 67 6c 75 74 4d 6f 74 69 6f 6e 46 75 6e 63    glutMotionFunc
0b10: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 50  .          glutP
0b20: 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63  assiveMotionFunc
0b30: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 45  .          glutE
0b40: 6e 74 72 79 46 75 6e 63 0a 20 20 20 20 20 20 20  ntryFunc.       
0b50: 20 20 20 67 6c 75 74 56 69 73 69 62 69 6c 69 74     glutVisibilit
0b60: 79 46 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20  yFunc.          
0b70: 67 6c 75 74 49 64 6c 65 46 75 6e 63 0a 20 20 20  glutIdleFunc.   
0b80: 20 20 20 20 20 20 20 67 6c 75 74 54 69 6d 65 72         glutTimer
0b90: 46 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67  Func.          g
0ba0: 6c 75 74 4d 65 6e 75 53 74 61 74 65 46 75 6e 63  lutMenuStateFunc
0bb0: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 53  .          glutS
0bc0: 70 65 63 69 61 6c 46 75 6e 63 0a 20 20 20 20 20  pecialFunc.     
0bd0: 20 20 20 20 20 67 6c 75 74 53 70 61 63 65 62 61       glutSpaceba
0be0: 6c 6c 4d 6f 74 69 6f 6e 46 75 6e 63 0a 20 20 20  llMotionFunc.   
0bf0: 20 20 20 20 20 20 20 67 6c 75 74 53 70 61 63 65         glutSpace
0c00: 62 61 6c 6c 52 6f 74 61 74 65 46 75 6e 63 0a 20  ballRotateFunc. 
0c10: 20 20 20 20 20 20 20 20 20 67 6c 75 74 53 70 61           glutSpa
0c20: 63 65 62 61 6c 6c 42 75 74 74 6f 6e 46 75 6e 63  ceballButtonFunc
0c30: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 42  .          glutB
0c40: 75 74 74 6f 6e 42 6f 78 46 75 6e 63 0a 20 20 20  uttonBoxFunc.   
0c50: 20 20 20 20 20 20 20 67 6c 75 74 44 69 61 6c 73         glutDials
0c60: 46 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67  Func.          g
0c70: 6c 75 74 54 61 62 6c 65 74 4d 6f 74 69 6f 6e 46  lutTabletMotionF
0c80: 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67 6c  unc.          gl
0c90: 75 74 54 61 62 6c 65 74 42 75 74 74 6f 6e 46 75  utTabletButtonFu
0ca0: 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75  nc.          glu
0cb0: 74 4d 65 6e 75 53 74 61 74 75 73 46 75 6e 63 0a  tMenuStatusFunc.
0cc0: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 4f 76            glutOv
0cd0: 65 72 6c 61 79 44 69 73 70 6c 61 79 46 75 6e 63  erlayDisplayFunc
0ce0: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 57  .          glutW
0cf0: 69 6e 64 6f 77 53 74 61 74 75 73 46 75 6e 63 0a  indowStatusFunc.
0d00: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 4b 65            glutKe
0d10: 79 62 6f 61 72 64 55 70 46 75 6e 63 0a 20 20 20  yboardUpFunc.   
0d20: 20 20 20 20 20 20 20 67 6c 75 74 53 70 65 63 69         glutSpeci
0d30: 61 6c 55 70 46 75 6e 63 0a 20 20 20 20 20 20 20  alUpFunc.       
0d40: 20 20 20 67 6c 75 74 4a 6f 79 73 74 69 63 6b 46     glutJoystickF
0d50: 75 6e 63 0a 20 20 20 20 20 20 20 20 20 20 67 6c  unc.          gl
0d60: 75 74 53 65 74 43 6f 6c 6f 72 0a 20 20 20 20 20  utSetColor.     
0d70: 20 20 20 20 20 67 6c 75 74 47 65 74 43 6f 6c 6f       glutGetColo
0d80: 72 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  r.          glut
0d90: 43 6f 70 79 43 6f 6c 6f 72 6d 61 70 0a 20 20 20  CopyColormap.   
0da0: 20 20 20 20 20 20 20 67 6c 75 74 47 65 74 0a 20         glutGet. 
0db0: 20 20 20 20 20 20 20 20 20 67 6c 75 74 44 65 76           glutDev
0dc0: 69 63 65 47 65 74 0a 20 20 20 20 20 20 20 20 20  iceGet.         
0dd0: 20 67 6c 75 74 45 78 74 65 6e 73 69 6f 6e 53 75   glutExtensionSu
0de0: 70 70 6f 72 74 65 64 0a 20 20 20 20 20 20 20 20  pported.        
0df0: 20 20 67 6c 75 74 47 65 74 4d 6f 64 69 66 69 65    glutGetModifie
0e00: 72 73 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75  rs.          glu
0e10: 74 4c 61 79 65 72 47 65 74 0a 20 20 20 20 20 20  tLayerGet.      
0e20: 20 20 20 20 67 6c 75 74 47 65 74 50 72 6f 63 41      glutGetProcA
0e30: 64 64 72 65 73 73 0a 20 20 20 20 20 20 20 20 20  ddress.         
0e40: 20 67 6c 75 74 42 69 74 6d 61 70 43 68 61 72 61   glutBitmapChara
0e50: 63 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 67  cter.          g
0e60: 6c 75 74 42 69 74 6d 61 70 57 69 64 74 68 0a 20  lutBitmapWidth. 
0e70: 20 20 20 20 20 20 20 20 20 67 6c 75 74 53 74 72           glutStr
0e80: 6f 6b 65 43 68 61 72 61 63 74 65 72 0a 20 20 20  okeCharacter.   
0e90: 20 20 20 20 20 20 20 67 6c 75 74 53 74 72 6f 6b         glutStrok
0ea0: 65 57 69 64 74 68 0a 20 20 20 20 20 20 20 20 20  eWidth.         
0eb0: 20 67 6c 75 74 42 69 74 6d 61 70 4c 65 6e 67 74   glutBitmapLengt
0ec0: 68 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  h.          glut
0ed0: 53 74 72 6f 6b 65 4c 65 6e 67 74 68 0a 20 20 20  StrokeLength.   
0ee0: 20 20 20 20 20 20 20 67 6c 75 74 57 69 72 65 53         glutWireS
0ef0: 70 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20  phere.          
0f00: 67 6c 75 74 53 6f 6c 69 64 53 70 68 65 72 65 0a  glutSolidSphere.
0f10: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 57 69            glutWi
0f20: 72 65 43 6f 6e 65 0a 20 20 20 20 20 20 20 20 20  reCone.         
0f30: 20 67 6c 75 74 53 6f 6c 69 64 43 6f 6e 65 0a 20   glutSolidCone. 
0f40: 20 20 20 20 20 20 20 20 20 67 6c 75 74 57 69 72           glutWir
0f50: 65 43 75 62 65 0a 20 20 20 20 20 20 20 20 20 20  eCube.          
0f60: 67 6c 75 74 53 6f 6c 69 64 43 75 62 65 0a 20 20  glutSolidCube.  
0f70: 20 20 20 20 20 20 20 20 67 6c 75 74 57 69 72 65          glutWire
0f80: 54 6f 72 75 73 0a 20 20 20 20 20 20 20 20 20 20  Torus.          
0f90: 67 6c 75 74 53 6f 6c 69 64 54 6f 72 75 73 0a 20  glutSolidTorus. 
0fa0: 20 20 20 20 20 20 20 20 20 67 6c 75 74 57 69 72           glutWir
0fb0: 65 44 6f 64 65 63 61 68 65 64 72 6f 6e 0a 20 20  eDodecahedron.  
0fc0: 20 20 20 20 20 20 20 20 67 6c 75 74 53 6f 6c 69          glutSoli
0fd0: 64 44 6f 64 65 63 61 68 65 64 72 6f 6e 0a 20 20  dDodecahedron.  
0fe0: 20 20 20 20 20 20 20 20 67 6c 75 74 57 69 72 65          glutWire
0ff0: 54 65 61 70 6f 74 0a 20 20 20 20 20 20 20 20 20  Teapot.         
1000: 20 67 6c 75 74 53 6f 6c 69 64 54 65 61 70 6f 74   glutSolidTeapot
1010: 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 57  .          glutW
1020: 69 72 65 4f 63 74 61 68 65 64 72 6f 6e 0a 20 20  ireOctahedron.  
1030: 20 20 20 20 20 20 20 20 67 6c 75 74 53 6f 6c 69          glutSoli
1040: 64 4f 63 74 61 68 65 64 72 6f 6e 0a 20 20 20 20  dOctahedron.    
1050: 20 20 20 20 20 20 67 6c 75 74 57 69 72 65 54 65        glutWireTe
1060: 74 72 61 68 65 64 72 6f 6e 0a 20 20 20 20 20 20  trahedron.      
1070: 20 20 20 20 67 6c 75 74 53 6f 6c 69 64 54 65 74      glutSolidTet
1080: 72 61 68 65 64 72 6f 6e 0a 20 20 20 20 20 20 20  rahedron.       
1090: 20 20 20 67 6c 75 74 57 69 72 65 49 63 6f 73 61     glutWireIcosa
10a0: 68 65 64 72 6f 6e 0a 20 20 20 20 20 20 20 20 20  hedron.         
10b0: 20 67 6c 75 74 53 6f 6c 69 64 49 63 6f 73 61 68   glutSolidIcosah
10c0: 65 64 72 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  edron.          
10d0: 67 6c 75 74 56 69 64 65 6f 52 65 73 69 7a 65 47  glutVideoResizeG
10e0: 65 74 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75  et.          glu
10f0: 74 53 65 74 75 70 56 69 64 65 6f 52 65 73 69 7a  tSetupVideoResiz
1100: 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 67 6c  ing.          gl
1110: 75 74 53 74 6f 70 56 69 64 65 6f 52 65 73 69 7a  utStopVideoResiz
1120: 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 67 6c  ing.          gl
1130: 75 74 56 69 64 65 6f 52 65 73 69 7a 65 0a 20 20  utVideoResize.  
1140: 20 20 20 20 20 20 20 20 67 6c 75 74 56 69 64 65          glutVide
1150: 6f 50 61 6e 0a 20 20 20 20 20 20 20 20 20 20 67  oPan.          g
1160: 6c 75 74 52 65 70 6f 72 74 45 72 72 6f 72 73 0a  lutReportErrors.
1170: 20 20 20 20 20 20 20 20 20 20 67 6c 75 74 49 67            glutIg
1180: 6e 6f 72 65 4b 65 79 52 65 70 65 61 74 0a 20 20  noreKeyRepeat.  
1190: 20 20 20 20 20 20 20 20 67 6c 75 74 53 65 74 4b          glutSetK
11a0: 65 79 52 65 70 65 61 74 0a 20 20 20 20 20 20 20  eyRepeat.       
11b0: 20 20 20 67 6c 75 74 46 6f 72 63 65 4a 6f 79 73     glutForceJoys
11c0: 74 69 63 6b 46 75 6e 63 0a 20 20 20 20 20 20 20  tickFunc.       
11d0: 20 20 20 67 6c 75 74 47 61 6d 65 4d 6f 64 65 53     glutGameModeS
11e0: 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20  tring.          
11f0: 67 6c 75 74 45 6e 74 65 72 47 61 6d 65 4d 6f 64  glutEnterGameMod
1200: 65 0a 20 20 20 20 20 20 20 20 20 20 67 6c 75 74  e.          glut
1210: 4c 65 61 76 65 47 61 6d 65 4d 6f 64 65 0a 20 20  LeaveGameMode.  
1220: 20 20 20 20 20 20 20 20 67 6c 75 74 47 61 6d 65          glutGame
1230: 4d 6f 64 65 47 65 74 29 0a 20 20 0a 20 20 28 69  ModeGet).  .  (i
1240: 6d 70 6f 72 74 20 28 63 68 65 7a 73 63 68 65 6d  mport (chezschem
1250: 65 29 29 0a 0a 20 20 3b 3b 20 28 64 65 66 69 6e  e))..  ;; (defin
1260: 65 20 6c 69 62 47 4c 55 54 0a 20 20 3b 3b 20 20  e libGLUT.  ;;  
1270: 20 28 63 6f 6e 64 20 28 6f 6e 2d 64 61 72 77 69   (cond (on-darwi
1280: 6e 20 20 28 6c 6f 61 64 2d 73 68 61 72 65 64 2d  n  (load-shared-
1290: 6f 62 6a 65 63 74 20 22 47 4c 55 54 2e 66 72 61  object "GLUT.fra
12a0: 6d 65 77 6f 72 6b 2f 47 4c 55 54 22 29 29 0a 20  mework/GLUT")). 
12b0: 20 3b 3b 20 20 20 20 20 20 20 20 20 28 6f 6e 2d   ;;         (on-
12c0: 77 69 6e 64 6f 77 73 20 28 6c 6f 61 64 2d 73 68  windows (load-sh
12d0: 61 72 65 64 2d 6f 62 6a 65 63 74 20 22 67 6c 75  ared-object "glu
12e0: 74 33 32 2e 64 6c 6c 22 29 29 0a 20 20 3b 3b 20  t32.dll")).  ;; 
12f0: 20 20 20 20 20 20 20 20 28 6f 6e 2d 6c 69 6e 75          (on-linu
1300: 78 20 20 20 28 6c 6f 61 64 2d 73 68 61 72 65 64  x   (load-shared
1310: 2d 6f 62 6a 65 63 74 20 22 6c 69 62 67 6c 75 74  -object "libglut
1320: 2e 73 6f 2e 33 22 29 29 0a 20 20 3b 3b 20 20 20  .so.3")).  ;;   
1330: 20 20 20 20 20 20 28 6f 6e 2d 66 72 65 65 62 73        (on-freebs
1340: 64 20 28 6c 6f 61 64 2d 73 68 61 72 65 64 2d 6f  d (load-shared-o
1350: 62 6a 65 63 74 20 22 6c 69 62 67 6c 75 74 2e 73  bject "libglut.s
1360: 6f 22 29 29 0a 20 20 3b 3b 20 20 20 20 20 20 20  o")).  ;;       
1370: 20 20 28 6f 6e 2d 6f 70 65 6e 62 73 64 20 28 62    (on-openbsd (b
1380: 65 67 69 6e 0a 20 20 3b 3b 20 20 20 20 20 20 20  egin.  ;;       
1390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13a0: 28 6c 6f 61 64 2d 73 68 61 72 65 64 2d 6f 62 6a  (load-shared-obj
13b0: 65 63 74 20 22 6c 69 62 58 6d 75 2e 73 6f 2e 31  ect "libXmu.so.1
13c0: 30 2e 30 22 29 0a 20 20 3b 3b 20 20 20 20 20 20  0.0").  ;;      
13d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13e0: 20 28 6c 6f 61 64 2d 73 68 61 72 65 64 2d 6f 62   (load-shared-ob
13f0: 6a 65 63 74 20 22 6c 69 62 47 4c 55 2e 73 6f 2e  ject "libGLU.so.
1400: 37 2e 30 22 29 0a 20 20 3b 3b 20 20 20 20 20 20  7.0").  ;;      
1410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1420: 20 28 6c 6f 61 64 2d 73 68 61 72 65 64 2d 6f 62   (load-shared-ob
1430: 6a 65 63 74 20 22 6c 69 62 67 6c 75 74 2e 73 6f  ject "libglut.so
1440: 2e 33 2e 37 22 29 29 29 0a 20 20 3b 3b 20 20 20  .3.7"))).  ;;   
1450: 20 20 20 20 20 20 28 65 6c 73 65 0a 20 20 3b 3b        (else.  ;;
1460: 20 20 20 20 20 20 20 20 20 20 28 61 73 73 65 72            (asser
1470: 74 69 6f 6e 2d 76 69 6f 6c 61 74 69 6f 6e 0a 20  tion-violation. 
1480: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 23 66   ;;           #f
1490: 0a 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20  .  ;;           
14a0: 22 63 61 6e 20 6e 6f 74 20 6c 6f 63 61 74 65 20  "can not locate 
14b0: 47 4c 55 54 20 6c 69 62 72 61 72 79 2c 20 75 6e  GLUT library, un
14c0: 6b 6e 6f 77 6e 20 6f 70 65 72 61 74 69 6e 67 20  known operating 
14d0: 73 79 73 74 65 6d 22 29 29 29 29 0a 0a 20 20 28  system"))))..  (
14e0: 64 65 66 69 6e 65 20 6e 6f 2d 6f 70 20 28 6c 6f  define no-op (lo
14f0: 61 64 2d 73 68 61 72 65 64 2d 6f 62 6a 65 63 74  ad-shared-object
1500: 20 22 6c 69 62 67 6c 75 74 2e 73 6f 2e 33 22 29   "libglut.so.3")
1510: 29 0a 0a 20 20 3b 3b 20 44 69 73 70 6c 61 79 20  )..  ;; Display 
1520: 6d 6f 64 65 20 62 69 74 20 6d 61 73 6b 73 2e 0a  mode bit masks..
1530: 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 52    (define GLUT_R
1540: 47 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20  GB              
1550: 20 20 30 29 0a 20 20 28 64 65 66 69 6e 65 20 47    0).  (define G
1560: 4c 55 54 5f 52 47 42 41 20 20 20 20 20 20 20 20  LUT_RGBA        
1570: 20 20 20 20 20 20 20 47 4c 55 54 5f 52 47 42 29         GLUT_RGB)
1580: 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f  .  (define GLUT_
1590: 49 4e 44 45 58 20 20 20 20 20 20 20 20 20 20 20  INDEX           
15a0: 20 20 20 31 29 0a 20 20 28 64 65 66 69 6e 65 20     1).  (define 
15b0: 47 4c 55 54 5f 53 49 4e 47 4c 45 20 20 20 20 20  GLUT_SINGLE     
15c0: 20 20 20 20 20 20 20 20 30 29 0a 20 20 28 64 65          0).  (de
15d0: 66 69 6e 65 20 47 4c 55 54 5f 44 4f 55 42 4c 45  fine GLUT_DOUBLE
15e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 32 29 0a               2).
15f0: 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 41    (define GLUT_A
1600: 43 43 55 4d 20 20 20 20 20 20 20 20 20 20 20 20  CCUM            
1610: 20 20 34 29 0a 20 20 28 64 65 66 69 6e 65 20 47    4).  (define G
1620: 4c 55 54 5f 41 4c 50 48 41 20 20 20 20 20 20 20  LUT_ALPHA       
1630: 20 20 20 20 20 20 20 38 29 0a 20 20 28 64 65 66         8).  (def
1640: 69 6e 65 20 47 4c 55 54 5f 44 45 50 54 48 20 20  ine GLUT_DEPTH  
1650: 20 20 20 20 20 20 20 20 20 20 20 20 31 36 29 0a              16).
1660: 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 53    (define GLUT_S
1670: 54 45 4e 43 49 4c 20 20 20 20 20 20 20 20 20 20  TENCIL          
1680: 20 20 33 32 29 0a 20 20 28 64 65 66 69 6e 65 20    32).  (define 
1690: 47 4c 55 54 5f 4d 55 4c 54 49 53 41 4d 50 4c 45  GLUT_MULTISAMPLE
16a0: 20 20 20 20 20 20 20 20 31 32 38 29 0a 20 20 28          128).  (
16b0: 64 65 66 69 6e 65 20 47 4c 55 54 5f 53 54 45 52  define GLUT_STER
16c0: 45 4f 20 20 20 20 20 20 20 20 20 20 20 20 20 32  EO             2
16d0: 35 36 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c  56).  (define GL
16e0: 55 54 5f 4c 55 4d 49 4e 41 4e 43 45 20 20 20 20  UT_LUMINANCE    
16f0: 20 20 20 20 20 20 35 31 32 29 0a 20 20 28 64 65        512).  (de
1700: 66 69 6e 65 20 47 4c 55 54 5f 4e 4f 5f 52 45 43  fine GLUT_NO_REC
1710: 4f 56 45 52 59 20 20 20 20 20 20 20 20 31 30 32  OVERY        102
1720: 34 29 0a 0a 20 20 3b 3b 20 4d 6f 75 73 65 20 62  4)..  ;; Mouse b
1730: 75 74 74 6f 6e 73 2e 0a 20 20 28 64 65 66 69 6e  uttons..  (defin
1740: 65 20 47 4c 55 54 5f 4c 45 46 54 5f 42 55 54 54  e GLUT_LEFT_BUTT
1750: 4f 4e 20 20 20 20 20 20 20 20 30 29 0a 20 20 28  ON        0).  (
1760: 64 65 66 69 6e 65 20 47 4c 55 54 5f 4d 49 44 44  define GLUT_MIDD
1770: 4c 45 5f 42 55 54 54 4f 4e 20 20 20 20 20 20 31  LE_BUTTON      1
1780: 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54  ).  (define GLUT
1790: 5f 52 49 47 48 54 5f 42 55 54 54 4f 4e 20 20 20  _RIGHT_BUTTON   
17a0: 20 20 20 20 32 29 0a 0a 20 20 3b 3b 20 4d 6f 75      2)..  ;; Mou
17b0: 73 65 20 62 75 74 74 6f 6e 20 20 73 74 61 74 65  se button  state
17c0: 2e 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54  ..  (define GLUT
17d0: 5f 44 4f 57 4e 20 20 20 20 20 20 20 20 20 20 20  _DOWN           
17e0: 20 20 20 20 30 29 0a 20 20 28 64 65 66 69 6e 65      0).  (define
17f0: 20 47 4c 55 54 5f 55 50 20 20 20 20 20 20 20 20   GLUT_UP        
1800: 20 20 20 20 20 20 20 20 20 31 29 0a 0a 20 20 3b           1)..  ;
1810: 3b 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 73 0a  ; function keys.
1820: 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b    (define GLUT_K
1830: 45 59 5f 46 31 20 20 20 20 20 20 20 20 20 20 20  EY_F1           
1840: 20 20 31 29 0a 20 20 28 64 65 66 69 6e 65 20 47    1).  (define G
1850: 4c 55 54 5f 4b 45 59 5f 46 32 20 20 20 20 20 20  LUT_KEY_F2      
1860: 20 20 20 20 20 20 20 32 29 0a 20 20 28 64 65 66         2).  (def
1870: 69 6e 65 20 47 4c 55 54 5f 4b 45 59 5f 46 33 20  ine GLUT_KEY_F3 
1880: 20 20 20 20 20 20 20 20 20 20 20 20 33 29 0a 20              3). 
1890: 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b 45   (define GLUT_KE
18a0: 59 5f 46 34 20 20 20 20 20 20 20 20 20 20 20 20  Y_F4            
18b0: 20 34 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c   4).  (define GL
18c0: 55 54 5f 4b 45 59 5f 46 35 20 20 20 20 20 20 20  UT_KEY_F5       
18d0: 20 20 20 20 20 20 35 29 0a 20 20 28 64 65 66 69        5).  (defi
18e0: 6e 65 20 47 4c 55 54 5f 4b 45 59 5f 46 36 20 20  ne GLUT_KEY_F6  
18f0: 20 20 20 20 20 20 20 20 20 20 20 36 29 0a 20 20             6).  
1900: 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b 45 59  (define GLUT_KEY
1910: 5f 46 37 20 20 20 20 20 20 20 20 20 20 20 20 20  _F7             
1920: 37 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55  7).  (define GLU
1930: 54 5f 4b 45 59 5f 46 38 20 20 20 20 20 20 20 20  T_KEY_F8        
1940: 20 20 20 20 20 38 29 0a 20 20 28 64 65 66 69 6e       8).  (defin
1950: 65 20 47 4c 55 54 5f 4b 45 59 5f 46 39 20 20 20  e GLUT_KEY_F9   
1960: 20 20 20 20 20 20 20 20 20 20 39 29 0a 20 20 28            9).  (
1970: 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b 45 59 5f  define GLUT_KEY_
1980: 46 31 30 20 20 20 20 20 20 20 20 20 20 20 20 31  F10            1
1990: 30 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55  0).  (define GLU
19a0: 54 5f 4b 45 59 5f 46 31 31 20 20 20 20 20 20 20  T_KEY_F11       
19b0: 20 20 20 20 20 31 31 29 0a 20 20 28 64 65 66 69       11).  (defi
19c0: 6e 65 20 47 4c 55 54 5f 4b 45 59 5f 46 31 32 20  ne GLUT_KEY_F12 
19d0: 20 20 20 20 20 20 20 20 20 20 20 31 32 29 0a 0a             12)..
19e0: 20 20 3b 3b 20 64 69 72 65 63 74 69 6f 6e 61 6c    ;; directional
19f0: 20 6b 65 79 73 0a 20 20 28 64 65 66 69 6e 65 20   keys.  (define 
1a00: 47 4c 55 54 5f 4b 45 59 5f 4c 45 46 54 20 20 20  GLUT_KEY_LEFT   
1a10: 20 20 20 20 20 20 20 20 31 30 30 29 0a 20 20 28          100).  (
1a20: 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b 45 59 5f  define GLUT_KEY_
1a30: 55 50 20 20 20 20 20 20 20 20 20 20 20 20 20 31  UP             1
1a40: 30 31 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c  01).  (define GL
1a50: 55 54 5f 4b 45 59 5f 52 49 47 48 54 20 20 20 20  UT_KEY_RIGHT    
1a60: 20 20 20 20 20 20 31 30 32 29 0a 20 20 28 64 65        102).  (de
1a70: 66 69 6e 65 20 47 4c 55 54 5f 4b 45 59 5f 44 4f  fine GLUT_KEY_DO
1a80: 57 4e 20 20 20 20 20 20 20 20 20 20 20 31 30 33  WN           103
1a90: 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54  ).  (define GLUT
1aa0: 5f 4b 45 59 5f 50 41 47 45 5f 55 50 20 20 20 20  _KEY_PAGE_UP    
1ab0: 20 20 20 20 31 30 34 29 0a 20 20 28 64 65 66 69      104).  (defi
1ac0: 6e 65 20 47 4c 55 54 5f 4b 45 59 5f 50 41 47 45  ne GLUT_KEY_PAGE
1ad0: 5f 44 4f 57 4e 20 20 20 20 20 20 31 30 35 29 0a  _DOWN      105).
1ae0: 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b    (define GLUT_K
1af0: 45 59 5f 48 4f 4d 45 20 20 20 20 20 20 20 20 20  EY_HOME         
1b00: 20 20 31 30 36 29 0a 20 20 28 64 65 66 69 6e 65    106).  (define
1b10: 20 47 4c 55 54 5f 4b 45 59 5f 45 4e 44 20 20 20   GLUT_KEY_END   
1b20: 20 20 20 20 20 20 20 20 20 31 30 37 29 0a 20 20           107).  
1b30: 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4b 45 59  (define GLUT_KEY
1b40: 5f 49 4e 53 45 52 54 20 20 20 20 20 20 20 20 20  _INSERT         
1b50: 31 30 38 29 0a 0a 20 20 3b 3b 20 45 6e 74 72 79  108)..  ;; Entry
1b60: 2f 65 78 69 74 20 20 73 74 61 74 65 2e 0a 20 20  /exit  state..  
1b70: 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 4c 45 46  (define GLUT_LEF
1b80: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
1b90: 30 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55  0).  (define GLU
1ba0: 54 5f 45 4e 54 45 52 45 44 20 20 20 20 20 20 20  T_ENTERED       
1bb0: 20 20 20 20 20 31 29 0a 0a 20 20 3b 3b 20 4d 65       1)..  ;; Me
1bc0: 6e 75 20 75 73 61 67 65 20 20 73 74 61 74 65 2e  nu usage  state.
1bd0: 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f  .  (define GLUT_
1be0: 4d 45 4e 55 5f 4e 4f 54 5f 49 4e 5f 55 53 45 20  MENU_NOT_IN_USE 
1bf0: 20 20 20 30 29 0a 20 20 28 64 65 66 69 6e 65 20     0).  (define 
1c00: 47 4c 55 54 5f 4d 45 4e 55 5f 49 4e 5f 55 53 45  GLUT_MENU_IN_USE
1c10: 20 20 20 20 20 20 20 20 31 29 0a 0a 20 20 3b 3b          1)..  ;;
1c20: 20 56 69 73 69 62 69 6c 69 74 79 20 20 73 74 61   Visibility  sta
1c30: 74 65 2e 0a 20 20 28 64 65 66 69 6e 65 20 47 4c  te..  (define GL
1c40: 55 54 5f 4e 4f 54 5f 56 49 53 49 42 4c 45 20 20  UT_NOT_VISIBLE  
1c50: 20 20 20 20 20 20 30 29 0a 20 20 28 64 65 66 69        0).  (defi
1c60: 6e 65 20 47 4c 55 54 5f 56 49 53 49 42 4c 45 20  ne GLUT_VISIBLE 
1c70: 20 20 20 20 20 20 20 20 20 20 20 31 29 0a 0a 20             1).. 
1c80: 20 3b 3b 20 57 69 6e 64 6f 77 20 73 74 61 74 75   ;; Window statu
1c90: 73 20 20 73 74 61 74 65 2e 0a 20 20 28 64 65 66  s  state..  (def
1ca0: 69 6e 65 20 47 4c 55 54 5f 48 49 44 44 45 4e 20  ine GLUT_HIDDEN 
1cb0: 20 20 20 20 20 20 20 20 20 20 20 20 30 29 0a 20              0). 
1cc0: 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f 46 55   (define GLUT_FU
1cd0: 4c 4c 59 5f 52 45 54 41 49 4e 45 44 20 20 20 20  LLY_RETAINED    
1ce0: 20 31 29 0a 20 20 28 64 65 66 69 6e 65 20 47 4c   1).  (define GL
1cf0: 55 54 5f 50 41 52 54 49 41 4c 4c 59 5f 52 45 54  UT_PARTIALLY_RET
1d00: 41 49 4e 45 44 20 32 29 0a 20 20 28 64 65 66 69  AINED 2).  (defi
1d10: 6e 65 20 47 4c 55 54 5f 46 55 4c 4c 59 5f 43 4f  ne GLUT_FULLY_CO
1d20: 56 45 52 45 44 20 20 20 20 20 20 33 29 0a 0a 20  VERED      3).. 
1d30: 20 3b 3b 20 43 6f 6c 6f 72 20 69 6e 64 65 78 20   ;; Color index 
1d40: 63 6f 6d 70 6f 6e 65 6e 74 20 73 65 6c 65 63 74  component select
1d50: 69 6f 6e 20 76 61 6c 75 65 73 2e 0a 20 20 28 64  ion values..  (d
1d60: 65 66 69 6e 65 20 47 4c 55 54 5f 52 45 44 20 20  efine GLUT_RED  
1d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29                0)
1d80: 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f  .  (define GLUT_
1d90: 47 52 45 45 4e 20 20 20 20 20 20 20 20 20 20 20  GREEN           
1da0: 20 20 20 31 29 0a 20 20 28 64 65 66 69 6e 65 20     1).  (define 
1db0: 47 4c 55 54 5f 42 4c 55 45 20 20 20 20 20 20 20  GLUT_BLUE       
1dc0: 20 20 20 20 20 20 20 20 32 29 0a 0a 20 20 3b 3b          2)..  ;;
1dd0: 20 4c 61 79 65 72 73 20 66 6f 72 20 75 73 65 2e   Layers for use.
1de0: 0a 20 20 28 64 65 66 69 6e 65 20 47 4c 55 54 5f  .  (define GLUT_
1df0: 4e 4f 52 4d 41 4c 20 20 20 20 20 20 20 20 20 20  NORMAL          
1e00: 20 20 20 30 29 0a 20 20 28 64 65 66 69 6e 65 20     0).  (define 
1e10: 47 4c 55 54 5f 4f 56 45 52 4c 41 59 20 20 20 20  GLUT_OVERLAY    
1e20: 20 20 20 20 20 20 20 20 31 29 0a 0a 20 20 3b 3b          1)..  ;;
1e30: 20 28 64 65 66 69 6e 65 2d 73 79 6e 74 61 78 20   (define-syntax 
1e40: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 0a  define-function.
1e50: 20 20 3b 3b 20 20 20 28 73 79 6e 74 61 78 2d 72    ;;   (syntax-r
1e60: 75 6c 65 73 20 28 29 0a 20 20 3b 3b 20 20 20 20  ules ().  ;;    
1e70: 20 28 28 5f 20 72 65 74 20 6e 61 6d 65 20 61 72   ((_ ret name ar
1e80: 67 73 29 0a 20 20 3b 3b 20 20 20 20 20 20 28 64  gs).  ;;      (d
1e90: 65 66 69 6e 65 20 6e 61 6d 65 0a 20 20 3b 3b 20  efine name.  ;; 
1ea0: 20 20 20 20 20 20 20 28 63 2d 66 75 6e 63 74 69         (c-functi
1eb0: 6f 6e 20 6c 69 62 47 4c 55 54 20 22 47 4c 55 54  on libGLUT "GLUT
1ec0: 20 6c 69 62 72 61 72 79 22 20 72 65 74 20 5f 5f   library" ret __
1ed0: 73 74 64 63 61 6c 6c 20 6e 61 6d 65 20 61 72 67  stdcall name arg
1ee0: 73 29 29 29 29 29 0a 0a 20 20 28 64 65 66 69 6e  s)))))..  (defin
1ef0: 65 2d 73 79 6e 74 61 78 20 64 65 66 69 6e 65 2d  e-syntax define-
1f00: 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 28 73 79  function.    (sy
1f10: 6e 74 61 78 2d 72 75 6c 65 73 20 28 29 0a 20 20  ntax-rules ().  
1f20: 20 20 20 20 28 28 5f 20 72 65 74 20 6e 61 6d 65      ((_ ret name
1f30: 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 28 64   args).       (d
1f40: 65 66 69 6e 65 20 6e 61 6d 65 0a 20 20 20 20 20  efine name.     
1f50: 20 20 20 20 28 66 6f 72 65 69 67 6e 2d 70 72 6f      (foreign-pro
1f60: 63 65 64 75 72 65 20 28 73 79 6d 62 6f 6c 2d 3e  cedure (symbol->
1f70: 73 74 72 69 6e 67 20 27 6e 61 6d 65 29 20 61 72  string 'name) ar
1f80: 67 73 20 72 65 74 29 29 29 29 29 0a 0a 20 20 28  gs ret)))))..  (
1f90: 64 65 66 69 6e 65 2d 73 79 6e 74 61 78 20 64 65  define-syntax de
1fa0: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73 69  fine-function/si
1fb0: 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20  ngle-callback.  
1fc0: 20 20 28 73 79 6e 74 61 78 2d 72 75 6c 65 73 20    (syntax-rules 
1fd0: 28 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20  (callback).     
1fe0: 20 28 28 5f 20 72 65 74 20 6e 61 6d 65 20 28 28   ((_ ret name ((
1ff0: 63 61 6c 6c 62 61 63 6b 20 63 2d 72 65 74 20 63  callback c-ret c
2000: 2d 70 61 72 61 6d 73 29 29 29 0a 20 20 20 20 20  -params))).     
2010: 20 20 28 64 65 66 69 6e 65 20 6e 61 6d 65 0a 20    (define name. 
2020: 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66          (let ((f
2030: 20 28 66 6f 72 65 69 67 6e 2d 70 72 6f 63 65 64   (foreign-proced
2040: 75 72 65 20 28 73 79 6d 62 6f 6c 2d 3e 73 74 72  ure (symbol->str
2050: 69 6e 67 20 27 6e 61 6d 65 29 20 28 69 6e 74 29  ing 'name) (int)
2060: 20 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20   ret))).        
2070: 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63     (lambda (proc
2080: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  ).             (
2090: 6c 65 74 20 28 28 63 6f 64 65 20 28 66 6f 72 65  let ((code (fore
20a0: 69 67 6e 2d 63 61 6c 6c 61 62 6c 65 20 70 72 6f  ign-callable pro
20b0: 63 20 63 2d 70 61 72 61 6d 73 20 63 2d 72 65 74  c c-params c-ret
20c0: 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))).            
20d0: 20 20 20 28 6c 6f 63 6b 2d 6f 62 6a 65 63 74 20     (lock-object 
20e0: 63 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  code).          
20f0: 20 20 20 20 20 28 66 20 28 66 6f 72 65 69 67 6e       (f (foreign
2100: 2d 63 61 6c 6c 61 62 6c 65 2d 65 6e 74 72 79 2d  -callable-entry-
2110: 70 6f 69 6e 74 20 63 6f 64 65 29 29 29 29 29 29  point code))))))
2120: 29 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  )))..  ;; void g
2130: 6c 75 74 49 6e 69 74 28 69 6e 74 20 2a 61 72 67  lutInit(int *arg
2140: 63 70 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29  cp, char **argv)
2150: 0a 20 20 3b 3b 20 28 64 65 66 69 6e 65 2d 66 75  .  ;; (define-fu
2160: 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74  nction void glut
2170: 49 6e 69 74 20 28 5b 69 6e 74 5d 20 5b 63 68 61  Init ([int] [cha
2180: 72 2a 5d 29 29 0a 0a 20 20 3b 3b 20 28 64 65 66  r*]))..  ;; (def
2190: 69 6e 65 20 67 6c 75 74 49 6e 69 74 0a 20 20 3b  ine glutInit.  ;
21a0: 3b 20 20 20 28 69 66 20 6f 6e 2d 77 69 6e 64 6f  ;   (if on-windo
21b0: 77 73 0a 20 20 3b 3b 20 20 20 20 20 20 20 28 6c  ws.  ;;       (l
21c0: 61 6d 62 64 61 20 28 61 31 20 61 32 29 0a 20 20  ambda (a1 a2).  
21d0: 3b 3b 20 20 20 20 20 20 20 20 20 23 3b 28 63 2d  ;;         #;(c-
21e0: 61 72 67 75 6d 65 6e 74 20 27 67 6c 75 74 49 6e  argument 'glutIn
21f0: 69 74 20 31 20 5b 69 6e 74 5d 20 61 31 29 0a 20  it 1 [int] a1). 
2200: 20 3b 3b 20 20 20 20 20 20 20 20 20 23 3b 28 63   ;;         #;(c
2210: 2d 61 72 67 75 6d 65 6e 74 20 27 67 6c 75 74 49  -argument 'glutI
2220: 6e 69 74 20 32 20 5b 63 68 61 72 2a 5d 20 61 32  nit 2 [char*] a2
2230: 29 0a 20 20 3b 3b 20 20 20 20 20 20 20 20 20 28  ).  ;;         (
2240: 28 63 2d 66 75 6e 63 74 69 6f 6e 20 6c 69 62 47  (c-function libG
2250: 4c 55 54 20 22 47 4c 55 54 20 6c 69 62 72 61 72  LUT "GLUT librar
2260: 79 22 20 76 6f 69 64 20 5f 5f 73 74 64 63 61 6c  y" void __stdcal
2270: 6c 20 5f 5f 67 6c 75 74 49 6e 69 74 57 69 74 68  l __glutInitWith
2280: 45 78 69 74 20 28 5b 69 6e 74 5d 20 5b 63 68 61  Exit ([int] [cha
2290: 72 2a 5d 20 5b 63 2d 63 61 6c 6c 62 61 63 6b 20  r*] [c-callback 
22a0: 76 6f 69 64 20 28 69 6e 74 29 5d 29 29 0a 20 20  void (int)])).  
22b0: 3b 3b 20 20 20 20 20 20 20 20 20 20 61 31 20 61  ;;          a1 a
22c0: 32 20 28 6c 61 6d 62 64 61 20 28 6e 29 20 28 65  2 (lambda (n) (e
22d0: 78 69 74 20 6e 29 29 29 29 0a 20 20 3b 3b 20 20  xit n)))).  ;;  
22e0: 20 20 20 20 20 28 63 2d 66 75 6e 63 74 69 6f 6e       (c-function
22f0: 20 6c 69 62 47 4c 55 54 20 22 47 4c 55 54 20 6c   libGLUT "GLUT l
2300: 69 62 72 61 72 79 22 20 76 6f 69 64 20 5f 5f 73  ibrary" void __s
2310: 74 64 63 61 6c 6c 20 67 6c 75 74 49 6e 69 74 20  tdcall glutInit 
2320: 28 5b 69 6e 74 5d 20 5b 63 68 61 72 2a 5d 29 29  ([int] [char*]))
2330: 29 29 0a 0a 20 20 3b 3b 20 28 64 65 66 69 6e 65  ))..  ;; (define
2340: 20 67 6c 75 74 49 6e 69 74 0a 20 20 3b 3b 20 20   glutInit.  ;;  
2350: 20 28 66 6f 72 65 69 67 6e 2d 70 72 6f 63 65 64   (foreign-proced
2360: 75 72 65 20 22 67 6c 75 74 49 6e 69 74 22 20 28  ure "glutInit" (
2370: 75 38 2a 20 75 38 2a 29 20 76 6f 69 64 29 29 0a  u8* u8*) void)).
2380: 0a 20 20 3b 3b 20 54 68 69 73 20 76 65 72 73 69  .  ;; This versi
2390: 6f 6e 20 69 67 6e 6f 72 65 73 20 69 74 27 73 20  on ignores it's 
23a0: 61 72 67 75 6d 65 6e 74 73 2e 0a 20 20 0a 20 20  arguments..  .  
23b0: 28 64 65 66 69 6e 65 20 67 6c 75 74 49 6e 69 74  (define glutInit
23c0: 0a 20 20 20 20 28 6c 65 74 20 28 28 66 20 28 66  .    (let ((f (f
23d0: 6f 72 65 69 67 6e 2d 70 72 6f 63 65 64 75 72 65  oreign-procedure
23e0: 20 22 67 6c 75 74 49 6e 69 74 22 20 28 75 38 2a   "glutInit" (u8*
23f0: 20 75 38 2a 29 20 76 6f 69 64 29 29 29 0a 20 20   u8*) void))).  
2400: 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 20 62      (lambda (a b
2410: 29 0a 20 20 20 20 20 20 20 20 28 66 20 28 62 79  ).        (f (by
2420: 74 65 76 65 63 74 6f 72 20 30 20 30 20 30 20 30  tevector 0 0 0 0
2430: 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 79  ).           (by
2440: 74 65 76 65 63 74 6f 72 20 30 29 29 29 29 29 0a  tevector 0))))).
2450: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 49  .  ;; void glutI
2460: 6e 69 74 44 69 73 70 6c 61 79 53 74 72 69 6e 67  nitDisplayString
2470: 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72  (const char *str
2480: 69 6e 67 29 0a 20 20 28 64 65 66 69 6e 65 2d 66  ing).  (define-f
2490: 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75  unction void glu
24a0: 74 49 6e 69 74 44 69 73 70 6c 61 79 53 74 72 69  tInitDisplayStri
24b0: 6e 67 20 28 73 74 72 69 6e 67 29 29 0a 0a 20 20  ng (string))..  
24c0: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 49 6e 69 74  ;; void glutInit
24d0: 44 69 73 70 6c 61 79 4d 6f 64 65 28 75 6e 73 69  DisplayMode(unsi
24e0: 67 6e 65 64 20 69 6e 74 20 6d 6f 64 65 29 0a 20  gned int mode). 
24f0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
2500: 6e 20 76 6f 69 64 20 67 6c 75 74 49 6e 69 74 44  n void glutInitD
2510: 69 73 70 6c 61 79 4d 6f 64 65 20 28 69 6e 74 29  isplayMode (int)
2520: 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75  )..  ;; void glu
2530: 74 49 6e 69 74 57 69 6e 64 6f 77 50 6f 73 69 74  tInitWindowPosit
2540: 69 6f 6e 28 69 6e 74 20 78 2c 20 69 6e 74 20 79  ion(int x, int y
2550: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
2560: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 49 6e  tion void glutIn
2570: 69 74 57 69 6e 64 6f 77 50 6f 73 69 74 69 6f 6e  itWindowPosition
2580: 20 28 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b   (int int))..  ;
2590: 3b 20 76 6f 69 64 20 67 6c 75 74 49 6e 69 74 57  ; void glutInitW
25a0: 69 6e 64 6f 77 53 69 7a 65 28 69 6e 74 20 77 69  indowSize(int wi
25b0: 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29  dth, int height)
25c0: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
25d0: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 49 6e 69  ion void glutIni
25e0: 74 57 69 6e 64 6f 77 53 69 7a 65 20 28 69 6e 74  tWindowSize (int
25f0: 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69   int))..  ;; voi
2600: 64 20 67 6c 75 74 4d 61 69 6e 4c 6f 6f 70 28 76  d glutMainLoop(v
2610: 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66  oid).  (define-f
2620: 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75  unction void glu
2630: 74 4d 61 69 6e 4c 6f 6f 70 20 28 29 29 0a 0a 20  tMainLoop ()).. 
2640: 20 3b 3b 20 69 6e 74 20 67 6c 75 74 43 72 65 61   ;; int glutCrea
2650: 74 65 57 69 6e 64 6f 77 28 63 6f 6e 73 74 20 63  teWindow(const c
2660: 68 61 72 20 2a 74 69 74 6c 65 29 0a 20 20 28 64  har *title).  (d
2670: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 69  efine-function i
2680: 6e 74 20 67 6c 75 74 43 72 65 61 74 65 57 69 6e  nt glutCreateWin
2690: 64 6f 77 20 28 73 74 72 69 6e 67 29 29 0a 0a 20  dow (string)).. 
26a0: 20 3b 3b 20 69 6e 74 20 67 6c 75 74 43 72 65 61   ;; int glutCrea
26b0: 74 65 53 75 62 57 69 6e 64 6f 77 28 69 6e 74 20  teSubWindow(int 
26c0: 77 69 6e 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20  win, int x, int 
26d0: 79 2c 20 69 6e 74 20 77 69 64 74 68 2c 20 69 6e  y, int width, in
26e0: 74 20 68 65 69 67 68 74 29 0a 20 20 28 64 65 66  t height).  (def
26f0: 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6e 74  ine-function int
2700: 20 67 6c 75 74 43 72 65 61 74 65 53 75 62 57 69   glutCreateSubWi
2710: 6e 64 6f 77 20 28 69 6e 74 20 69 6e 74 20 69 6e  ndow (int int in
2720: 74 20 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b  t int int))..  ;
2730: 3b 20 76 6f 69 64 20 67 6c 75 74 44 65 73 74 72  ; void glutDestr
2740: 6f 79 57 69 6e 64 6f 77 28 69 6e 74 20 77 69 6e  oyWindow(int win
2750: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
2760: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 44 65  tion void glutDe
2770: 73 74 72 6f 79 57 69 6e 64 6f 77 20 28 69 6e 74  stroyWindow (int
2780: 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c  ))..  ;; void gl
2790: 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 28  utPostRedisplay(
27a0: 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d  void).  (define-
27b0: 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c  function void gl
27c0: 75 74 50 6f 73 74 52 65 64 69 73 70 6c 61 79 20  utPostRedisplay 
27d0: 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  ())..  ;; void g
27e0: 6c 75 74 50 6f 73 74 57 69 6e 64 6f 77 52 65 64  lutPostWindowRed
27f0: 69 73 70 6c 61 79 28 69 6e 74 20 77 69 6e 29 0a  isplay(int win).
2800: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
2810: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 50 6f 73 74  on void glutPost
2820: 57 69 6e 64 6f 77 52 65 64 69 73 70 6c 61 79 20  WindowRedisplay 
2830: 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  (int))..  ;; voi
2840: 64 20 67 6c 75 74 53 77 61 70 42 75 66 66 65 72  d glutSwapBuffer
2850: 73 28 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e  s(void).  (defin
2860: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
2870: 67 6c 75 74 53 77 61 70 42 75 66 66 65 72 73 20  glutSwapBuffers 
2880: 28 29 29 0a 0a 20 20 3b 3b 20 69 6e 74 20 67 6c  ())..  ;; int gl
2890: 75 74 47 65 74 57 69 6e 64 6f 77 28 76 6f 69 64  utGetWindow(void
28a0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
28b0: 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 47 65 74  tion int glutGet
28c0: 57 69 6e 64 6f 77 20 28 29 29 0a 0a 20 20 3b 3b  Window ())..  ;;
28d0: 20 76 6f 69 64 20 67 6c 75 74 53 65 74 57 69 6e   void glutSetWin
28e0: 64 6f 77 28 69 6e 74 20 77 69 6e 29 0a 20 20 28  dow(int win).  (
28f0: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
2900: 76 6f 69 64 20 67 6c 75 74 53 65 74 57 69 6e 64  void glutSetWind
2910: 6f 77 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20  ow (int))..  ;; 
2920: 76 6f 69 64 20 67 6c 75 74 53 65 74 57 69 6e 64  void glutSetWind
2930: 6f 77 54 69 74 6c 65 28 63 6f 6e 73 74 20 63 68  owTitle(const ch
2940: 61 72 20 2a 74 69 74 6c 65 29 0a 20 20 28 64 65  ar *title).  (de
2950: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
2960: 69 64 20 67 6c 75 74 53 65 74 57 69 6e 64 6f 77  id glutSetWindow
2970: 54 69 74 6c 65 20 28 73 74 72 69 6e 67 29 29 0a  Title (string)).
2980: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53  .  ;; void glutS
2990: 65 74 49 63 6f 6e 54 69 74 6c 65 28 63 6f 6e 73  etIconTitle(cons
29a0: 74 20 63 68 61 72 20 2a 74 69 74 6c 65 29 0a 20  t char *title). 
29b0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
29c0: 6e 20 76 6f 69 64 20 67 6c 75 74 53 65 74 49 63  n void glutSetIc
29d0: 6f 6e 54 69 74 6c 65 20 28 73 74 72 69 6e 67 29  onTitle (string)
29e0: 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75  )..  ;; void glu
29f0: 74 50 6f 73 69 74 69 6f 6e 57 69 6e 64 6f 77 28  tPositionWindow(
2a00: 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 0a 20 20  int x, int y).  
2a10: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
2a20: 20 76 6f 69 64 20 67 6c 75 74 50 6f 73 69 74 69   void glutPositi
2a30: 6f 6e 57 69 6e 64 6f 77 20 28 69 6e 74 20 69 6e  onWindow (int in
2a40: 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  t))..  ;; void g
2a50: 6c 75 74 52 65 73 68 61 70 65 57 69 6e 64 6f 77  lutReshapeWindow
2a60: 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20  (int width, int 
2a70: 68 65 69 67 68 74 29 0a 20 20 28 64 65 66 69 6e  height).  (defin
2a80: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
2a90: 67 6c 75 74 52 65 73 68 61 70 65 57 69 6e 64 6f  glutReshapeWindo
2aa0: 77 20 28 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20  w (int int))..  
2ab0: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 50 6f 70 57  ;; void glutPopW
2ac0: 69 6e 64 6f 77 28 76 6f 69 64 29 0a 20 20 28 64  indow(void).  (d
2ad0: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76  efine-function v
2ae0: 6f 69 64 20 67 6c 75 74 50 6f 70 57 69 6e 64 6f  oid glutPopWindo
2af0: 77 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  w ())..  ;; void
2b00: 20 67 6c 75 74 50 75 73 68 57 69 6e 64 6f 77 28   glutPushWindow(
2b10: 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d  void).  (define-
2b20: 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c  function void gl
2b30: 75 74 50 75 73 68 57 69 6e 64 6f 77 20 28 29 29  utPushWindow ())
2b40: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
2b50: 49 63 6f 6e 69 66 79 57 69 6e 64 6f 77 28 76 6f  IconifyWindow(vo
2b60: 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  id).  (define-fu
2b70: 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74  nction void glut
2b80: 49 63 6f 6e 69 66 79 57 69 6e 64 6f 77 20 28 29  IconifyWindow ()
2b90: 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75  )..  ;; void glu
2ba0: 74 53 68 6f 77 57 69 6e 64 6f 77 28 76 6f 69 64  tShowWindow(void
2bb0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
2bc0: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 68  tion void glutSh
2bd0: 6f 77 57 69 6e 64 6f 77 20 28 29 29 0a 0a 20 20  owWindow ())..  
2be0: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 48 69 64 65  ;; void glutHide
2bf0: 57 69 6e 64 6f 77 28 76 6f 69 64 29 0a 20 20 28  Window(void).  (
2c00: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
2c10: 76 6f 69 64 20 67 6c 75 74 48 69 64 65 57 69 6e  void glutHideWin
2c20: 64 6f 77 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f  dow ())..  ;; vo
2c30: 69 64 20 67 6c 75 74 46 75 6c 6c 53 63 72 65 65  id glutFullScree
2c40: 6e 28 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e  n(void).  (defin
2c50: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
2c60: 67 6c 75 74 46 75 6c 6c 53 63 72 65 65 6e 20 28  glutFullScreen (
2c70: 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c  ))..  ;; void gl
2c80: 75 74 53 65 74 43 75 72 73 6f 72 28 69 6e 74 20  utSetCursor(int 
2c90: 63 75 72 73 6f 72 29 0a 20 20 28 64 65 66 69 6e  cursor).  (defin
2ca0: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
2cb0: 67 6c 75 74 53 65 74 43 75 72 73 6f 72 20 28 69  glutSetCursor (i
2cc0: 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20  nt))..  ;; void 
2cd0: 67 6c 75 74 57 61 72 70 50 6f 69 6e 74 65 72 28  glutWarpPointer(
2ce0: 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 0a 20 20  int x, int y).  
2cf0: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
2d00: 20 76 6f 69 64 20 67 6c 75 74 57 61 72 70 50 6f   void glutWarpPo
2d10: 69 6e 74 65 72 20 28 69 6e 74 20 69 6e 74 29 29  inter (int int))
2d20: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
2d30: 45 73 74 61 62 6c 69 73 68 4f 76 65 72 6c 61 79  EstablishOverlay
2d40: 28 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65  (void).  (define
2d50: 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67  -function void g
2d60: 6c 75 74 45 73 74 61 62 6c 69 73 68 4f 76 65 72  lutEstablishOver
2d70: 6c 61 79 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f  lay ())..  ;; vo
2d80: 69 64 20 67 6c 75 74 52 65 6d 6f 76 65 4f 76 65  id glutRemoveOve
2d90: 72 6c 61 79 28 76 6f 69 64 29 0a 20 20 28 64 65  rlay(void).  (de
2da0: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
2db0: 69 64 20 67 6c 75 74 52 65 6d 6f 76 65 4f 76 65  id glutRemoveOve
2dc0: 72 6c 61 79 20 28 29 29 0a 0a 20 20 3b 3b 20 76  rlay ())..  ;; v
2dd0: 6f 69 64 20 67 6c 75 74 55 73 65 4c 61 79 65 72  oid glutUseLayer
2de0: 28 47 4c 65 6e 75 6d 20 6c 61 79 65 72 29 0a 20  (GLenum layer). 
2df0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
2e00: 6e 20 76 6f 69 64 20 67 6c 75 74 55 73 65 4c 61  n void glutUseLa
2e10: 79 65 72 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b  yer (int))..  ;;
2e20: 20 76 6f 69 64 20 67 6c 75 74 50 6f 73 74 4f 76   void glutPostOv
2e30: 65 72 6c 61 79 52 65 64 69 73 70 6c 61 79 28 76  erlayRedisplay(v
2e40: 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66  oid).  (define-f
2e50: 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75  unction void glu
2e60: 74 50 6f 73 74 4f 76 65 72 6c 61 79 52 65 64 69  tPostOverlayRedi
2e70: 73 70 6c 61 79 20 28 29 29 0a 0a 20 20 3b 3b 20  splay ())..  ;; 
2e80: 76 6f 69 64 20 67 6c 75 74 50 6f 73 74 57 69 6e  void glutPostWin
2e90: 64 6f 77 4f 76 65 72 6c 61 79 52 65 64 69 73 70  dowOverlayRedisp
2ea0: 6c 61 79 28 69 6e 74 20 77 69 6e 29 0a 20 20 28  lay(int win).  (
2eb0: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
2ec0: 76 6f 69 64 20 67 6c 75 74 50 6f 73 74 57 69 6e  void glutPostWin
2ed0: 64 6f 77 4f 76 65 72 6c 61 79 52 65 64 69 73 70  dowOverlayRedisp
2ee0: 6c 61 79 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b  lay (int))..  ;;
2ef0: 20 76 6f 69 64 20 67 6c 75 74 53 68 6f 77 4f 76   void glutShowOv
2f00: 65 72 6c 61 79 28 76 6f 69 64 29 0a 20 20 28 64  erlay(void).  (d
2f10: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76  efine-function v
2f20: 6f 69 64 20 67 6c 75 74 53 68 6f 77 4f 76 65 72  oid glutShowOver
2f30: 6c 61 79 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f  lay ())..  ;; vo
2f40: 69 64 20 67 6c 75 74 48 69 64 65 4f 76 65 72 6c  id glutHideOverl
2f50: 61 79 28 76 6f 69 64 29 0a 20 20 28 64 65 66 69  ay(void).  (defi
2f60: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64  ne-function void
2f70: 20 67 6c 75 74 48 69 64 65 4f 76 65 72 6c 61 79   glutHideOverlay
2f80: 20 28 29 29 0a 0a 20 20 3b 3b 20 69 6e 74 20 67   ())..  ;; int g
2f90: 6c 75 74 43 72 65 61 74 65 4d 65 6e 75 28 76 6f  lutCreateMenu(vo
2fa0: 69 64 20 28 2a 29 28 69 6e 74 29 29 0a 0a 20 20  id (*)(int))..  
2fb0: 3b 3b 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  ;; (define-funct
2fc0: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 43 72 65  ion void glutCre
2fd0: 61 74 65 4d 65 6e 75 20 28 5b 63 2d 63 61 6c 6c  ateMenu ([c-call
2fe0: 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74 29 5d  back void (int)]
2ff0: 29 29 0a 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  ))..  (define-fu
3000: 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61  nction/single-ca
3010: 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75 74  llback void glut
3020: 43 72 65 61 74 65 4d 65 6e 75 20 28 28 63 61 6c  CreateMenu ((cal
3030: 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74 29  lback void (int)
3040: 29 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  )))..  ;; void g
3050: 6c 75 74 44 65 73 74 72 6f 79 4d 65 6e 75 28 69  lutDestroyMenu(i
3060: 6e 74 20 6d 65 6e 75 29 0a 20 20 28 64 65 66 69  nt menu).  (defi
3070: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64  ne-function void
3080: 20 67 6c 75 74 44 65 73 74 72 6f 79 4d 65 6e 75   glutDestroyMenu
3090: 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 69 6e   (int))..  ;; in
30a0: 74 20 67 6c 75 74 47 65 74 4d 65 6e 75 28 76 6f  t glutGetMenu(vo
30b0: 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  id).  (define-fu
30c0: 6e 63 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 47  nction int glutG
30d0: 65 74 4d 65 6e 75 20 28 29 29 0a 0a 20 20 3b 3b  etMenu ())..  ;;
30e0: 20 76 6f 69 64 20 67 6c 75 74 53 65 74 4d 65 6e   void glutSetMen
30f0: 75 28 69 6e 74 20 6d 65 6e 75 29 0a 20 20 28 64  u(int menu).  (d
3100: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76  efine-function v
3110: 6f 69 64 20 67 6c 75 74 53 65 74 4d 65 6e 75 20  oid glutSetMenu 
3120: 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  (int))..  ;; voi
3130: 64 20 67 6c 75 74 41 64 64 4d 65 6e 75 45 6e 74  d glutAddMenuEnt
3140: 72 79 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c  ry(const char *l
3150: 61 62 65 6c 2c 20 69 6e 74 20 76 61 6c 75 65 29  abel, int value)
3160: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
3170: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 41 64 64  ion void glutAdd
3180: 4d 65 6e 75 45 6e 74 72 79 20 28 73 74 72 69 6e  MenuEntry (strin
3190: 67 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f  g int))..  ;; vo
31a0: 69 64 20 67 6c 75 74 41 64 64 53 75 62 4d 65 6e  id glutAddSubMen
31b0: 75 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61  u(const char *la
31c0: 62 65 6c 2c 20 69 6e 74 20 73 75 62 6d 65 6e 75  bel, int submenu
31d0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
31e0: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 41 64  tion void glutAd
31f0: 64 53 75 62 4d 65 6e 75 20 28 73 74 72 69 6e 67  dSubMenu (string
3200: 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69   int))..  ;; voi
3210: 64 20 67 6c 75 74 43 68 61 6e 67 65 54 6f 4d 65  d glutChangeToMe
3220: 6e 75 45 6e 74 72 79 28 69 6e 74 20 69 74 65 6d  nuEntry(int item
3230: 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6c 61  , const char *la
3240: 62 65 6c 2c 20 69 6e 74 20 76 61 6c 75 65 29 0a  bel, int value).
3250: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
3260: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 43 68 61 6e  on void glutChan
3270: 67 65 54 6f 4d 65 6e 75 45 6e 74 72 79 20 28 69  geToMenuEntry (i
3280: 6e 74 20 73 74 72 69 6e 67 20 69 6e 74 29 29 0a  nt string int)).
3290: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 43  .  ;; void glutC
32a0: 68 61 6e 67 65 54 6f 53 75 62 4d 65 6e 75 28 69  hangeToSubMenu(i
32b0: 6e 74 20 69 74 65 6d 2c 20 63 6f 6e 73 74 20 63  nt item, const c
32c0: 68 61 72 20 2a 6c 61 62 65 6c 2c 20 69 6e 74 20  har *label, int 
32d0: 73 75 62 6d 65 6e 75 29 0a 20 20 28 64 65 66 69  submenu).  (defi
32e0: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64  ne-function void
32f0: 20 67 6c 75 74 43 68 61 6e 67 65 54 6f 53 75 62   glutChangeToSub
3300: 4d 65 6e 75 20 28 69 6e 74 20 73 74 72 69 6e 67  Menu (int string
3310: 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69   int))..  ;; voi
3320: 64 20 67 6c 75 74 52 65 6d 6f 76 65 4d 65 6e 75  d glutRemoveMenu
3330: 49 74 65 6d 28 69 6e 74 20 69 74 65 6d 29 0a 20  Item(int item). 
3340: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
3350: 6e 20 76 6f 69 64 20 67 6c 75 74 52 65 6d 6f 76  n void glutRemov
3360: 65 4d 65 6e 75 49 74 65 6d 20 28 69 6e 74 29 29  eMenuItem (int))
3370: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
3380: 41 74 74 61 63 68 4d 65 6e 75 28 69 6e 74 20 62  AttachMenu(int b
3390: 75 74 74 6f 6e 29 0a 20 20 28 64 65 66 69 6e 65  utton).  (define
33a0: 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67  -function void g
33b0: 6c 75 74 41 74 74 61 63 68 4d 65 6e 75 20 28 69  lutAttachMenu (i
33c0: 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20  nt))..  ;; void 
33d0: 67 6c 75 74 44 65 74 61 63 68 4d 65 6e 75 28 69  glutDetachMenu(i
33e0: 6e 74 20 62 75 74 74 6f 6e 29 0a 20 20 28 64 65  nt button).  (de
33f0: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
3400: 69 64 20 67 6c 75 74 44 65 74 61 63 68 4d 65 6e  id glutDetachMen
3410: 75 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76  u (int))..  ;; v
3420: 6f 69 64 20 67 6c 75 74 44 69 73 70 6c 61 79 46  oid glutDisplayF
3430: 75 6e 63 28 76 6f 69 64 20 28 2a 66 75 6e 63 29  unc(void (*func)
3440: 28 76 6f 69 64 29 29 0a 20 20 3b 3b 20 28 64 65  (void)).  ;; (de
3450: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
3460: 69 64 20 67 6c 75 74 44 69 73 70 6c 61 79 46 75  id glutDisplayFu
3470: 6e 63 20 28 5b 63 2d 63 61 6c 6c 62 61 63 6b 20  nc ([c-callback 
3480: 76 6f 69 64 20 28 29 5d 29 29 0a 0a 20 20 28 64  void ()]))..  (d
3490: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73  efine-function/s
34a0: 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76  ingle-callback v
34b0: 6f 69 64 20 67 6c 75 74 44 69 73 70 6c 61 79 46  oid glutDisplayF
34c0: 75 6e 63 20 28 28 63 61 6c 6c 62 61 63 6b 20 76  unc ((callback v
34d0: 6f 69 64 20 28 29 29 29 29 0a 0a 20 20 3b 3b 20  oid ())))..  ;; 
34e0: 76 6f 69 64 20 67 6c 75 74 52 65 73 68 61 70 65  void glutReshape
34f0: 46 75 6e 63 28 76 6f 69 64 20 28 2a 66 75 6e 63  Func(void (*func
3500: 29 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74  )(int width, int
3510: 20 68 65 69 67 68 74 29 29 0a 20 20 3b 3b 20 28   height)).  ;; (
3520: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
3530: 76 6f 69 64 20 67 6c 75 74 52 65 73 68 61 70 65  void glutReshape
3540: 46 75 6e 63 20 28 5b 63 2d 63 61 6c 6c 62 61 63  Func ([c-callbac
3550: 6b 20 76 6f 69 64 20 28 69 6e 74 20 69 6e 74 29  k void (int int)
3560: 5d 29 29 0a 0a 20 20 28 64 65 66 69 6e 65 2d 66  ]))..  (define-f
3570: 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63  unction/single-c
3580: 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75  allback void glu
3590: 74 52 65 73 68 61 70 65 46 75 6e 63 20 28 5b 63  tReshapeFunc ([c
35a0: 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e  allback void (in
35b0: 74 20 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20  t int)]))..  ;; 
35c0: 76 6f 69 64 20 67 6c 75 74 4b 65 79 62 6f 61 72  void glutKeyboar
35d0: 64 46 75 6e 63 28 76 6f 69 64 20 28 2a 66 75 6e  dFunc(void (*fun
35e0: 63 29 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72  c)(unsigned char
35f0: 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74   key, int x, int
3600: 20 79 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 66   y)).  (define-f
3610: 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63  unction/single-c
3620: 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75  allback void glu
3630: 74 4b 65 79 62 6f 61 72 64 46 75 6e 63 20 28 5b  tKeyboardFunc ([
3640: 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69  callback void (i
3650: 6e 74 20 69 6e 74 20 69 6e 74 29 5d 29 29 0a 0a  nt int int)]))..
3660: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 4d 6f    ;; void glutMo
3670: 75 73 65 46 75 6e 63 28 76 6f 69 64 20 28 2a 66  useFunc(void (*f
3680: 75 6e 63 29 28 69 6e 74 20 62 75 74 74 6f 6e 2c  unc)(int button,
3690: 20 69 6e 74 20 73 74 61 74 65 2c 20 69 6e 74 20   int state, int 
36a0: 78 2c 20 69 6e 74 20 79 29 29 0a 20 20 28 64 65  x, int y)).  (de
36b0: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73 69  fine-function/si
36c0: 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76 6f  ngle-callback vo
36d0: 69 64 20 67 6c 75 74 4d 6f 75 73 65 46 75 6e 63  id glutMouseFunc
36e0: 20 28 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64   ([callback void
36f0: 20 28 69 6e 74 20 69 6e 74 20 69 6e 74 20 69 6e   (int int int in
3700: 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  t)]))..  ;; void
3710: 20 67 6c 75 74 4d 6f 74 69 6f 6e 46 75 6e 63 28   glutMotionFunc(
3720: 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69 6e 74  void (*func)(int
3730: 20 78 2c 20 69 6e 74 20 79 29 29 0a 20 20 28 64   x, int y)).  (d
3740: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73  efine-function/s
3750: 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76  ingle-callback v
3760: 6f 69 64 20 67 6c 75 74 4d 6f 74 69 6f 6e 46 75  oid glutMotionFu
3770: 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b 20 76 6f  nc ([callback vo
3780: 69 64 20 28 69 6e 74 20 69 6e 74 29 5d 29 29 0a  id (int int)])).
3790: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 50  .  ;; void glutP
37a0: 61 73 73 69 76 65 4d 6f 74 69 6f 6e 46 75 6e 63  assiveMotionFunc
37b0: 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69 6e  (void (*func)(in
37c0: 74 20 78 2c 20 69 6e 74 20 79 29 29 0a 20 20 28  t x, int y)).  (
37d0: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f  define-function/
37e0: 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20  single-callback 
37f0: 76 6f 69 64 20 67 6c 75 74 50 61 73 73 69 76 65  void glutPassive
3800: 4d 6f 74 69 6f 6e 46 75 6e 63 20 28 5b 63 61 6c  MotionFunc ([cal
3810: 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74 20  lback void (int 
3820: 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f  int)]))..  ;; vo
3830: 69 64 20 67 6c 75 74 45 6e 74 72 79 46 75 6e 63  id glutEntryFunc
3840: 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69 6e  (void (*func)(in
3850: 74 20 73 74 61 74 65 29 29 0a 20 20 28 64 65 66  t state)).  (def
3860: 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73 69 6e  ine-function/sin
3870: 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76 6f 69  gle-callback voi
3880: 64 20 67 6c 75 74 45 6e 74 72 79 46 75 6e 63 20  d glutEntryFunc 
3890: 28 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20  ([callback void 
38a0: 28 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76  (int)]))..  ;; v
38b0: 6f 69 64 20 67 6c 75 74 56 69 73 69 62 69 6c 69  oid glutVisibili
38c0: 74 79 46 75 6e 63 28 76 6f 69 64 20 28 2a 66 75  tyFunc(void (*fu
38d0: 6e 63 29 28 69 6e 74 20 73 74 61 74 65 29 29 0a  nc)(int state)).
38e0: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
38f0: 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61  on/single-callba
3900: 63 6b 20 76 6f 69 64 20 67 6c 75 74 56 69 73 69  ck void glutVisi
3910: 62 69 6c 69 74 79 46 75 6e 63 20 28 5b 63 61 6c  bilityFunc ([cal
3920: 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74 29  lback void (int)
3930: 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  ]))..  ;; void g
3940: 6c 75 74 49 64 6c 65 46 75 6e 63 28 76 6f 69 64  lutIdleFunc(void
3950: 20 28 2a 66 75 6e 63 29 28 76 6f 69 64 29 29 0a   (*func)(void)).
3960: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
3970: 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61  on/single-callba
3980: 63 6b 20 76 6f 69 64 20 67 6c 75 74 49 64 6c 65  ck void glutIdle
3990: 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b 20  Func ([callback 
39a0: 76 6f 69 64 20 28 29 5d 29 29 0a 0a 20 20 3b 3b  void ()]))..  ;;
39b0: 20 76 6f 69 64 20 67 6c 75 74 54 69 6d 65 72 46   void glutTimerF
39c0: 75 6e 63 28 75 6e 73 69 67 6e 65 64 20 69 6e 74  unc(unsigned int
39d0: 20 6d 69 6c 6c 69 73 2c 20 76 6f 69 64 20 28 2a   millis, void (*
39e0: 66 75 6e 63 29 28 69 6e 74 20 76 61 6c 75 65 29  func)(int value)
39f0: 2c 20 69 6e 74 20 76 61 6c 75 65 29 0a 20 20 3b  , int value).  ;
3a00: 3b 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69  ; (define-functi
3a10: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 54 69 6d 65  on void glutTime
3a20: 72 46 75 6e 63 20 28 69 6e 74 20 5b 63 2d 63 61  rFunc (int [c-ca
3a30: 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74  llback void (int
3a40: 29 5d 20 69 6e 74 29 29 0a 0a 20 20 28 64 65 66  )] int))..  (def
3a50: 69 6e 65 20 67 6c 75 74 54 69 6d 65 72 46 75 6e  ine glutTimerFun
3a60: 63 0a 20 20 20 20 28 6c 65 74 20 28 28 66 20 28  c.    (let ((f (
3a70: 66 6f 72 65 69 67 6e 2d 70 72 6f 63 65 64 75 72  foreign-procedur
3a80: 65 20 22 67 6c 75 74 54 69 6d 65 72 46 75 6e 63  e "glutTimerFunc
3a90: 22 20 28 75 6e 73 69 67 6e 65 64 2d 69 6e 74 20  " (unsigned-int 
3aa0: 69 6e 74 20 69 6e 74 29 20 76 6f 69 64 29 29 29  int int) void)))
3ab0: 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28  .      (lambda (
3ac0: 6d 69 6c 6c 69 73 20 70 72 6f 63 20 76 61 6c 75  millis proc valu
3ad0: 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20  e).        (let 
3ae0: 28 28 63 6f 64 65 20 28 66 6f 72 65 69 67 6e 2d  ((code (foreign-
3af0: 63 61 6c 6c 61 62 6c 65 20 70 72 6f 63 20 28 69  callable proc (i
3b00: 6e 74 29 20 76 6f 69 64 29 29 29 0a 20 20 20 20  nt) void))).    
3b10: 20 20 20 20 20 20 28 6c 6f 63 6b 2d 6f 62 6a 65        (lock-obje
3b20: 63 74 20 63 6f 64 65 29 0a 20 20 20 20 20 20 20  ct code).       
3b30: 20 20 20 28 66 20 6d 69 6c 6c 69 73 0a 20 20 20     (f millis.   
3b40: 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 65 69            (forei
3b50: 67 6e 2d 63 61 6c 6c 61 62 6c 65 2d 65 6e 74 72  gn-callable-entr
3b60: 79 2d 70 6f 69 6e 74 20 63 6f 64 65 29 0a 20 20  y-point code).  
3b70: 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65             value
3b80: 29 29 29 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  )))))..  ;; void
3b90: 20 67 6c 75 74 4d 65 6e 75 53 74 61 74 65 46 75   glutMenuStateFu
3ba0: 6e 63 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28  nc(void (*func)(
3bb0: 69 6e 74 20 73 74 61 74 65 29 29 0a 20 20 28 64  int state)).  (d
3bc0: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73  efine-function/s
3bd0: 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76  ingle-callback v
3be0: 6f 69 64 20 67 6c 75 74 4d 65 6e 75 53 74 61 74  oid glutMenuStat
3bf0: 65 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b  eFunc ([callback
3c00: 20 76 6f 69 64 20 28 69 6e 74 29 5d 29 29 0a 0a   void (int)]))..
3c10: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53 70    ;; void glutSp
3c20: 65 63 69 61 6c 46 75 6e 63 28 76 6f 69 64 20 28  ecialFunc(void (
3c30: 2a 66 75 6e 63 29 28 69 6e 74 20 6b 65 79 2c 20  *func)(int key, 
3c40: 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 29 0a 20  int x, int y)). 
3c50: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
3c60: 6e 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63  n/single-callbac
3c70: 6b 20 76 6f 69 64 20 67 6c 75 74 53 70 65 63 69  k void glutSpeci
3c80: 61 6c 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63  alFunc ([callbac
3c90: 6b 20 76 6f 69 64 20 28 69 6e 74 20 69 6e 74 20  k void (int int 
3ca0: 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f  int)]))..  ;; vo
3cb0: 69 64 20 67 6c 75 74 53 70 61 63 65 62 61 6c 6c  id glutSpaceball
3cc0: 4d 6f 74 69 6f 6e 46 75 6e 63 28 76 6f 69 64 20  MotionFunc(void 
3cd0: 28 2a 66 75 6e 63 29 28 69 6e 74 20 78 2c 20 69  (*func)(int x, i
3ce0: 6e 74 20 79 2c 20 69 6e 74 20 7a 29 29 0a 20 20  nt y, int z)).  
3cf0: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
3d00: 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b  /single-callback
3d10: 20 76 6f 69 64 20 67 6c 75 74 53 70 61 63 65 62   void glutSpaceb
3d20: 61 6c 6c 4d 6f 74 69 6f 6e 46 75 6e 63 20 28 5b  allMotionFunc ([
3d30: 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69  callback void (i
3d40: 6e 74 20 69 6e 74 20 69 6e 74 29 5d 29 29 0a 0a  nt int int)]))..
3d50: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53 70    ;; void glutSp
3d60: 61 63 65 62 61 6c 6c 52 6f 74 61 74 65 46 75 6e  aceballRotateFun
3d70: 63 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69  c(void (*func)(i
3d80: 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74  nt x, int y, int
3d90: 20 7a 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 66   z)).  (define-f
3da0: 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63  unction/single-c
3db0: 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75  allback void glu
3dc0: 74 53 70 61 63 65 62 61 6c 6c 52 6f 74 61 74 65  tSpaceballRotate
3dd0: 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b 20  Func ([callback 
3de0: 76 6f 69 64 20 28 69 6e 74 20 69 6e 74 20 69 6e  void (int int in
3df0: 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  t)]))..  ;; void
3e00: 20 67 6c 75 74 53 70 61 63 65 62 61 6c 6c 42 75   glutSpaceballBu
3e10: 74 74 6f 6e 46 75 6e 63 28 76 6f 69 64 20 28 2a  ttonFunc(void (*
3e20: 66 75 6e 63 29 28 69 6e 74 20 62 75 74 74 6f 6e  func)(int button
3e30: 2c 20 69 6e 74 20 73 74 61 74 65 29 29 0a 20 20  , int state)).  
3e40: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
3e50: 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b  /single-callback
3e60: 20 76 6f 69 64 20 67 6c 75 74 53 70 61 63 65 62   void glutSpaceb
3e70: 61 6c 6c 42 75 74 74 6f 6e 46 75 6e 63 20 28 5b  allButtonFunc ([
3e80: 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69  callback void (i
3e90: 6e 74 20 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b  nt int)]))..  ;;
3ea0: 20 76 6f 69 64 20 67 6c 75 74 42 75 74 74 6f 6e   void glutButton
3eb0: 42 6f 78 46 75 6e 63 28 76 6f 69 64 20 28 2a 66  BoxFunc(void (*f
3ec0: 75 6e 63 29 28 69 6e 74 20 62 75 74 74 6f 6e 2c  unc)(int button,
3ed0: 20 69 6e 74 20 73 74 61 74 65 29 29 0a 20 20 28   int state)).  (
3ee0: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f  define-function/
3ef0: 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20  single-callback 
3f00: 76 6f 69 64 20 67 6c 75 74 42 75 74 74 6f 6e 42  void glutButtonB
3f10: 6f 78 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63  oxFunc ([callbac
3f20: 6b 20 76 6f 69 64 20 28 69 6e 74 20 69 6e 74 29  k void (int int)
3f30: 5d 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  ]))..  ;; void g
3f40: 6c 75 74 44 69 61 6c 73 46 75 6e 63 28 76 6f 69  lutDialsFunc(voi
3f50: 64 20 28 2a 66 75 6e 63 29 28 69 6e 74 20 64 69  d (*func)(int di
3f60: 61 6c 2c 20 69 6e 74 20 76 61 6c 75 65 29 29 0a  al, int value)).
3f70: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
3f80: 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61  on/single-callba
3f90: 63 6b 20 76 6f 69 64 20 67 6c 75 74 44 69 61 6c  ck void glutDial
3fa0: 73 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b  sFunc ([callback
3fb0: 20 76 6f 69 64 20 28 69 6e 74 20 69 6e 74 29 5d   void (int int)]
3fc0: 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c  ))..  ;; void gl
3fd0: 75 74 54 61 62 6c 65 74 4d 6f 74 69 6f 6e 46 75  utTabletMotionFu
3fe0: 6e 63 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28  nc(void (*func)(
3ff0: 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 29 0a 20  int x, int y)). 
4000: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
4010: 6e 2f 73 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63  n/single-callbac
4020: 6b 20 76 6f 69 64 20 67 6c 75 74 54 61 62 6c 65  k void glutTable
4030: 74 4d 6f 74 69 6f 6e 46 75 6e 63 20 28 5b 63 61  tMotionFunc ([ca
4040: 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28 69 6e 74  llback void (int
4050: 20 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20 76   int)]))..  ;; v
4060: 6f 69 64 20 67 6c 75 74 54 61 62 6c 65 74 42 75  oid glutTabletBu
4070: 74 74 6f 6e 46 75 6e 63 28 76 6f 69 64 20 28 2a  ttonFunc(void (*
4080: 66 75 6e 63 29 28 69 6e 74 20 62 75 74 74 6f 6e  func)(int button
4090: 2c 20 69 6e 74 20 73 74 61 74 65 2c 20 69 6e 74  , int state, int
40a0: 20 78 2c 20 69 6e 74 20 79 29 29 0a 20 20 28 64   x, int y)).  (d
40b0: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 2f 73  efine-function/s
40c0: 69 6e 67 6c 65 2d 63 61 6c 6c 62 61 63 6b 20 76  ingle-callback v
40d0: 6f 69 64 20 67 6c 75 74 54 61 62 6c 65 74 42 75  oid glutTabletBu
40e0: 74 74 6f 6e 46 75 6e 63 20 28 5b 63 61 6c 6c 62  ttonFunc ([callb
40f0: 61 63 6b 20 76 6f 69 64 20 28 69 6e 74 20 69 6e  ack void (int in
4100: 74 20 69 6e 74 20 69 6e 74 29 5d 29 29 0a 0a 20  t int int)])).. 
4110: 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 4d 65 6e   ;; void glutMen
4120: 75 53 74 61 74 75 73 46 75 6e 63 28 76 6f 69 64  uStatusFunc(void
4130: 20 28 2a 66 75 6e 63 29 28 69 6e 74 20 73 74 61   (*func)(int sta
4140: 74 75 73 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20  tus, int x, int 
4150: 79 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  y)).  (define-fu
4160: 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61  nction/single-ca
4170: 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75 74  llback void glut
4180: 4d 65 6e 75 53 74 61 74 75 73 46 75 6e 63 20 28  MenuStatusFunc (
4190: 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28  [callback void (
41a0: 69 6e 74 20 69 6e 74 20 69 6e 74 29 5d 29 29 0a  int int int)])).
41b0: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 4f  .  ;; void glutO
41c0: 76 65 72 6c 61 79 44 69 73 70 6c 61 79 46 75 6e  verlayDisplayFun
41d0: 63 28 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 76  c(void (*func)(v
41e0: 6f 69 64 29 29 0a 20 20 28 64 65 66 69 6e 65 2d  oid)).  (define-
41f0: 66 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d  function/single-
4200: 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c  callback void gl
4210: 75 74 4f 76 65 72 6c 61 79 44 69 73 70 6c 61 79  utOverlayDisplay
4220: 46 75 6e 63 20 28 5b 63 61 6c 6c 62 61 63 6b 20  Func ([callback 
4230: 76 6f 69 64 20 28 29 5d 29 29 0a 0a 20 20 3b 3b  void ()]))..  ;;
4240: 20 76 6f 69 64 20 67 6c 75 74 57 69 6e 64 6f 77   void glutWindow
4250: 53 74 61 74 75 73 46 75 6e 63 28 76 6f 69 64 20  StatusFunc(void 
4260: 28 2a 66 75 6e 63 29 28 69 6e 74 20 73 74 61 74  (*func)(int stat
4270: 65 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  e)).  (define-fu
4280: 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63 61  nction/single-ca
4290: 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75 74  llback void glut
42a0: 57 69 6e 64 6f 77 53 74 61 74 75 73 46 75 6e 63  WindowStatusFunc
42b0: 20 28 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64   ([callback void
42c0: 20 28 69 6e 74 29 5d 29 29 0a 0a 20 20 3b 3b 20   (int)]))..  ;; 
42d0: 76 6f 69 64 20 67 6c 75 74 4b 65 79 62 6f 61 72  void glutKeyboar
42e0: 64 55 70 46 75 6e 63 28 76 6f 69 64 20 28 2a 66  dUpFunc(void (*f
42f0: 75 6e 63 29 28 75 6e 73 69 67 6e 65 64 20 63 68  unc)(unsigned ch
4300: 61 72 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69  ar key, int x, i
4310: 6e 74 20 79 29 29 0a 20 20 28 64 65 66 69 6e 65  nt y)).  (define
4320: 2d 66 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65  -function/single
4330: 2d 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67  -callback void g
4340: 6c 75 74 4b 65 79 62 6f 61 72 64 55 70 46 75 6e  lutKeyboardUpFun
4350: 63 20 28 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69  c ([callback voi
4360: 64 20 28 69 6e 74 20 69 6e 74 20 69 6e 74 29 5d  d (int int int)]
4370: 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c  ))..  ;; void gl
4380: 75 74 53 70 65 63 69 61 6c 55 70 46 75 6e 63 28  utSpecialUpFunc(
4390: 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69 6e 74  void (*func)(int
43a0: 20 6b 65 79 2c 20 69 6e 74 20 78 2c 20 69 6e 74   key, int x, int
43b0: 20 79 29 29 0a 20 20 28 64 65 66 69 6e 65 2d 66   y)).  (define-f
43c0: 75 6e 63 74 69 6f 6e 2f 73 69 6e 67 6c 65 2d 63  unction/single-c
43d0: 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 67 6c 75  allback void glu
43e0: 74 53 70 65 63 69 61 6c 55 70 46 75 6e 63 20 28  tSpecialUpFunc (
43f0: 5b 63 61 6c 6c 62 61 63 6b 20 76 6f 69 64 20 28  [callback void (
4400: 69 6e 74 20 69 6e 74 20 69 6e 74 29 5d 29 29 0a  int int int)])).
4410: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 4a  .  ;; void glutJ
4420: 6f 79 73 74 69 63 6b 46 75 6e 63 28 76 6f 69 64  oystickFunc(void
4430: 20 28 2a 66 75 6e 63 29 28 75 6e 73 69 67 6e 65   (*func)(unsigne
4440: 64 20 69 6e 74 20 62 75 74 74 6f 6e 4d 61 73 6b  d int buttonMask
4450: 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20  , int x, int y, 
4460: 69 6e 74 20 7a 29 2c 20 69 6e 74 20 70 6f 6c 6c  int z), int poll
4470: 49 6e 74 65 72 76 61 6c 29 0a 20 20 3b 3b 20 28  Interval).  ;; (
4480: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
4490: 76 6f 69 64 20 67 6c 75 74 4a 6f 79 73 74 69 63  void glutJoystic
44a0: 6b 46 75 6e 63 20 28 5b 63 2d 63 61 6c 6c 62 61  kFunc ([c-callba
44b0: 63 6b 20 76 6f 69 64 20 28 69 6e 74 20 69 6e 74  ck void (int int
44c0: 20 69 6e 74 20 69 6e 74 29 5d 20 69 6e 74 29 29   int int)] int))
44d0: 0a 0a 20 20 28 64 65 66 69 6e 65 20 67 6c 75 74  ..  (define glut
44e0: 4a 6f 79 73 74 69 63 6b 46 75 6e 63 0a 20 20 20  JoystickFunc.   
44f0: 20 28 6c 65 74 20 28 28 66 20 28 66 6f 72 65 69   (let ((f (forei
4500: 67 6e 2d 70 72 6f 63 65 64 75 72 65 20 22 67 6c  gn-procedure "gl
4510: 75 74 4a 6f 79 73 74 69 63 6b 46 75 6e 63 22 20  utJoystickFunc" 
4520: 28 69 6e 74 20 69 6e 74 29 20 76 6f 69 64 29 29  (int int) void))
4530: 29 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20  ).      (lambda 
4540: 28 70 72 6f 63 20 70 6f 6c 6c 2d 69 6e 74 65 72  (proc poll-inter
4550: 76 61 6c 29 0a 20 20 20 20 20 20 20 20 28 6c 65  val).        (le
4560: 74 20 28 28 63 6f 64 65 20 28 66 6f 72 65 69 67  t ((code (foreig
4570: 6e 2d 63 61 6c 6c 61 62 6c 65 20 70 72 6f 63 20  n-callable proc 
4580: 28 75 6e 73 69 67 6e 65 64 2d 69 6e 74 20 69 6e  (unsigned-int in
4590: 74 20 69 6e 74 20 69 6e 74 29 20 76 6f 69 64 29  t int int) void)
45a0: 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 6f  )).          (lo
45b0: 63 6b 2d 6f 62 6a 65 63 74 20 63 6f 64 65 29 0a  ck-object code).
45c0: 20 20 20 20 20 20 20 20 20 20 28 66 20 28 66 6f            (f (fo
45d0: 72 65 69 67 6e 2d 63 61 6c 6c 61 62 6c 65 2d 65  reign-callable-e
45e0: 6e 74 72 79 2d 70 6f 69 6e 74 20 63 6f 64 65 29  ntry-point code)
45f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f  .             po
4600: 6c 6c 2d 69 6e 74 65 72 76 61 6c 29 29 29 29 29  ll-interval)))))
4610: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
4620: 53 65 74 43 6f 6c 6f 72 28 69 6e 74 2c 20 47 4c  SetColor(int, GL
4630: 66 6c 6f 61 74 20 72 65 64 2c 20 47 4c 66 6c 6f  float red, GLflo
4640: 61 74 20 67 72 65 65 6e 2c 20 47 4c 66 6c 6f 61  at green, GLfloa
4650: 74 20 62 6c 75 65 29 0a 20 20 28 64 65 66 69 6e  t blue).  (defin
4660: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
4670: 67 6c 75 74 53 65 74 43 6f 6c 6f 72 20 28 69 6e  glutSetColor (in
4680: 74 20 66 6c 6f 61 74 20 66 6c 6f 61 74 20 66 6c  t float float fl
4690: 6f 61 74 29 29 0a 0a 20 20 3b 3b 20 47 4c 66 6c  oat))..  ;; GLfl
46a0: 6f 61 74 20 67 6c 75 74 47 65 74 43 6f 6c 6f 72  oat glutGetColor
46b0: 28 69 6e 74 20 6e 64 78 2c 20 69 6e 74 20 63 6f  (int ndx, int co
46c0: 6d 70 6f 6e 65 6e 74 29 0a 20 20 28 64 65 66 69  mponent).  (defi
46d0: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 64 6f 75 62  ne-function doub
46e0: 6c 65 20 67 6c 75 74 47 65 74 43 6f 6c 6f 72 20  le glutGetColor 
46f0: 28 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b 3b  (int int))..  ;;
4700: 20 76 6f 69 64 20 67 6c 75 74 43 6f 70 79 43 6f   void glutCopyCo
4710: 6c 6f 72 6d 61 70 28 69 6e 74 20 77 69 6e 29 0a  lormap(int win).
4720: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
4730: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 43 6f 70 79  on void glutCopy
4740: 43 6f 6c 6f 72 6d 61 70 20 28 69 6e 74 29 29 0a  Colormap (int)).
4750: 0a 20 20 3b 3b 20 69 6e 74 20 67 6c 75 74 47 65  .  ;; int glutGe
4760: 74 28 47 4c 65 6e 75 6d 20 74 79 70 65 29 0a 20  t(GLenum type). 
4770: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
4780: 6e 20 69 6e 74 20 67 6c 75 74 47 65 74 20 28 69  n int glutGet (i
4790: 6e 74 29 29 0a 0a 20 20 3b 3b 20 69 6e 74 20 67  nt))..  ;; int g
47a0: 6c 75 74 44 65 76 69 63 65 47 65 74 28 47 4c 65  lutDeviceGet(GLe
47b0: 6e 75 6d 20 74 79 70 65 29 0a 20 20 28 64 65 66  num type).  (def
47c0: 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6e 74  ine-function int
47d0: 20 67 6c 75 74 44 65 76 69 63 65 47 65 74 20 28   glutDeviceGet (
47e0: 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 69 6e 74 20  int))..  ;; int 
47f0: 67 6c 75 74 45 78 74 65 6e 73 69 6f 6e 53 75 70  glutExtensionSup
4800: 70 6f 72 74 65 64 28 63 6f 6e 73 74 20 63 68 61  ported(const cha
4810: 72 20 2a 6e 61 6d 65 29 0a 20 20 28 64 65 66 69  r *name).  (defi
4820: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6e 74 20  ne-function int 
4830: 67 6c 75 74 45 78 74 65 6e 73 69 6f 6e 53 75 70  glutExtensionSup
4840: 70 6f 72 74 65 64 20 28 73 74 72 69 6e 67 29 29  ported (string))
4850: 0a 0a 20 20 3b 3b 20 69 6e 74 20 67 6c 75 74 47  ..  ;; int glutG
4860: 65 74 4d 6f 64 69 66 69 65 72 73 28 76 6f 69 64  etModifiers(void
4870: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
4880: 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 47 65 74  tion int glutGet
4890: 4d 6f 64 69 66 69 65 72 73 20 28 29 29 0a 0a 20  Modifiers ()).. 
48a0: 20 3b 3b 20 69 6e 74 20 67 6c 75 74 4c 61 79 65   ;; int glutLaye
48b0: 72 47 65 74 28 47 4c 65 6e 75 6d 20 74 79 70 65  rGet(GLenum type
48c0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
48d0: 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 4c 61 79  tion int glutLay
48e0: 65 72 47 65 74 20 28 69 6e 74 29 29 0a 0a 20 20  erGet (int))..  
48f0: 3b 3b 20 76 6f 69 64 20 2a 20 67 6c 75 74 47 65  ;; void * glutGe
4900: 74 50 72 6f 63 41 64 64 72 65 73 73 28 63 6f 6e  tProcAddress(con
4910: 73 74 20 63 68 61 72 20 2a 70 72 6f 63 4e 61 6d  st char *procNam
4920: 65 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e  e).  (define-fun
4930: 63 74 69 6f 6e 20 76 6f 69 64 2a 20 67 6c 75 74  ction void* glut
4940: 47 65 74 50 72 6f 63 41 64 64 72 65 73 73 20 28  GetProcAddress (
4950: 73 74 72 69 6e 67 29 29 0a 0a 20 20 3b 3b 20 76  string))..  ;; v
4960: 6f 69 64 20 67 6c 75 74 42 69 74 6d 61 70 43 68  oid glutBitmapCh
4970: 61 72 61 63 74 65 72 28 76 6f 69 64 20 2a 66 6f  aracter(void *fo
4980: 6e 74 2c 20 69 6e 74 20 63 68 61 72 61 63 74 65  nt, int characte
4990: 72 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e  r).  (define-fun
49a0: 63 74 69 6f 6e 20 76 6f 69 64 2a 20 67 6c 75 74  ction void* glut
49b0: 42 69 74 6d 61 70 43 68 61 72 61 63 74 65 72 20  BitmapCharacter 
49c0: 28 76 6f 69 64 2a 20 69 6e 74 29 29 0a 0a 20 20  (void* int))..  
49d0: 3b 3b 20 69 6e 74 20 67 6c 75 74 42 69 74 6d 61  ;; int glutBitma
49e0: 70 57 69 64 74 68 28 76 6f 69 64 20 2a 66 6f 6e  pWidth(void *fon
49f0: 74 2c 20 69 6e 74 20 63 68 61 72 61 63 74 65 72  t, int character
4a00: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
4a10: 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 42 69 74  tion int glutBit
4a20: 6d 61 70 57 69 64 74 68 20 28 76 6f 69 64 2a 20  mapWidth (void* 
4a30: 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  int))..  ;; void
4a40: 20 67 6c 75 74 53 74 72 6f 6b 65 43 68 61 72 61   glutStrokeChara
4a50: 63 74 65 72 28 76 6f 69 64 20 2a 66 6f 6e 74 2c  cter(void *font,
4a60: 20 69 6e 74 20 63 68 61 72 61 63 74 65 72 29 0a   int character).
4a70: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
4a80: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 74 72 6f  on void glutStro
4a90: 6b 65 43 68 61 72 61 63 74 65 72 20 28 76 6f 69  keCharacter (voi
4aa0: 64 2a 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 69  d* int))..  ;; i
4ab0: 6e 74 20 67 6c 75 74 53 74 72 6f 6b 65 57 69 64  nt glutStrokeWid
4ac0: 74 68 28 76 6f 69 64 20 2a 66 6f 6e 74 2c 20 69  th(void *font, i
4ad0: 6e 74 20 63 68 61 72 61 63 74 65 72 29 0a 20 20  nt character).  
4ae0: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
4af0: 20 69 6e 74 20 67 6c 75 74 53 74 72 6f 6b 65 57   int glutStrokeW
4b00: 69 64 74 68 20 28 76 6f 69 64 2a 20 69 6e 74 29  idth (void* int)
4b10: 29 0a 0a 20 20 3b 3b 20 69 6e 74 20 67 6c 75 74  )..  ;; int glut
4b20: 42 69 74 6d 61 70 4c 65 6e 67 74 68 28 76 6f 69  BitmapLength(voi
4b30: 64 20 2a 66 6f 6e 74 2c 20 63 6f 6e 73 74 20 75  d *font, const u
4b40: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 2a 73 74  nsigned char *st
4b50: 72 69 6e 67 29 0a 20 20 28 64 65 66 69 6e 65 2d  ring).  (define-
4b60: 66 75 6e 63 74 69 6f 6e 20 69 6e 74 20 67 6c 75  function int glu
4b70: 74 42 69 74 6d 61 70 4c 65 6e 67 74 68 20 28 76  tBitmapLength (v
4b80: 6f 69 64 2a 20 73 74 72 69 6e 67 29 29 0a 0a 20  oid* string)).. 
4b90: 20 3b 3b 20 69 6e 74 20 67 6c 75 74 53 74 72 6f   ;; int glutStro
4ba0: 6b 65 4c 65 6e 67 74 68 28 76 6f 69 64 20 2a 66  keLength(void *f
4bb0: 6f 6e 74 2c 20 63 6f 6e 73 74 20 75 6e 73 69 67  ont, const unsig
4bc0: 6e 65 64 20 63 68 61 72 20 2a 73 74 72 69 6e 67  ned char *string
4bd0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
4be0: 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 53 74 72  tion int glutStr
4bf0: 6f 6b 65 4c 65 6e 67 74 68 20 28 76 6f 69 64 2a  okeLength (void*
4c00: 20 73 74 72 69 6e 67 29 29 0a 0a 20 20 3b 3b 20   string))..  ;; 
4c10: 76 6f 69 64 20 67 6c 75 74 57 69 72 65 53 70 68  void glutWireSph
4c20: 65 72 65 28 47 4c 64 6f 75 62 6c 65 20 72 61 64  ere(GLdouble rad
4c30: 69 75 73 2c 20 47 4c 69 6e 74 20 73 6c 69 63 65  ius, GLint slice
4c40: 73 2c 20 47 4c 69 6e 74 20 73 74 61 63 6b 73 29  s, GLint stacks)
4c50: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
4c60: 69 6f 6e 20 69 6e 74 20 67 6c 75 74 57 69 72 65  ion int glutWire
4c70: 53 70 68 65 72 65 20 28 64 6f 75 62 6c 65 20 69  Sphere (double i
4c80: 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76  nt int))..  ;; v
4c90: 6f 69 64 20 67 6c 75 74 53 6f 6c 69 64 53 70 68  oid glutSolidSph
4ca0: 65 72 65 28 47 4c 64 6f 75 62 6c 65 20 72 61 64  ere(GLdouble rad
4cb0: 69 75 73 2c 20 47 4c 69 6e 74 20 73 6c 69 63 65  ius, GLint slice
4cc0: 73 2c 20 47 4c 69 6e 74 20 73 74 61 63 6b 73 29  s, GLint stacks)
4cd0: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
4ce0: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c  ion void glutSol
4cf0: 69 64 53 70 68 65 72 65 20 28 64 6f 75 62 6c 65  idSphere (double
4d00: 20 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b 3b   int int))..  ;;
4d10: 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65 43 6f   void glutWireCo
4d20: 6e 65 28 47 4c 64 6f 75 62 6c 65 20 62 61 73 65  ne(GLdouble base
4d30: 2c 20 47 4c 64 6f 75 62 6c 65 20 68 65 69 67 68  , GLdouble heigh
4d40: 74 2c 20 47 4c 69 6e 74 20 73 6c 69 63 65 73 2c  t, GLint slices,
4d50: 20 47 4c 69 6e 74 20 73 74 61 63 6b 73 29 0a 20   GLint stacks). 
4d60: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
4d70: 6e 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65 43  n void glutWireC
4d80: 6f 6e 65 20 28 64 6f 75 62 6c 65 20 64 6f 75 62  one (double doub
4d90: 6c 65 20 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20  le int int))..  
4da0: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c 69  ;; void glutSoli
4db0: 64 43 6f 6e 65 28 47 4c 64 6f 75 62 6c 65 20 62  dCone(GLdouble b
4dc0: 61 73 65 2c 20 47 4c 64 6f 75 62 6c 65 20 68 65  ase, GLdouble he
4dd0: 69 67 68 74 2c 20 47 4c 69 6e 74 20 73 6c 69 63  ight, GLint slic
4de0: 65 73 2c 20 47 4c 69 6e 74 20 73 74 61 63 6b 73  es, GLint stacks
4df0: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
4e00: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 6f  tion void glutSo
4e10: 6c 69 64 43 6f 6e 65 20 28 64 6f 75 62 6c 65 20  lidCone (double 
4e20: 64 6f 75 62 6c 65 20 69 6e 74 20 69 6e 74 29 29  double int int))
4e30: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
4e40: 57 69 72 65 43 75 62 65 28 47 4c 64 6f 75 62 6c  WireCube(GLdoubl
4e50: 65 20 73 69 7a 65 29 0a 20 20 28 64 65 66 69 6e  e size).  (defin
4e60: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
4e70: 67 6c 75 74 57 69 72 65 43 75 62 65 20 28 64 6f  glutWireCube (do
4e80: 75 62 6c 65 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  uble))..  ;; voi
4e90: 64 20 67 6c 75 74 53 6f 6c 69 64 43 75 62 65 28  d glutSolidCube(
4ea0: 47 4c 64 6f 75 62 6c 65 20 73 69 7a 65 29 0a 20  GLdouble size). 
4eb0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
4ec0: 6e 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c 69 64  n void glutSolid
4ed0: 43 75 62 65 20 28 64 6f 75 62 6c 65 29 29 0a 0a  Cube (double))..
4ee0: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 57 69    ;; void glutWi
4ef0: 72 65 54 6f 72 75 73 28 47 4c 64 6f 75 62 6c 65  reTorus(GLdouble
4f00: 20 69 6e 6e 65 72 52 61 64 69 75 73 2c 20 47 4c   innerRadius, GL
4f10: 64 6f 75 62 6c 65 20 6f 75 74 65 72 52 61 64 69  double outerRadi
4f20: 75 73 2c 20 47 4c 69 6e 74 20 73 69 64 65 73 2c  us, GLint sides,
4f30: 20 47 4c 69 6e 74 20 72 69 6e 67 73 29 0a 20 20   GLint rings).  
4f40: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
4f50: 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65 54 6f   void glutWireTo
4f60: 72 75 73 20 28 64 6f 75 62 6c 65 20 64 6f 75 62  rus (double doub
4f70: 6c 65 20 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20  le int int))..  
4f80: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c 69  ;; void glutSoli
4f90: 64 54 6f 72 75 73 28 47 4c 64 6f 75 62 6c 65 20  dTorus(GLdouble 
4fa0: 69 6e 6e 65 72 52 61 64 69 75 73 2c 20 47 4c 64  innerRadius, GLd
4fb0: 6f 75 62 6c 65 20 6f 75 74 65 72 52 61 64 69 75  ouble outerRadiu
4fc0: 73 2c 20 47 4c 69 6e 74 20 73 69 64 65 73 2c 20  s, GLint sides, 
4fd0: 47 4c 69 6e 74 20 72 69 6e 67 73 29 0a 20 20 28  GLint rings).  (
4fe0: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
4ff0: 76 6f 69 64 20 67 6c 75 74 53 6f 6c 69 64 54 6f  void glutSolidTo
5000: 72 75 73 20 28 64 6f 75 62 6c 65 20 64 6f 75 62  rus (double doub
5010: 6c 65 20 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20  le int int))..  
5020: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65  ;; void glutWire
5030: 44 6f 64 65 63 61 68 65 64 72 6f 6e 28 76 6f 69  Dodecahedron(voi
5040: 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e  d).  (define-fun
5050: 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 57  ction void glutW
5060: 69 72 65 44 6f 64 65 63 61 68 65 64 72 6f 6e 20  ireDodecahedron 
5070: 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67  ())..  ;; void g
5080: 6c 75 74 53 6f 6c 69 64 44 6f 64 65 63 61 68 65  lutSolidDodecahe
5090: 64 72 6f 6e 28 76 6f 69 64 29 0a 20 20 28 64 65  dron(void).  (de
50a0: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
50b0: 69 64 20 67 6c 75 74 53 6f 6c 69 64 44 6f 64 65  id glutSolidDode
50c0: 63 61 68 65 64 72 6f 6e 20 28 29 29 0a 0a 20 20  cahedron ())..  
50d0: 3b 3b 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65  ;; void glutWire
50e0: 54 65 61 70 6f 74 28 47 4c 64 6f 75 62 6c 65 20  Teapot(GLdouble 
50f0: 73 69 7a 65 29 0a 20 20 28 64 65 66 69 6e 65 2d  size).  (define-
5100: 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c  function void gl
5110: 75 74 57 69 72 65 54 65 61 70 6f 74 20 28 64 6f  utWireTeapot (do
5120: 75 62 6c 65 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  uble))..  ;; voi
5130: 64 20 67 6c 75 74 53 6f 6c 69 64 54 65 61 70 6f  d glutSolidTeapo
5140: 74 28 47 4c 64 6f 75 62 6c 65 20 73 69 7a 65 29  t(GLdouble size)
5150: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
5160: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c  ion void glutSol
5170: 69 64 54 65 61 70 6f 74 20 28 64 6f 75 62 6c 65  idTeapot (double
5180: 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c  ))..  ;; void gl
5190: 75 74 57 69 72 65 4f 63 74 61 68 65 64 72 6f 6e  utWireOctahedron
51a0: 28 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65  (void).  (define
51b0: 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67  -function void g
51c0: 6c 75 74 57 69 72 65 4f 63 74 61 68 65 64 72 6f  lutWireOctahedro
51d0: 6e 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  n ())..  ;; void
51e0: 20 67 6c 75 74 53 6f 6c 69 64 4f 63 74 61 68 65   glutSolidOctahe
51f0: 64 72 6f 6e 28 76 6f 69 64 29 0a 20 20 28 64 65  dron(void).  (de
5200: 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f  fine-function vo
5210: 69 64 20 67 6c 75 74 53 6f 6c 69 64 4f 63 74 61  id glutSolidOcta
5220: 68 65 64 72 6f 6e 20 28 29 29 0a 0a 20 20 3b 3b  hedron ())..  ;;
5230: 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65 54 65   void glutWireTe
5240: 74 72 61 68 65 64 72 6f 6e 28 76 6f 69 64 29 0a  trahedron(void).
5250: 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69    (define-functi
5260: 6f 6e 20 76 6f 69 64 20 67 6c 75 74 57 69 72 65  on void glutWire
5270: 54 65 74 72 61 68 65 64 72 6f 6e 20 28 29 29 0a  Tetrahedron ()).
5280: 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 53  .  ;; void glutS
5290: 6f 6c 69 64 54 65 74 72 61 68 65 64 72 6f 6e 28  olidTetrahedron(
52a0: 76 6f 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d  void).  (define-
52b0: 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c  function void gl
52c0: 75 74 53 6f 6c 69 64 54 65 74 72 61 68 65 64 72  utSolidTetrahedr
52d0: 6f 6e 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  on ())..  ;; voi
52e0: 64 20 67 6c 75 74 57 69 72 65 49 63 6f 73 61 68  d glutWireIcosah
52f0: 65 64 72 6f 6e 28 76 6f 69 64 29 0a 20 20 28 64  edron(void).  (d
5300: 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76  efine-function v
5310: 6f 69 64 20 67 6c 75 74 57 69 72 65 49 63 6f 73  oid glutWireIcos
5320: 61 68 65 64 72 6f 6e 20 28 29 29 0a 0a 20 20 3b  ahedron ())..  ;
5330: 3b 20 76 6f 69 64 20 67 6c 75 74 53 6f 6c 69 64  ; void glutSolid
5340: 49 63 6f 73 61 68 65 64 72 6f 6e 28 76 6f 69 64  Icosahedron(void
5350: 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63  ).  (define-func
5360: 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 53 6f  tion void glutSo
5370: 6c 69 64 49 63 6f 73 61 68 65 64 72 6f 6e 20 28  lidIcosahedron (
5380: 29 29 0a 0a 20 20 3b 3b 20 69 6e 74 20 67 6c 75  ))..  ;; int glu
5390: 74 56 69 64 65 6f 52 65 73 69 7a 65 47 65 74 28  tVideoResizeGet(
53a0: 47 4c 65 6e 75 6d 20 70 61 72 61 6d 29 0a 20 20  GLenum param).  
53b0: 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e  (define-function
53c0: 20 69 6e 74 20 67 6c 75 74 56 69 64 65 6f 52 65   int glutVideoRe
53d0: 73 69 7a 65 47 65 74 20 28 29 29 0a 0a 20 20 3b  sizeGet ())..  ;
53e0: 3b 20 76 6f 69 64 20 67 6c 75 74 53 65 74 75 70  ; void glutSetup
53f0: 56 69 64 65 6f 52 65 73 69 7a 69 6e 67 28 76 6f  VideoResizing(vo
5400: 69 64 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75  id).  (define-fu
5410: 6e 63 74 69 6f 6e 20 69 6e 74 20 67 6c 75 74 53  nction int glutS
5420: 65 74 75 70 56 69 64 65 6f 52 65 73 69 7a 69 6e  etupVideoResizin
5430: 67 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69 64  g ())..  ;; void
5440: 20 67 6c 75 74 53 74 6f 70 56 69 64 65 6f 52 65   glutStopVideoRe
5450: 73 69 7a 69 6e 67 28 76 6f 69 64 29 0a 20 20 28  sizing(void).  (
5460: 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20  define-function 
5470: 76 6f 69 64 20 67 6c 75 74 53 74 6f 70 56 69 64  void glutStopVid
5480: 65 6f 52 65 73 69 7a 69 6e 67 20 28 29 29 0a 0a  eoResizing ())..
5490: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 56 69    ;; void glutVi
54a0: 64 65 6f 52 65 73 69 7a 65 28 69 6e 74 20 78 2c  deoResize(int x,
54b0: 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 69 64 74   int y, int widt
54c0: 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 0a 20  h, int height). 
54d0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
54e0: 6e 20 76 6f 69 64 20 67 6c 75 74 56 69 64 65 6f  n void glutVideo
54f0: 52 65 73 69 7a 65 20 28 69 6e 74 20 69 6e 74 20  Resize (int int 
5500: 69 6e 74 20 69 6e 74 29 29 0a 0a 20 20 3b 3b 20  int int))..  ;; 
5510: 76 6f 69 64 20 67 6c 75 74 56 69 64 65 6f 50 61  void glutVideoPa
5520: 6e 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20  n(int x, int y, 
5530: 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68  int width, int h
5540: 65 69 67 68 74 29 0a 20 20 28 64 65 66 69 6e 65  eight).  (define
5550: 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20 67  -function void g
5560: 6c 75 74 56 69 64 65 6f 50 61 6e 20 28 69 6e 74  lutVideoPan (int
5570: 20 69 6e 74 20 69 6e 74 20 69 6e 74 29 29 0a 0a   int int int))..
5580: 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 52 65    ;; void glutRe
5590: 70 6f 72 74 45 72 72 6f 72 73 28 76 6f 69 64 29  portErrors(void)
55a0: 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74  .  (define-funct
55b0: 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 52 65 70  ion void glutRep
55c0: 6f 72 74 45 72 72 6f 72 73 20 28 29 29 0a 0a 20  ortErrors ()).. 
55d0: 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74 49 67 6e   ;; void glutIgn
55e0: 6f 72 65 4b 65 79 52 65 70 65 61 74 28 69 6e 74  oreKeyRepeat(int
55f0: 20 69 67 6e 6f 72 65 29 0a 20 20 28 64 65 66 69   ignore).  (defi
5600: 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64  ne-function void
5610: 20 67 6c 75 74 49 67 6e 6f 72 65 4b 65 79 52 65   glutIgnoreKeyRe
5620: 70 65 61 74 20 28 69 6e 74 29 29 0a 0a 20 20 3b  peat (int))..  ;
5630: 3b 20 76 6f 69 64 20 67 6c 75 74 53 65 74 4b 65  ; void glutSetKe
5640: 79 52 65 70 65 61 74 28 69 6e 74 20 72 65 70 65  yRepeat(int repe
5650: 61 74 4d 6f 64 65 29 0a 20 20 28 64 65 66 69 6e  atMode).  (defin
5660: 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69 64 20  e-function void 
5670: 67 6c 75 74 53 65 74 4b 65 79 52 65 70 65 61 74  glutSetKeyRepeat
5680: 20 28 69 6e 74 29 29 0a 0a 20 20 3b 3b 20 76 6f   (int))..  ;; vo
5690: 69 64 20 67 6c 75 74 46 6f 72 63 65 4a 6f 79 73  id glutForceJoys
56a0: 74 69 63 6b 46 75 6e 63 28 76 6f 69 64 29 0a 20  tickFunc(void). 
56b0: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
56c0: 6e 20 76 6f 69 64 20 67 6c 75 74 46 6f 72 63 65  n void glutForce
56d0: 4a 6f 79 73 74 69 63 6b 46 75 6e 63 20 28 29 29  JoystickFunc ())
56e0: 0a 0a 20 20 3b 3b 20 76 6f 69 64 20 67 6c 75 74  ..  ;; void glut
56f0: 47 61 6d 65 4d 6f 64 65 53 74 72 69 6e 67 28 63  GameModeString(c
5700: 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e  onst char *strin
5710: 67 29 0a 20 20 28 64 65 66 69 6e 65 2d 66 75 6e  g).  (define-fun
5720: 63 74 69 6f 6e 20 76 6f 69 64 20 67 6c 75 74 47  ction void glutG
5730: 61 6d 65 4d 6f 64 65 53 74 72 69 6e 67 20 28 73  ameModeString (s
5740: 74 72 69 6e 67 29 29 0a 0a 20 20 3b 3b 20 69 6e  tring))..  ;; in
5750: 74 20 67 6c 75 74 45 6e 74 65 72 47 61 6d 65 4d  t glutEnterGameM
5760: 6f 64 65 28 76 6f 69 64 29 0a 20 20 28 64 65 66  ode(void).  (def
5770: 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6e 74  ine-function int
5780: 20 67 6c 75 74 45 6e 74 65 72 47 61 6d 65 4d 6f   glutEnterGameMo
5790: 64 65 20 28 29 29 0a 0a 20 20 3b 3b 20 76 6f 69  de ())..  ;; voi
57a0: 64 20 67 6c 75 74 4c 65 61 76 65 47 61 6d 65 4d  d glutLeaveGameM
57b0: 6f 64 65 28 76 6f 69 64 29 0a 20 20 28 64 65 66  ode(void).  (def
57c0: 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 76 6f 69  ine-function voi
57d0: 64 20 67 6c 75 74 4c 65 61 76 65 47 61 6d 65 4d  d glutLeaveGameM
57e0: 6f 64 65 20 28 29 29 0a 0a 20 20 3b 3b 20 69 6e  ode ())..  ;; in
57f0: 74 20 67 6c 75 74 47 61 6d 65 4d 6f 64 65 47 65  t glutGameModeGe
5800: 74 28 47 4c 65 6e 75 6d 20 6d 6f 64 65 29 0a 20  t(GLenum mode). 
5810: 20 28 64 65 66 69 6e 65 2d 66 75 6e 63 74 69 6f   (define-functio
5820: 6e 20 69 6e 74 20 67 6c 75 74 47 61 6d 65 4d 6f  n int glutGameMo
5830: 64 65 47 65 74 20 28 69 6e 74 29 29 0a 0a 20 20  deGet (int))..  
5840: 29 0a                                            ).