X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_state.c;h=68b7eb5838df2b8dc840f711dee9f317ecb3e68f;hb=9dac5d0710b760ba04ebb6bbe9ee61041232c700;hp=325609b8bcf7258cd3fe30e7aac005f554fb09f5;hpb=4fa63bbb5637f30db8eec9de49c0b2c4830cb866;p=freeglut diff --git a/src/freeglut_state.c b/src/freeglut_state.c index 325609b..68b7eb5 100644 --- a/src/freeglut_state.c +++ b/src/freeglut_state.c @@ -118,7 +118,7 @@ void FGAPIENTRY glutSetOption( GLenum eWhat, int value ) break; default: - fgWarning( "glutSetOption(): missing enum handle %i\n", eWhat ); + fgWarning( "glutSetOption(): missing enum handle %d", eWhat ); break; } } @@ -454,7 +454,7 @@ int FGAPIENTRY glutGet( GLenum eWhat ) break; default: - fgWarning( "glutGet(): missing enum handle %i\n", eWhat ); + fgWarning( "glutGet(): missing enum handle %d", eWhat ); break; } return -1; @@ -528,13 +528,21 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) #endif - case GLUT_JOYSTICK_POLL_RATE: case GLUT_HAS_JOYSTICK: + return fgJoystickDetect (); + case GLUT_OWNS_JOYSTICK: + return fgState.JoysticksInitialised; + + case GLUT_JOYSTICK_POLL_RATE: + return fgStructure.Window ? fgStructure.Window->State.JoystickPollRate : 0; + + /* The following two are only for Joystick 0 but this is an improvement */ case GLUT_JOYSTICK_BUTTONS: + return glutJoystickGetNumButtons ( 0 ); + case GLUT_JOYSTICK_AXES: - /* XXX WARNING: THIS IS A BIG LIE! */ - return 0; + return glutJoystickGetNumAxes ( 0 ); case GLUT_HAS_SPACEBALL: case GLUT_HAS_DIAL_AND_BUTTON_BOX: @@ -551,11 +559,10 @@ int FGAPIENTRY glutDeviceGet( GLenum eWhat ) return fgStructure.Window ? fgStructure.Window->State.IgnoreKeyRepeat : 0; case GLUT_DEVICE_KEY_REPEAT: - /* XXX WARNING: THIS IS A BIG LIE! */ - return GLUT_KEY_REPEAT_DEFAULT; + return fgState.KeyRepeat; default: - fgWarning( "glutDeviceGet(): missing enum handle %i\n", eWhat ); + fgWarning( "glutDeviceGet(): missing enum handle %d", eWhat ); break; } @@ -649,7 +656,7 @@ int FGAPIENTRY glutLayerGet( GLenum eWhat ) #endif default: - fgWarning( "glutLayerGet(): missing enum handle %i\n", eWhat ); + fgWarning( "glutLayerGet(): missing enum handle %d", eWhat ); break; }