X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=2c3f436b61a2e295d3ae5d414a1c2f646d0421d0;hb=8f68cc66f40adeae9869252fff8d188fafb58043;hp=978e82b5426f6aaf8a4438fc4e51435385ce4156;hpb=2e5dc871b7c1df472978af9811d0e97b6684707c;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 978e82b..2c3f436 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -41,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 @@ -52,7 +52,7 @@ void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ) 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; + fgStructure.Window->State.Redisplay = GL_TRUE; } /* @@ -115,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 ) ) @@ -227,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; } /*