X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=f395716b64c353972df3450cad7e37dec3a6c7ef;hb=dceb9a06b643633134bd70ed7b7c281250f9cb3f;hp=1cfecc513af01d9a3496fd36589f27b71b5b6655;hpb=3cfbcf91639c23ef9be707f4942af3c8cbf15500;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 1cfecc5..f395716 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -49,15 +49,10 @@ void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ) { if( !callback ) - fgError ("Fatal error in program. NULL display callback not " - "permitted in GLUT 3.0+ or freeglut 2.0.1+\n"); + fgError ("Fatal error in program. NULL display callback not " + "permitted in GLUT 3.0+ or freeglut 2.0.1+\n"); SET_CALLBACK( Display ); - - /* - * Force a redisplay with the new callback - */ fgStructure.Window->State.Redisplay = TRUE; - } /* @@ -90,10 +85,6 @@ void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ) void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ) { freeglut_assert_ready; - - /* - * The global idle callback pointer is stored in fgState structure - */ fgState.IdleCallback = callback; } @@ -106,28 +97,14 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), i freeglut_assert_ready; - /* - * Create a new freeglut timer hook structure - */ timer = (SFG_Timer *)calloc( sizeof(SFG_Timer), 1 ); if (!timer) - fgError ("Fatal error: " - "Memory allocation failure in glutTimerFunc()\n"); + fgError ("Fatal error: " + "Memory allocation failure in glutTimerFunc()\n"); - /* - * Remember the callback address and timer hook's ID - */ timer->Callback = callback; timer->ID = timerID; - - /* - * When will the time out happen (in terms of window's timer) - */ timer->TriggerTime = fgElapsedTime() + timeOut; - - /* - * Have the new hook attached to the current window - */ fgListAppend( &fgState.Timers, &timer->Node ); } @@ -178,14 +155,8 @@ void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ) void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ) { SET_CALLBACK( Joystick ); - /* - * Do not forget setting the joystick poll rate - */ fgStructure.Window->State.JoystickPollRate = pollInterval; - /* - * Make sure the joystick polling routine gets called as early as possible: - */ fgStructure.Window->State.JoystickLastPoll = fgElapsedTime() - fgStructure.Window->State.JoystickPollRate; @@ -202,7 +173,16 @@ void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ) } /* - * Sets the mouse motion callback for the current window (one or more buttons are pressed) + * Sets the mouse wheel callback for the current window + */ +void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ) +{ + SET_CALLBACK( MouseWheel ); +} + +/* + * Sets the mouse motion callback for the current window (one or more buttons + * are pressed) */ void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ) { @@ -210,7 +190,8 @@ void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ) } /* - * Sets the passive mouse motion callback for the current window (no mouse buttons are pressed) + * Sets the passive mouse motion callback for the current window (no mouse + * buttons are pressed) */ void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ) { @@ -242,7 +223,7 @@ void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ) void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ) { if( fgStructure.Menu == NULL ) - return; + return; fgStructure.Menu->Destroy = callback; } @@ -252,7 +233,6 @@ void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ) void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ) { freeglut_assert_ready; - fgState.MenuStateCallback = callback; } @@ -262,7 +242,6 @@ void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ) void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ) { freeglut_assert_ready; - fgState.MenuStatusCallback = callback; }