X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=dfabb907f9942d90495d8e7731228c0033ac35a1;hb=5d724da03c1b5988304888c17c5eba8a40c0a529;hp=43ccc4b00e394b437359c813a81487230a88f81e;hpb=f891e462a442c743c509a03f98c46074ee02d6d8;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 43ccc4b..dfabb90 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,8 @@ #define SET_CALLBACK(a) \ if( fgStructure.Window == NULL ) \ return; \ - fgStructure.Window->Callbacks.a = callback; + FETCH_WCB( ( *( fgStructure.Window ) ), a ) = callback; + /* fgStructure.Window->Callbacks.a = callback; */ /* * Sets the Display callback for the current window @@ -51,8 +50,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 +101,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 +116,25 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), */ static void fghVisibility( int status ) { + FGCBVisibility vis; + int glut_status; + freeglut_assert_ready; freeglut_return_if_fail( fgStructure.Window ); - freeglut_return_if_fail( fgStructure.Window->Callbacks.Visibility ); + vis = FETCH_WCB( ( *( fgStructure.Window ) ), Visibility ); + freeglut_return_if_fail( vis ); + /* Callbacks.Visibility ); */ if( status == GLUT_HIDDEN || status == GLUT_FULLY_COVERED ) + glut_status = GLUT_NOT_VISIBLE; + else + glut_status = GLUT_VISIBLE; + vis( glut_status ); + /* fgStructure.Window->Callbacks.Visibility( GLUT_NOT_VISIBLE ); else fgStructure.Window->Callbacks.Visibility( GLUT_VISIBLE ); + */ } void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ) @@ -229,9 +239,9 @@ 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 == NULL ) + return; + fgStructure.Menu->Destroy = callback; } /*