/* XXX Update these for each release! */
#define VERSION_MAJOR 2
-#define VERSION_MINOR 0
+#define VERSION_MINOR 2
#define VERSION_PATCH 0
/*
SFG_Time Time; /* Time that glutInit was called */
SFG_List Timers; /* The freeglut timer hooks */
+ SFG_List FreeTimers; /* The unused timer hooks */
FGCBIdle IdleCallback; /* The global idle callback */
{
int Width; /* Window's width in pixels */
int Height; /* The same about the height */
+ int OldWidth; /* Window width from before a resize */
+ int OldHeight; /* " height " " " " */
GLboolean Redisplay; /* Do we have to redisplay? */
GLboolean Visible; /* Is the window visible now */
typedef struct tagSFG_WindowList SFG_WindowList ;
struct tagSFG_WindowList
{
+ SFG_Node node;
SFG_Window *window ;
- GLboolean needToClose ;
- SFG_WindowList *next ;
};
/*
{
SFG_List Windows; /* The global windows list */
SFG_List Menus; /* The global menus list */
+ SFG_List WindowsToDestroy;
SFG_Window* Window; /* The currently active win. */
SFG_Menu* Menu; /* Same, but menu... */
int x, int y, int w, int h, GLboolean gameMode,
GLboolean isSubWindow );
void fgCloseWindow( SFG_Window* window );
-void fgAddToWindowDestroyList ( SFG_Window* window,
- GLboolean needToClose );
+void fgAddToWindowDestroyList ( SFG_Window* window );
void fgCloseWindows ();
-void fgDestroyWindow( SFG_Window* window, GLboolean needToClose );
+void fgDestroyWindow( SFG_Window* window );
void fgClearCallBacks( SFG_Window *window );
/*
SFG_Window* fgWindowByID( int windowID );
/*
- * Looks up a menu given its ID. This is easier that fgWindowByXXX
+ * Looks up a menu given its ID. This is easier than fgWindowByXXX
* as all menus are placed in a single doubly linked list...
*/
SFG_Menu* fgMenuByID( int menuID );
void fgListAppend(SFG_List *list, SFG_Node *node);
void fgListRemove(SFG_List *list, SFG_Node *node);
int fgListLength(SFG_List *list);
+void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node);
/*
* Error Messages functions