Mercurial > sdl-ios-xcode
view include/SDL_config.h.in @ 4223:63fd67e17705 SDL-1.2
Fixed bug #727
Lorenzo Desole 2009-04-19 07:36:10 PDT
I am one of the developers of a multimedia application (My Media System MMS),
which uses SDL.
MMS is normally running in fullscreen mode but it switches it off before
launching external applications (mplayer, xine, etc.).
The problem with fullscreen is that when the latter is switched off either via
SDL_WM_ToggleFullScreen() or SDL_SetVideoMode(), SDL compares the current
screen sizes with the ones saved when the video system was initted, and if they
don't match, it calls XF86VidModeSwitchToMode() to switch to the old modeline.
This makes it impossible for external programs and for MMS itself to use RandR
to change the screen size, because next time fullscreen mode is turned off, it
bombs out with the following error:
X Error of failed request: BadValue (integer parameter out of range for
operation)
Major opcode of failed request: 136 (XFree86-VidModeExtension)
Minor opcode of failed request: 10 (XF86VidModeSwitchToMode)
[...]
Obviously this happens only if the new screen resolution is smaller than the
original one and XF86VidModeSwitchToMode() can't succeed.
I couldn't find any way to inform SDL that the screen resolution it uses as
reference is no longer valid.
This can be fixed by adding "save_mode(this)" to
./src/video/x11/SDL_x11modes.c, API X11_EnterFullScreen(_THIS), like this:
int X11_EnterFullScreen(_THIS)
{
int okay;
+ save_mode(this);
I can't rule out possible side effects, but I don't see any.
While I admit this is a minor issue for the general users, it is a major
showstopper for our program where the ability to change screen resolution and
refresh rate according to the movie being played, is very important.
Thanks in advance.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 21 Sep 2009 11:14:36 +0000 |
parents | 2f5e884f0a9d |
children | d62725f761a1 |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2009 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Sam Lantinga slouken@libsdl.org */ #ifndef _SDL_config_h #define _SDL_config_h /* This is a set of defines to configure the SDL features */ /* General platform specific identifiers */ #include "SDL_platform.h" /* Make sure that this isn't included by Visual C++ */ #ifdef _MSC_VER #error You should copy include/SDL_config.h.default to include/SDL_config.h #endif /* C language features */ #undef const #undef inline #undef volatile /* C datatypes */ #undef size_t #undef int8_t #undef uint8_t #undef int16_t #undef uint16_t #undef int32_t #undef uint32_t #undef int64_t #undef uint64_t #undef uintptr_t #undef SDL_HAS_64BIT_TYPE /* Endianness */ #undef SDL_BYTEORDER /* Comment this if you want to build without any C library requirements */ #undef HAVE_LIBC #if HAVE_LIBC /* Useful headers */ #undef HAVE_ALLOCA_H #undef HAVE_SYS_TYPES_H #undef HAVE_STDIO_H #undef STDC_HEADERS #undef HAVE_STDLIB_H #undef HAVE_STDARG_H #undef HAVE_MALLOC_H #undef HAVE_MEMORY_H #undef HAVE_STRING_H #undef HAVE_STRINGS_H #undef HAVE_INTTYPES_H #undef HAVE_STDINT_H #undef HAVE_CTYPE_H #undef HAVE_MATH_H #undef HAVE_ICONV_H #undef HAVE_SIGNAL_H #undef HAVE_ALTIVEC_H /* C library functions */ #undef HAVE_MALLOC #undef HAVE_CALLOC #undef HAVE_REALLOC #undef HAVE_FREE #undef HAVE_ALLOCA #ifndef _WIN32 /* Don't use C runtime versions of these on Windows */ #undef HAVE_GETENV #undef HAVE_PUTENV #undef HAVE_UNSETENV #endif #undef HAVE_QSORT #undef HAVE_ABS #undef HAVE_BCOPY #undef HAVE_MEMSET #undef HAVE_MEMCPY #undef HAVE_MEMMOVE #undef HAVE_MEMCMP #undef HAVE_STRLEN #undef HAVE_STRLCPY #undef HAVE_STRLCAT #undef HAVE_STRDUP #undef HAVE__STRREV #undef HAVE__STRUPR #undef HAVE__STRLWR #undef HAVE_INDEX #undef HAVE_RINDEX #undef HAVE_STRCHR #undef HAVE_STRRCHR #undef HAVE_STRSTR #undef HAVE_ITOA #undef HAVE__LTOA #undef HAVE__UITOA #undef HAVE__ULTOA #undef HAVE_STRTOL #undef HAVE_STRTOUL #undef HAVE__I64TOA #undef HAVE__UI64TOA #undef HAVE_STRTOLL #undef HAVE_STRTOULL #undef HAVE_STRTOD #undef HAVE_ATOI #undef HAVE_ATOF #undef HAVE_STRCMP #undef HAVE_STRNCMP #undef HAVE__STRICMP #undef HAVE_STRCASECMP #undef HAVE__STRNICMP #undef HAVE_STRNCASECMP #undef HAVE_SSCANF #undef HAVE_SNPRINTF #undef HAVE_VSNPRINTF #undef HAVE_ICONV #undef HAVE_SIGACTION #undef HAVE_SETJMP #undef HAVE_NANOSLEEP #undef HAVE_CLOCK_GETTIME #undef HAVE_DLVSYM #undef HAVE_GETPAGESIZE #undef HAVE_MPROTECT #else /* We may need some replacement for stdarg.h here */ #include <stdarg.h> #endif /* HAVE_LIBC */ /* Allow disabling of core subsystems */ #undef SDL_AUDIO_DISABLED #undef SDL_CDROM_DISABLED #undef SDL_CPUINFO_DISABLED #undef SDL_EVENTS_DISABLED #undef SDL_FILE_DISABLED #undef SDL_JOYSTICK_DISABLED #undef SDL_LOADSO_DISABLED #undef SDL_THREADS_DISABLED #undef SDL_TIMERS_DISABLED #undef SDL_VIDEO_DISABLED /* Enable various audio drivers */ #undef SDL_AUDIO_DRIVER_ALSA #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC #undef SDL_AUDIO_DRIVER_ARTS #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC #undef SDL_AUDIO_DRIVER_BAUDIO #undef SDL_AUDIO_DRIVER_BSD #undef SDL_AUDIO_DRIVER_COREAUDIO #undef SDL_AUDIO_DRIVER_DART #undef SDL_AUDIO_DRIVER_DC #undef SDL_AUDIO_DRIVER_DISK #undef SDL_AUDIO_DRIVER_DUMMY #undef SDL_AUDIO_DRIVER_DMEDIA #undef SDL_AUDIO_DRIVER_DSOUND #undef SDL_AUDIO_DRIVER_PULSE #undef SDL_AUDIO_DRIVER_PULSE_DYNAMIC #undef SDL_AUDIO_DRIVER_ESD #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC #undef SDL_AUDIO_DRIVER_MINT #undef SDL_AUDIO_DRIVER_MMEAUDIO #undef SDL_AUDIO_DRIVER_NAS #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC #undef SDL_AUDIO_DRIVER_OSS #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H #undef SDL_AUDIO_DRIVER_PAUD #undef SDL_AUDIO_DRIVER_QNXNTO #undef SDL_AUDIO_DRIVER_SNDMGR #undef SDL_AUDIO_DRIVER_SUNAUDIO #undef SDL_AUDIO_DRIVER_WAVEOUT /* Enable various cdrom drivers */ #undef SDL_CDROM_AIX #undef SDL_CDROM_BEOS #undef SDL_CDROM_BSDI #undef SDL_CDROM_DC #undef SDL_CDROM_DUMMY #undef SDL_CDROM_FREEBSD #undef SDL_CDROM_LINUX #undef SDL_CDROM_MACOS #undef SDL_CDROM_MACOSX #undef SDL_CDROM_MINT #undef SDL_CDROM_OPENBSD #undef SDL_CDROM_OS2 #undef SDL_CDROM_OSF #undef SDL_CDROM_QNX #undef SDL_CDROM_WIN32 /* Enable various input drivers */ #undef SDL_INPUT_LINUXEV #undef SDL_INPUT_TSLIB #undef SDL_JOYSTICK_BEOS #undef SDL_JOYSTICK_DC #undef SDL_JOYSTICK_DUMMY #undef SDL_JOYSTICK_IOKIT #undef SDL_JOYSTICK_LINUX #undef SDL_JOYSTICK_MACOS #undef SDL_JOYSTICK_MINT #undef SDL_JOYSTICK_OS2 #undef SDL_JOYSTICK_RISCOS #undef SDL_JOYSTICK_WINMM #undef SDL_JOYSTICK_USBHID #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H /* Enable various shared object loading systems */ #undef SDL_LOADSO_BEOS #undef SDL_LOADSO_DLCOMPAT #undef SDL_LOADSO_DLOPEN #undef SDL_LOADSO_DUMMY #undef SDL_LOADSO_LDG #undef SDL_LOADSO_MACOS #undef SDL_LOADSO_OS2 #undef SDL_LOADSO_WIN32 /* Enable various threading systems */ #undef SDL_THREAD_BEOS #undef SDL_THREAD_DC #undef SDL_THREAD_OS2 #undef SDL_THREAD_PTH #undef SDL_THREAD_PTHREAD #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP #undef SDL_THREAD_SPROC #undef SDL_THREAD_WIN32 /* Enable various timer systems */ #undef SDL_TIMER_BEOS #undef SDL_TIMER_DC #undef SDL_TIMER_DUMMY #undef SDL_TIMER_MACOS #undef SDL_TIMER_MINT #undef SDL_TIMER_OS2 #undef SDL_TIMER_RISCOS #undef SDL_TIMER_UNIX #undef SDL_TIMER_WIN32 #undef SDL_TIMER_WINCE /* Enable various video drivers */ #undef SDL_VIDEO_DRIVER_AALIB #undef SDL_VIDEO_DRIVER_BWINDOW #undef SDL_VIDEO_DRIVER_DC #undef SDL_VIDEO_DRIVER_DDRAW #undef SDL_VIDEO_DRIVER_DGA #undef SDL_VIDEO_DRIVER_DIRECTFB #undef SDL_VIDEO_DRIVER_DRAWSPROCKET #undef SDL_VIDEO_DRIVER_DUMMY #undef SDL_VIDEO_DRIVER_FBCON #undef SDL_VIDEO_DRIVER_GAPI #undef SDL_VIDEO_DRIVER_GEM #undef SDL_VIDEO_DRIVER_GGI #undef SDL_VIDEO_DRIVER_IPOD #undef SDL_VIDEO_DRIVER_NANOX #undef SDL_VIDEO_DRIVER_OS2FS #undef SDL_VIDEO_DRIVER_PHOTON #undef SDL_VIDEO_DRIVER_PICOGUI #undef SDL_VIDEO_DRIVER_PS2GS #undef SDL_VIDEO_DRIVER_PS3 #undef SDL_VIDEO_DRIVER_QTOPIA #undef SDL_VIDEO_DRIVER_QUARTZ #undef SDL_VIDEO_DRIVER_RISCOS #undef SDL_VIDEO_DRIVER_SVGALIB #undef SDL_VIDEO_DRIVER_TOOLBOX #undef SDL_VIDEO_DRIVER_VGL #undef SDL_VIDEO_DRIVER_WINDIB #undef SDL_VIDEO_DRIVER_WSCONS #undef SDL_VIDEO_DRIVER_X11 #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE #undef SDL_VIDEO_DRIVER_X11_DYNAMIC #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER #undef SDL_VIDEO_DRIVER_X11_VIDMODE #undef SDL_VIDEO_DRIVER_X11_XINERAMA #undef SDL_VIDEO_DRIVER_X11_XME #undef SDL_VIDEO_DRIVER_X11_XRANDR #undef SDL_VIDEO_DRIVER_X11_XV #undef SDL_VIDEO_DRIVER_XBIOS /* Enable OpenGL support */ #undef SDL_VIDEO_OPENGL #undef SDL_VIDEO_OPENGL_GLX #undef SDL_VIDEO_OPENGL_WGL #undef SDL_VIDEO_OPENGL_OSMESA #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC /* Disable screensaver */ #undef SDL_VIDEO_DISABLE_SCREENSAVER /* Enable assembly routines */ #undef SDL_ASSEMBLY_ROUTINES #undef SDL_HERMES_BLITTERS #undef SDL_ALTIVEC_BLITTERS #endif /* _SDL_config_h */