Rewritten X11 video mode support to directly set requested modes and exactly restore the desktop mode at shutdown.

This commit is contained in:
Sam Lantinga 2012-10-03 18:56:29 -07:00
parent 02dd74ba7e
commit 925bca7d2a
2 changed files with 396 additions and 543 deletions

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,8 @@ typedef struct
Visual *visual;
int depth;
int scanline_pad;
int x;
int y;
int use_xinerama;
int use_xrandr;
@ -38,22 +40,25 @@ typedef struct
XineramaScreenInfo xinerama_info;
int xinerama_screen;
#endif
#if SDL_VIDEO_DRIVER_X11_XRANDR
XRRScreenConfiguration *screen_config;
int saved_size;
Rotation saved_rotation;
short saved_rate;
#endif
#if SDL_VIDEO_DRIVER_X11_XVIDMODE
XF86VidModeModeInfo saved_mode;
struct
{
int x, y;
} saved_view;
RROutput xrandr_output;
#endif
} SDL_DisplayData;
typedef struct
{
#if SDL_VIDEO_DRIVER_X11_XRANDR
RRMode xrandr_mode;
#endif
#if SDL_VIDEO_DRIVER_X11_XVIDMODE
XF86VidModeModeInfo vm_mode;
#endif
} SDL_DisplayModeData;
extern int X11_InitModes(_THIS);
extern void X11_GetDisplayModes(_THIS, SDL_VideoDisplay * display);
extern int X11_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode);