Made all the "glutJoystickXXX" functions part of the freeglut extensions.
[freeglut] / src / freeglut_state.c
index 4968b47..93a3f1b 100644 (file)
@@ -260,7 +260,15 @@ int FGAPIENTRY glutGet( GLenum eWhat )
 
     /* I do not know yet if there will be a fgChooseVisual() function for Win32 */
     case GLUT_DISPLAY_MODE_POSSIBLE:
-        return( fgChooseVisual() == NULL ? 0 : 1 );
+    {
+        XVisualInfo* visualInfo = fgChooseVisual();
+        if ( visualInfo == NULL ) {
+            return 0;
+        } else {
+            XFree( visualInfo );
+            return 1;
+        }
+    }
 
     /* This is system-dependant */
     case GLUT_WINDOW_FORMAT_ID:
@@ -540,14 +548,21 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
     case GLUT_JOYSTICK_AXES:
         return glutJoystickGetNumAxes ( 0 );
 
-    case GLUT_HAS_SPACEBALL:
     case GLUT_HAS_DIAL_AND_BUTTON_BOX:
+        return fgInputDeviceDetect ();
+
+    case GLUT_NUM_DIALS:
+        if ( fgState.InputDevsInitialised ) return 8;
+        return 0;
+    case GLUT_NUM_BUTTON_BOX_BUTTONS:
+        return 0;
+
+    case GLUT_HAS_SPACEBALL:
     case GLUT_HAS_TABLET:
         return FALSE;
 
     case GLUT_NUM_SPACEBALL_BUTTONS:
-    case GLUT_NUM_BUTTON_BOX_BUTTONS:
-    case GLUT_NUM_DIALS:
     case GLUT_NUM_TABLET_BUTTONS:
         return 0;
 
@@ -572,7 +587,7 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat )
 int FGAPIENTRY glutGetModifiers( void )
 {
     FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetModifiers" );
-    if( fgState.Modifiers == 0xffffffff )
+    if( fgState.Modifiers == INVALID_MODIFIERS )
     {
         fgWarning( "glutGetModifiers() called outside an input callback" );
         return 0;