GLboolean sizeUse, int w, int h,
GLboolean gameMode, GLboolean isSubWindow );
extern void fgPlatformCloseWindow( SFG_Window* window );
-extern void fgPlatformGlutShowWindow( void );
-extern void fgPlatformGlutHideWindow( void );
-extern void fgPlatformGlutIconifyWindow( void );
extern void fgPlatformGlutSetWindowTitle( const char* title );
extern void fgPlatformGlutSetIconTitle( const char* title );
-extern void fgPlatformGlutPositionWindow( int x, int y );
-extern void fgPlatformGlutPushWindow( void );
-extern void fgPlatformGlutPopWindow( void );
-extern void fgPlatformGlutFullScreen( SFG_Window *win );
-extern void fgPlatformGlutLeaveFullScreen( SFG_Window *win );
-extern void fgPlatformGlutFullScreenToggle( SFG_Window *win );
/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
GLboolean sizeUse, int w, int h,
GLboolean gameMode, GLboolean isSubWindow )
{
- fgPlatformOpenWindow( window, title,
- positionUse, x, y,
- sizeUse, w, h,
- gameMode, isSubWindow );
+ fgPlatformOpenWindow( window, title,
+ positionUse, x, y,
+ sizeUse, w, h,
+ gameMode, isSubWindow );
fgSetWindow( window );
fgInitGL2();
- window->State.NeedToInitContext = GL_TRUE;
+ window->State.WorkMask |= GLUT_INIT_WORK;
}
/*
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutShowWindow" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutShowWindow" );
- fgPlatformGlutShowWindow ();
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_VISIBILITY_WORK;
+ fgStructure.CurrentWindow->State.DesiredVisibility = DesireNormalState;
fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
}
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutHideWindow" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutHideWindow" );
- fgPlatformGlutHideWindow ();
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_VISIBILITY_WORK;
+ fgStructure.CurrentWindow->State.DesiredVisibility = DesireHiddenState;
fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
}
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIconifyWindow" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutIconifyWindow" );
- fgPlatformGlutIconifyWindow ();
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_VISIBILITY_WORK;
+ fgStructure.CurrentWindow->State.DesiredVisibility = DesireIconicState;
fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
}
glutLeaveFullScreen();
}
- fgStructure.CurrentWindow->State.NeedToResize = GL_TRUE;
- fgStructure.CurrentWindow->State.Width = width ;
- fgStructure.CurrentWindow->State.Height = height;
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_SIZE_WORK;
+ fgStructure.CurrentWindow->State.DesiredWidth = width ;
+ fgStructure.CurrentWindow->State.DesiredHeight = height;
}
/*
glutLeaveFullScreen();
}
- fgPlatformGlutPositionWindow ( x, y );
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_POSITION_WORK;
+ fgStructure.CurrentWindow->State.DesiredXpos = x;
+ fgStructure.CurrentWindow->State.DesiredYpos = y;
}
/*
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPushWindow" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPushWindow" );
- fgPlatformGlutPushWindow ();
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_ZORDER_WORK;
+ fgStructure.CurrentWindow->State.DesiredZOrder = -1;
}
/*
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPopWindow" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPopWindow" );
- fgPlatformGlutPopWindow ();
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_ZORDER_WORK;
+ fgStructure.CurrentWindow->State.DesiredZOrder = 1;
}
/*
else if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==win->ID && win->State.IsFullscreen)
{
/* Ignore fullscreen call on GameMode window, those are always fullscreen already
- * only exception is during first entering GameMode
+ * only exception is when first entering GameMode
*/
return;
}
- fgPlatformGlutFullScreen ( win );
+ if (!win->State.IsFullscreen)
+ win->State.WorkMask |= GLUT_FULL_SCREEN_WORK;
}
/*
*/
void FGAPIENTRY glutLeaveFullScreen( void )
{
- SFG_Window *win;
-
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreen" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreen" );
- win = fgStructure.CurrentWindow;
-
- fgPlatformGlutLeaveFullScreen ( win );
+ if (fgStructure.CurrentWindow->State.IsFullscreen)
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_FULL_SCREEN_WORK;
}
/*
*/
void FGAPIENTRY glutFullScreenToggle( void )
{
- SFG_Window *win;
-
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreenToggle" );
FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreenToggle" );
- win = fgStructure.CurrentWindow;
-
- fgPlatformGlutFullScreenToggle ( win );
+ fgStructure.CurrentWindow->State.WorkMask |= GLUT_FULL_SCREEN_WORK;
}
/*