X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=9eee649b6a1474f3874d61c9f264f21740d74a08;hb=9092fad9f750e8bab3ce7d7fc5a30f2b036a1cfb;hp=43ccc4b00e394b437359c813a81487230a88f81e;hpb=f891e462a442c743c509a03f98c46074ee02d6d8;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 43ccc4b..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" @@ -43,7 +41,7 @@ #define SET_CALLBACK(a) \ if( fgStructure.Window == NULL ) \ return; \ - fgStructure.Window->Callbacks.a = callback; + FETCH_WCB( ( *( fgStructure.Window ) ), a ) = callback; /* * Sets the Display callback for the current window @@ -51,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; } @@ -102,9 +100,9 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), 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; @@ -117,14 +115,14 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), */ static void fghVisibility( int status ) { + int glut_status = GLUT_VISIBLE; + freeglut_assert_ready; freeglut_return_if_fail( fgStructure.Window ); - freeglut_return_if_fail( fgStructure.Window->Callbacks.Visibility ); - 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 ) ) @@ -229,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; } /*