Status result = -1;\r
\r
/* must check at runtime for the availability of the extension */\r
- if(!XRRQueryExtension(fgDisplay.Display, &event_base, &error_base)) {\r
+ if(!XRRQueryExtension(fgDisplay.pDisplay.Display, &event_base, &error_base)) {\r
return -1;\r
}\r
\r
- XRRQueryVersion(fgDisplay.Display, &ver_major, &ver_minor);\r
+ XRRQueryVersion(fgDisplay.pDisplay.Display, &ver_major, &ver_minor);\r
\r
/* we only heed the rate if we CAN actually use it (Xrandr >= 1.1) and\r
* the user actually cares about it (rate > 0)\r
XRRFreeScreenConfigInfo(xrr_config);\r
}\r
\r
- if(!(xrr_config = XRRGetScreenInfo(fgDisplay.Display, fgDisplay.RootWindow))) {\r
+ if(!(xrr_config = XRRGetScreenInfo(fgDisplay.pDisplay.Display, fgDisplay.RootWindow))) {\r
fgWarning("XRRGetScreenInfo failed");\r
break;\r
}\r
\r
#if ( RANDR_MAJOR >= 1 ) || ( ( RANDR_MAJOR == 1 ) && ( RANDR_MINOR >= 1 ) )\r
if(use_rate)\r
- result = XRRSetScreenConfigAndRate(fgDisplay.Display, xrr_config,\r
- fgDisplay.RootWindow, res_idx, rot, rate, timestamp);\r
+ result = XRRSetScreenConfigAndRate(fgDisplay.pDisplay.Display, xrr_config,\r
+ fgDisplay.pDisplay.RootWindow, res_idx, rot, rate, timestamp);\r
else\r
#endif\r
- result = XRRSetScreenConfig(fgDisplay.Display, xrr_config,\r
- fgDisplay.RootWindow, res_idx, rot, timestamp);\r
+ result = XRRSetScreenConfig(fgDisplay.pDisplay.Display, xrr_config,\r
+ fgDisplay.pDisplay.RootWindow, res_idx, rot, timestamp);\r
\r
} while(result == RRSetConfigInvalidTime);\r
\r
* Remembers the current visual settings, so that\r
* we can change them and restore later...\r
*/\r
-static void fgPlatformRememberState( void )\r
+void fgPlatformRememberState( void )\r
{\r
int event_base, error_base;\r
\r
Window junk_window;\r
unsigned int junk_mask;\r
\r
- XQueryPointer(fgDisplay.Display, fgDisplay.RootWindow,\r
+ XQueryPointer(fgDisplay.pDisplay.Display, fgDisplay.pDisplay.RootWindow,\r
&junk_window, &junk_window,\r
- &fgDisplay.DisplayPointerX, &fgDisplay.DisplayPointerY,\r
- &fgDisplay.DisplayPointerX, &fgDisplay.DisplayPointerY, &junk_mask);\r
+ &fgDisplay.pDisplay.DisplayPointerX, &fgDisplay.pDisplay.DisplayPointerY,\r
+ &fgDisplay.pDisplay.DisplayPointerX, &fgDisplay.pDisplay.DisplayPointerY, &junk_mask);\r
\r
# ifdef HAVE_X11_EXTENSIONS_XRANDR_H\r
- if(XRRQueryExtension(fgDisplay.Display, &event_base, &error_base)) {\r
+ if(XRRQueryExtension(fgDisplay.pDisplay.Display, &event_base, &error_base)) {\r
XRRScreenConfiguration *xrr_config;\r
XRRScreenSize *ssizes;\r
Rotation rot;\r
int ssize_count, curr;\r
\r
- if((xrr_config = XRRGetScreenInfo(fgDisplay.Display, fgDisplay.RootWindow))) {\r
+ if((xrr_config = XRRGetScreenInfo(fgDisplay.pDisplay.Display, fgDisplay.pDisplay.RootWindow))) {\r
ssizes = XRRConfigSizes(xrr_config, &ssize_count);\r
curr = XRRConfigCurrentConfiguration(xrr_config, &rot);\r
\r
- fgDisplay.prev_xsz = ssizes[curr].width;\r
- fgDisplay.prev_ysz = ssizes[curr].height;\r
- fgDisplay.prev_refresh = -1;\r
+ fgDisplay.pDisplay.prev_xsz = ssizes[curr].width;\r
+ fgDisplay.pDisplay.prev_ysz = ssizes[curr].height;\r
+ fgDisplay.pDisplay.prev_refresh = -1;\r
\r
# if ( RANDR_MAJOR >= 1 ) || ( ( RANDR_MAJOR == 1 ) && ( RANDR_MINOR >= 1 ) )\r
if(fgState.GameModeRefresh != -1) {\r
- fgDisplay.prev_refresh = XRRConfigCurrentRate(xrr_config);\r
+ fgDisplay.pDisplay.prev_refresh = XRRConfigCurrentRate(xrr_config);\r
}\r
# endif\r
\r
- fgDisplay.prev_size_valid = 1;\r
+ fgDisplay.pDisplay.prev_size_valid = 1;\r
\r
XRRFreeScreenConfigInfo(xrr_config);\r
}\r
* not approved as X Consortium standards\r
*/\r
# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H\r
- if(!XF86VidModeQueryExtension(fgDisplay.Display, &event_base, &error_base)) {\r
+ if(!XF86VidModeQueryExtension(fgDisplay.pDisplay.Display, &event_base, &error_base)) {\r
return;\r
}\r
\r
* restore the ViewPort on LeaveGameMode():\r
*/\r
if( !XF86VidModeGetViewPort(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
- &fgDisplay.DisplayViewPortX,\r
- &fgDisplay.DisplayViewPortY ) )\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
+ &fgDisplay.pDisplay.DisplayViewPortX,\r
+ &fgDisplay.pDisplay.DisplayViewPortY ) )\r
fgWarning( "XF86VidModeGetViewPort failed" );\r
\r
\r
/* Query the current display settings: */\r
- fgDisplay.DisplayModeValid =\r
+ fgDisplay.pDisplay.DisplayModeValid =\r
XF86VidModeGetModeLine(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
- &fgDisplay.DisplayModeClock,\r
- &fgDisplay.DisplayMode\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
+ &fgDisplay.pDisplay.DisplayModeClock,\r
+ &fgDisplay.pDisplay.DisplayMode\r
);\r
\r
- if( !fgDisplay.DisplayModeValid )\r
+ if( !fgDisplay.pDisplay.DisplayModeValid )\r
fgWarning( "XF86VidModeGetModeLine failed" );\r
# endif\r
\r
/*\r
* Restores the previously remembered visual settings\r
*/\r
-static void fgPlatformRestoreState( void )\r
+void fgPlatformRestoreState( void )\r
{\r
/* Restore the remembered pointer position: */\r
XWarpPointer(\r
- fgDisplay.Display, None, fgDisplay.RootWindow, 0, 0, 0, 0,\r
- fgDisplay.DisplayPointerX, fgDisplay.DisplayPointerY\r
+ fgDisplay.pDisplay.Display, None, fgDisplay.pDisplay.RootWindow, 0, 0, 0, 0,\r
+ fgDisplay.pDisplay.DisplayPointerX, fgDisplay.pDisplay.DisplayPointerY\r
);\r
\r
\r
# ifdef HAVE_X11_EXTENSIONS_XRANDR_H\r
- if(fgDisplay.prev_size_valid) {\r
- if(xrandr_resize(fgDisplay.prev_xsz, fgDisplay.prev_ysz, fgDisplay.prev_refresh, 0) != -1) {\r
- fgDisplay.prev_size_valid = 0;\r
+ if(fgDisplay.pDisplay.prev_size_valid) {\r
+ if(xrandr_resize(fgDisplay.pDisplay.prev_xsz, fgDisplay.pDisplay.prev_ysz, fgDisplay.pDisplay.prev_refresh, 0) != -1) {\r
+ fgDisplay.pDisplay.prev_size_valid = 0;\r
# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H\r
- fgDisplay.DisplayModeValid = 0;\r
+ fgDisplay.pDisplay.DisplayModeValid = 0;\r
# endif\r
return;\r
}\r
* not approved as X Consortium standards\r
*/\r
\r
- if( fgDisplay.DisplayModeValid )\r
+ if( fgDisplay.pDisplay.DisplayModeValid )\r
{\r
XF86VidModeModeInfo** displayModes;\r
int i, displayModesCount;\r
\r
if( !XF86VidModeGetAllModeLines(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
&displayModesCount,\r
&displayModes ) )\r
{\r
*/\r
for( i = 0; i < displayModesCount; i++ )\r
{\r
- if(displayModes[ i ]->hdisplay == fgDisplay.DisplayMode.hdisplay &&\r
- displayModes[ i ]->vdisplay == fgDisplay.DisplayMode.vdisplay &&\r
- displayModes[ i ]->dotclock == fgDisplay.DisplayModeClock )\r
+ if(displayModes[ i ]->hdisplay == fgDisplay.pDisplay.DisplayMode.hdisplay &&\r
+ displayModes[ i ]->vdisplay == fgDisplay.pDisplay.DisplayMode.vdisplay &&\r
+ displayModes[ i ]->dotclock == fgDisplay.pDisplay.DisplayModeClock )\r
{\r
if( !XF86VidModeSwitchToMode(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
displayModes[ i ] ) )\r
{\r
fgWarning( "XF86VidModeSwitchToMode failed" );\r
}\r
\r
if( !XF86VidModeSetViewPort(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
- fgDisplay.DisplayViewPortX,\r
- fgDisplay.DisplayViewPortY ) )\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
+ fgDisplay.pDisplay.DisplayViewPortX,\r
+ fgDisplay.pDisplay.DisplayViewPortY ) )\r
fgWarning( "XF86VidModeSetViewPort failed" );\r
\r
\r
* calls exit() we've to flush the X11 output queue to have the\r
* commands sent to the X server before the application exits.\r
*/\r
- XFlush( fgDisplay.Display );\r
+ XFlush( fgDisplay.pDisplay.Display );\r
\r
- fgDisplay.DisplayModeValid = 0;\r
+ fgDisplay.pDisplay.DisplayModeValid = 0;\r
# ifdef HAVE_X11_EXTENSIONS_XRANDR_H\r
- fgDisplay.prev_size_valid = 0;\r
+ fgDisplay.pDisplay.prev_size_valid = 0;\r
# endif\r
\r
break;\r
/*\r
* Changes the current display mode to match user's settings\r
*/\r
-static GLboolean fgPlatformChangeDisplayMode( GLboolean haveToTest )\r
+GLboolean fgPlatformChangeDisplayMode( GLboolean haveToTest )\r
{\r
GLboolean success = GL_FALSE;\r
/* first try to use XRandR, then fallback to XF86VidMode */\r
* This is also used by applications which check modes by calling\r
* glutGameModeGet(GLUT_GAME_MODE_POSSIBLE), so allow the check:\r
*/\r
- if( haveToTest || fgDisplay.DisplayModeValid )\r
+ if( haveToTest || fgDisplay.pDisplay.DisplayModeValid )\r
{\r
XF86VidModeModeInfo** displayModes;\r
int i, displayModesCount;\r
* glutEnterGameMode, then we need to query the current mode, to make\r
* unspecified settings to default to their current values.\r
*/\r
- if(!fgDisplay.DisplayModeValid) {\r
- if(!XF86VidModeGetModeLine(fgDisplay.Display, fgDisplay.Screen,\r
- &fgDisplay.DisplayModeClock, &fgDisplay.DisplayMode)) {\r
+ if(!fgDisplay.pDisplay.DisplayModeValid) {\r
+ if(!XF86VidModeGetModeLine(fgDisplay.pDisplay.Display, fgDisplay.pDisplay.Screen,\r
+ &fgDisplay.pDisplay.DisplayModeClock, &fgDisplay.pDisplay.DisplayMode)) {\r
return success;\r
}\r
}\r
\r
if (fgState.GameModeSize.X == -1)\r
{\r
- fgState.GameModeSize.X = fgDisplay.DisplayMode.hdisplay;\r
+ fgState.GameModeSize.X = fgDisplay.pDisplay.DisplayMode.hdisplay;\r
}\r
if (fgState.GameModeSize.Y == -1)\r
{\r
- fgState.GameModeSize.Y = fgDisplay.DisplayMode.vdisplay;\r
+ fgState.GameModeSize.Y = fgDisplay.pDisplay.DisplayMode.vdisplay;\r
}\r
if (fgState.GameModeDepth == -1)\r
{\r
if (fgState.GameModeRefresh == -1)\r
{\r
/* Compute the displays refresh rate, dotclock comes in kHz. */\r
- int refresh = ( fgDisplay.DisplayModeClock * 1000 ) /\r
- ( fgDisplay.DisplayMode.htotal * fgDisplay.DisplayMode.vtotal );\r
+ int refresh = ( fgDisplay.pDisplay.DisplayModeClock * 1000 ) /\r
+ ( fgDisplay.pDisplay.DisplayMode.htotal * fgDisplay.pDisplay.DisplayMode.vtotal );\r
\r
fgState.GameModeRefresh = refresh;\r
}\r
\r
/* query all possible display modes */\r
if( !XF86VidModeGetAllModeLines(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
&displayModesCount,\r
&displayModes ) )\r
{\r
\r
if( !haveToTest && success ) {\r
if( !XF86VidModeSwitchToMode(\r
- fgDisplay.Display,\r
- fgDisplay.Screen,\r
+ fgDisplay.pDisplay.Display,\r
+ fgDisplay.pDisplay.Screen,\r
displayModes[ i ] ) )\r
fgWarning( "XF86VidModeSwitchToMode failed" );\r
}\r
* Sync needed to avoid a real race, the Xserver must have really created\r
* the window before we can grab the pointer into it:\r
*/\r
- XSync( fgDisplay.Display, False );\r
+ XSync( fgDisplay.pDisplay.Display, False );\r
/*\r
* Grab the pointer to confine it into the window after the calls to\r
* XWrapPointer() which ensure that the pointer really enters the window.\r
* the application which we have to aviod, so wait until it's viewable:\r
*/\r
while( GrabSuccess != XGrabPointer(\r
- fgDisplay.Display, fgStructure.GameModeWindow->Window.Handle,\r
+ fgDisplay.pDisplay.Display, fgStructure.GameModeWindow->Window.Handle,\r
TRUE,\r
ButtonPressMask | ButtonReleaseMask | ButtonMotionMask\r
| PointerMotionMask,\r
* if the new window is not viewable yet, see the XGrabPointer loop above.\r
*/\r
XSetInputFocus(\r
- fgDisplay.Display,\r
+ fgDisplay.pDisplay.Display,\r
fgStructure.GameModeWindow->Window.Handle,\r
RevertToNone,\r
CurrentTime\r
\r
/* Move the Pointer to the middle of the fullscreen window */\r
XWarpPointer(\r
- fgDisplay.Display,\r
+ fgDisplay.pDisplay.Display,\r
None,\r
- fgDisplay.RootWindow,\r
+ fgDisplay.pDisplay.RootWindow,\r
0, 0, 0, 0,\r
fgState.GameModeSize.X/2, fgState.GameModeSize.Y/2\r
);\r
\r
# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H\r
\r
- if( fgDisplay.DisplayModeValid )\r
+ if( fgDisplay.pDisplay.DisplayModeValid )\r
{\r
int x, y;\r
Window child;\r
\r
/* Change to viewport to the window topleft edge: */\r
- if( !XF86VidModeSetViewPort( fgDisplay.Display, fgDisplay.Screen, 0, 0 ) )\r
+ if( !XF86VidModeSetViewPort( fgDisplay.pDisplay.Display, fgDisplay.Screen, 0, 0 ) )\r
fgWarning( "XF86VidModeSetViewPort failed" );\r
\r
/*\r
\r
/* Get the current postion of the drawable area on screen */\r
XTranslateCoordinates(\r
- fgDisplay.Display,\r
+ fgDisplay.pDisplay.Display,\r
fgStructure.CurrentWindow->Window.Handle,\r
- fgDisplay.RootWindow,\r
+ fgDisplay.pDisplay.RootWindow,\r
0, 0, &x, &y,\r
&child\r
);\r
\r
/* Move the decorataions out of the topleft corner of the display */\r
- XMoveWindow( fgDisplay.Display, fgStructure.CurrentWindow->Window.Handle,\r
+ XMoveWindow( fgDisplay.pDisplay.Display, fgStructure.CurrentWindow->Window.Handle,\r
-x, -y);\r
}\r
\r
\r
/* Grab the keyboard, too */\r
XGrabKeyboard(\r
- fgDisplay.Display,\r
+ fgDisplay.pDisplay.Display,\r
fgStructure.GameModeWindow->Window.Handle,\r
FALSE,\r
GrabModeAsync, GrabModeAsync,\r
\r
#if TARGET_HOST_POSIX_X11\r
\r
- XUngrabPointer( fgDisplay.Display, CurrentTime );\r
- XUngrabKeyboard( fgDisplay.Display, CurrentTime );\r
+ XUngrabPointer( fgDisplay.pDisplay.Display, CurrentTime );\r
+ XUngrabKeyboard( fgDisplay.pDisplay.Display, CurrentTime );\r
\r
#endif\r
\r