home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / patches / mesa3.1 / test / glut / joy_test.c < prev    next >
C/C++ Source or Header  |  1998-10-08  |  1KB  |  73 lines

  1.  
  2. /* Copyright (c) Mark J. Kilgard, 1997. */
  3.  
  4. /* This program is freely distributable without licensing fees 
  5.    and is provided without guarantee or warrantee expressed or 
  6.    implied. This program is -not- in the public domain. */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <GL/glut.h>
  11.  
  12. void
  13. joystick(unsigned int buttonMask, int x, int y, int z)
  14. {
  15.   printf("joy 0x%x, x=%d y=%d z=%d\n", buttonMask, x, y, z);
  16. }
  17.  
  18. void
  19. joyPoll(void)
  20. {
  21.   printf("force\n");
  22.   glutForceJoystickFunc();
  23. }
  24.  
  25. void
  26. menu(int value)
  27. {
  28.   switch(value) {
  29.   case 1:
  30.     glutJoystickFunc(joystick, 100);
  31.     glutIdleFunc(NULL);
  32.     break;
  33.   case 2:
  34.     glutJoystickFunc(NULL, 0);
  35.     glutIdleFunc(NULL);
  36.     break;
  37.   case 3:
  38.     glutJoystickFunc(joystick, 0);
  39.     glutIdleFunc(joyPoll);
  40.     break;
  41.   }
  42. }
  43.  
  44. void
  45. display(void)
  46. {
  47.   glClear(GL_COLOR_BUFFER_BIT);
  48.   glFlush();
  49. }
  50.  
  51. void
  52. keyboard(unsigned char c, int x, int y)
  53. {
  54.   if (c == 27) exit(0);
  55. }
  56.  
  57. int
  58. main(int argc, char **argv)
  59. {
  60.   glutInit(&argc, argv);
  61.   glutCreateWindow("joystick test");
  62.   glClearColor(0.29, 0.62, 1.0, 0.0);
  63.   glutDisplayFunc(display);
  64.   glutKeyboardFunc(keyboard);
  65.   glutCreateMenu(menu);
  66.   glutAddMenuEntry("Enable joystick callback", 1);
  67.   glutAddMenuEntry("Disable joystick callback", 2);
  68.   glutAddMenuEntry("Force joystick polling", 3);
  69.   glutAttachMenu(GLUT_RIGHT_BUTTON);
  70.   glutMainLoop();
  71.   return 0;             /* ANSI C requires main to return int. */
  72. }
  73.