*/
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");
SET_CALLBACK( Display );
/*
/*
* Create a new freeglut timer hook structure
*/
- timer = calloc( sizeof(SFG_Timer), 1 );
+ timer = (SFG_Timer *)calloc( sizeof(SFG_Timer), 1 );
+ if (!timer)
+ fgError ("Fatal error: "
+ "Memory allocation failure in glutTimerFunc()\n");
/*
* Remember the callback address and timer hook's ID
/*
* Sets the Visibility callback for the current window.
- *
- * I had to peer to GLUT sources to clean up the mess.
- * Can anyone please explain me what is going on here?!?
*/
static void fghVisibility( int status )
{
- freeglut_assert_ready; freeglut_return_if_fail( fgStructure.Window != NULL );
+ freeglut_assert_ready;
+ freeglut_return_if_fail( fgStructure.Window != NULL );
freeglut_return_if_fail( fgStructure.Window->Callbacks.Visibility != NULL );
if( status == GLUT_HIDDEN || status == GLUT_FULLY_COVERED )
void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval )
{
SET_CALLBACK( Joystick );
-
- freeglut_return_if_fail( fgStructure.Window != NULL );
-
/*
* Do not forget setting the joystick poll rate
*/
/* A. Donev: Destruction callback for menus */
void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) )
{
- if( fgStructure.Menu == NULL ) return;
+ if( fgStructure.Menu == NULL )
+ return;
fgStructure.Menu->Destroy = callback;
}