Turned the X11 mode extension environment variables into hints so they can be more easily set from applications.

This commit is contained in:
Sam Lantinga 2012-09-27 11:29:13 -07:00
parent 86e52a87bf
commit 0582dc6ce3
2 changed files with 41 additions and 7 deletions

View file

@ -118,7 +118,40 @@ extern "C" {
* By default SDL does not sync screen surface updates with vertical refresh. * By default SDL does not sync screen surface updates with vertical refresh.
*/ */
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
/**
* \brief A variable controlling whether the X11 VidMode extension should be used.
*
* This variable can be set to the following values:
* "0" - Disable XVidMode
* "1" - Enable XVidMode
*
* By default SDL will use XVidMode if it is available.
*/
#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
/**
* \brief A variable controlling whether the X11 Xinerama extension should be used.
*
* This variable can be set to the following values:
* "0" - Disable Xinerama
* "1" - Enable Xinerama
*
* By default SDL will use Xinerama if it is available.
*/
#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
/**
* \brief A variable controlling whether the X11 XRandR extension should be used.
*
* This variable can be set to the following values:
* "0" - Disable XRandR
* "1" - Enable XRandR
*
* By default SDL will use XRandR if it is available.
*/
#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
/** /**
* \brief A variable controlling whether the idle timer is disabled on iOS. * \brief A variable controlling whether the idle timer is disabled on iOS.
* *

View file

@ -22,6 +22,7 @@
#if SDL_VIDEO_DRIVER_X11 #if SDL_VIDEO_DRIVER_X11
#include "SDL_hints.h"
#include "SDL_x11video.h" #include "SDL_x11video.h"
/*#define X11MODES_DEBUG*/ /*#define X11MODES_DEBUG*/
@ -270,10 +271,10 @@ CheckXinerama(Display * display, int *major, int *minor)
*major = *minor = 0; *major = *minor = 0;
/* Allow environment override */ /* Allow environment override */
env = getenv("SDL_VIDEO_X11_XINERAMA"); env = SDL_GetHint(SDL_HINT_VIDEO_X11_XINERAMA);
if (env && !SDL_atoi(env)) { if (env && !SDL_atoi(env)) {
#ifdef X11MODES_DEBUG #ifdef X11MODES_DEBUG
printf("Xinerama disabled due to environment variable\n"); printf("Xinerama disabled due to hint\n");
#endif #endif
return SDL_FALSE; return SDL_FALSE;
} }
@ -311,10 +312,10 @@ CheckXRandR(Display * display, int *major, int *minor)
*major = *minor = 0; *major = *minor = 0;
/* Allow environment override */ /* Allow environment override */
env = getenv("SDL_VIDEO_X11_XRANDR"); env = SDL_GetHint(SDL_HINT_VIDEO_X11_XRANDR);
if (env && !SDL_atoi(env)) { if (env && !SDL_atoi(env)) {
#ifdef X11MODES_DEBUG #ifdef X11MODES_DEBUG
printf("XRandR disabled due to environment variable\n"); printf("XRandR disabled due to hint\n");
#endif #endif
return SDL_FALSE; return SDL_FALSE;
} }
@ -350,10 +351,10 @@ CheckVidMode(Display * display, int *major, int *minor)
*major = *minor = 0; *major = *minor = 0;
/* Allow environment override */ /* Allow environment override */
env = getenv("SDL_VIDEO_X11_XVIDMODE"); env = SDL_GetHint(SDL_HINT_VIDEO_X11_XVIDMODE);
if (env && !SDL_atoi(env)) { if (env && !SDL_atoi(env)) {
#ifdef X11MODES_DEBUG #ifdef X11MODES_DEBUG
printf("XVidMode disabled due to environment variable\n"); printf("XVidMode disabled due to hint\n");
#endif #endif
return SDL_FALSE; return SDL_FALSE;
} }