* A call to those macros assures us that there is a current
* window and menu set, respectively:
*/
-#define freeglut_assert_window assert( fgStructure.Window != NULL );
#define freeglut_assert_menu assert( fgStructure.Menu != NULL );
+#define FREEGLUT_EXIT_IF_NO_WINDOW( string ) \
+ if ( ! fgStructure.Window ) \
+ { \
+ fgError ( " ERROR: Function <%s> called" \
+ " with no current window defined.", (string) ) ; \
+ }
/*
- * The initialize and deinitialize functions get called on glutInit()
- * and glutMainLoop() end respectively. They should create/clean up
+ * The deinitialize function gets called on glutMainLoop() end. It should clean up
* everything inside of the freeglut
*/
-void fgInitialize( const char* displayName );
void fgDeinitialize( void );
/*
void fgAddToWindowDestroyList ( SFG_Window* window );
void fgCloseWindows ();
void fgDestroyWindow( SFG_Window* window );
-void fgClearCallBacks( SFG_Window *window );
/* Menu creation and destruction. Defined in freeglut_structure.c */
SFG_Menu* fgCreateMenu( FGCBMenu menuCallback );
void fgDestroyMenu( SFG_Menu* menu );
/* Joystick device management functions, defined in freeglut_joystick.c */
-void fgJoystickInit( int ident );
+int fgJoystickDetect( void );
+void fgInitialiseJoysticks( void );
void fgJoystickClose( void );
void fgJoystickPollWindow( SFG_Window* window );
+/* More joystick functions. Should these go into the API? */
+int glutJoystickGetNumAxes( int ident );
+int glutJoystickGetNumButtons( int ident );
+int glutJoystickNotWorking( int ident );
+
/*
* Helper function to enumerate through all registered windows
* and one to enumerate all of a window's subwindows...