X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=3d9a02b8fdcd6b6a419ac1ef85956832623bf124;hb=a14928fc505633d395e18db84ce7dbfd7386fa5f;hp=9ce8cfb2f202c11d7fe4d0ba55d0af07265f07ec;hpb=d296a46a2dccdd99048541e1f8ca0ef010ac8545;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 9ce8cfb..3d9a02b 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -25,23 +25,21 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include #include "freeglut_internal.h" - /* -- INTERFACE FUNCTIONS -------------------------------------------------- */ /* * All of the callbacks setting methods can be generalized to this: */ -#define SET_CALLBACK(a) \ - if( fgStructure.Window == NULL ) \ - return; \ - SET_WCB( ( *( fgStructure.Window ) ), a, callback ); +#define SET_CALLBACK(a) \ +do \ +{ \ + if( fgStructure.CurrentWindow == NULL ) \ + return; \ + SET_WCB( ( *( fgStructure.CurrentWindow ) ), a, callback ); \ +} while( 0 ) /* * Sets the Display callback for the current window @@ -133,11 +131,12 @@ static void fghVisibility( int status ) { int glut_status = GLUT_VISIBLE; - freeglut_return_if_fail( fgStructure.Window ); + FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED ( "Visibility Callback" ); + freeglut_return_if_fail( fgStructure.CurrentWindow ); if( ( GLUT_HIDDEN == status ) || ( GLUT_FULLY_COVERED == status ) ) glut_status = GLUT_NOT_VISIBLE; - INVOKE_WCB( *( fgStructure.Window ), Visibility, ( glut_status ) ); + INVOKE_WCB( *( fgStructure.CurrentWindow ), Visibility, ( glut_status ) ); } void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ) @@ -181,13 +180,13 @@ void FGAPIENTRY glutJoystickFunc( void (* callback) fgInitialiseJoysticks (); SET_CALLBACK( Joystick ); - fgStructure.Window->State.JoystickPollRate = pollInterval; + fgStructure.CurrentWindow->State.JoystickPollRate = pollInterval; - fgStructure.Window->State.JoystickLastPoll = - fgElapsedTime() - fgStructure.Window->State.JoystickPollRate; + fgStructure.CurrentWindow->State.JoystickLastPoll = + fgElapsedTime() - fgStructure.CurrentWindow->State.JoystickPollRate; - if( fgStructure.Window->State.JoystickLastPoll < 0 ) - fgStructure.Window->State.JoystickLastPoll = 0; + if( fgStructure.CurrentWindow->State.JoystickLastPoll < 0 ) + fgStructure.CurrentWindow->State.JoystickLastPoll = 0; } /* @@ -256,8 +255,8 @@ void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ) void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ) { FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuDestroyFunc" ); - if( fgStructure.Menu ) - fgStructure.Menu->Destroy = callback; + if( fgStructure.CurrentMenu ) + fgStructure.CurrentMenu->Destroy = callback; } /*