X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=9eee649b6a1474f3874d61c9f264f21740d74a08;hb=9092fad9f750e8bab3ce7d7fc5a30f2b036a1cfb;hp=f395716b64c353972df3450cad7e37dec3a6c7ef;hpb=0b1a7966eeafc97ab68fcf331fddeeb22ca3b619;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index f395716..9eee649 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -29,8 +29,6 @@ #include "config.h" #endif -#define G_LOG_DOMAIN "freeglut-callbacks" - #include "../include/GL/freeglut.h" #include "freeglut_internal.h" @@ -40,8 +38,10 @@ /* * All of the callbacks setting methods can be generalized to this: */ -#define SET_CALLBACK(a) if( fgStructure.Window == NULL ) return;\ - fgStructure.Window->Callbacks.a = callback; +#define SET_CALLBACK(a) \ + if( fgStructure.Window == NULL ) \ + return; \ + FETCH_WCB( ( *( fgStructure.Window ) ), a ) = callback; /* * Sets the Display callback for the current window @@ -49,8 +49,8 @@ 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 ); fgStructure.Window->State.Redisplay = TRUE; } @@ -66,7 +66,8 @@ void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ) /* * Sets the Keyboard callback for the current window */ -void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ) +void FGAPIENTRY glutKeyboardFunc( void (* callback) + ( unsigned char, int, int ) ) { SET_CALLBACK( Keyboard ); } @@ -91,16 +92,17 @@ void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ) /* * Sets the Timer callback for the current window */ -void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), int timerID ) +void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), + int timerID ) { SFG_Timer* timer; freeglut_assert_ready; timer = (SFG_Timer *)calloc( sizeof(SFG_Timer), 1 ); - if (!timer) - fgError ("Fatal error: " - "Memory allocation failure in glutTimerFunc()\n"); + if( !timer ) + fgError( "Fatal error: " + "Memory allocation failure in glutTimerFunc()\n" ); timer->Callback = callback; timer->ID = timerID; @@ -113,14 +115,14 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), i */ static void fghVisibility( int status ) { + int glut_status = GLUT_VISIBLE; + freeglut_assert_ready; - freeglut_return_if_fail( fgStructure.Window != NULL ); - freeglut_return_if_fail( fgStructure.Window->Callbacks.Visibility != NULL ); + freeglut_return_if_fail( fgStructure.Window ); - if( status == GLUT_HIDDEN || status == GLUT_FULLY_COVERED ) - fgStructure.Window->Callbacks.Visibility( GLUT_NOT_VISIBLE ); - else - fgStructure.Window->Callbacks.Visibility( GLUT_VISIBLE ); + if( ( GLUT_HIDDEN == status ) || ( GLUT_FULLY_COVERED == status ) ) + glut_status = GLUT_NOT_VISIBLE; + INVOKE_WCB( *( fgStructure.Window ), Visibility, ( glut_status ) ); } void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ) @@ -136,7 +138,8 @@ void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ) /* * Sets the keyboard key release callback for the current window */ -void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ) +void FGAPIENTRY glutKeyboardUpFunc( void (* callback) + ( unsigned char, int, int ) ) { SET_CALLBACK( KeyboardUp ); } @@ -152,7 +155,9 @@ void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ) /* * Sets the joystick callback and polling rate for the current window */ -void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ) +void FGAPIENTRY glutJoystickFunc( void (* callback) + ( unsigned int, int, int, int ), + int pollInterval ) { SET_CALLBACK( Joystick ); fgStructure.Window->State.JoystickPollRate = pollInterval; @@ -222,9 +227,8 @@ void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ) /* A. Donev: Destruction callback for menus */ void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ) { - if( fgStructure.Menu == NULL ) - return; - fgStructure.Menu->Destroy = callback; + if( fgStructure.Menu ) + fgStructure.Menu->Destroy = callback; } /*