From 2be2133d7f56dd79fb6f626c8d7e32ea355c733b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 27 Sep 2012 11:29:13 -0700 Subject: [PATCH] Turned the X11 mode extension environment variables into hints so they can be more easily set from applications. --- include/SDL_hints.h | 35 ++++++++++++++++++++++++++++++++++- src/video/x11/SDL_x11modes.c | 13 +++++++------ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/include/SDL_hints.h b/include/SDL_hints.h index 7500ee701..aff3602ba 100644 --- a/include/SDL_hints.h +++ b/include/SDL_hints.h @@ -118,7 +118,40 @@ extern "C" { * By default SDL does not sync screen surface updates with vertical refresh. */ #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. * diff --git a/src/video/x11/SDL_x11modes.c b/src/video/x11/SDL_x11modes.c index cfab6e71d..ef6e08a7b 100755 --- a/src/video/x11/SDL_x11modes.c +++ b/src/video/x11/SDL_x11modes.c @@ -22,6 +22,7 @@ #if SDL_VIDEO_DRIVER_X11 +#include "SDL_hints.h" #include "SDL_x11video.h" /*#define X11MODES_DEBUG*/ @@ -270,10 +271,10 @@ CheckXinerama(Display * display, int *major, int *minor) *major = *minor = 0; /* Allow environment override */ - env = getenv("SDL_VIDEO_X11_XINERAMA"); + env = SDL_GetHint(SDL_HINT_VIDEO_X11_XINERAMA); if (env && !SDL_atoi(env)) { #ifdef X11MODES_DEBUG - printf("Xinerama disabled due to environment variable\n"); + printf("Xinerama disabled due to hint\n"); #endif return SDL_FALSE; } @@ -311,10 +312,10 @@ CheckXRandR(Display * display, int *major, int *minor) *major = *minor = 0; /* Allow environment override */ - env = getenv("SDL_VIDEO_X11_XRANDR"); + env = SDL_GetHint(SDL_HINT_VIDEO_X11_XRANDR); if (env && !SDL_atoi(env)) { #ifdef X11MODES_DEBUG - printf("XRandR disabled due to environment variable\n"); + printf("XRandR disabled due to hint\n"); #endif return SDL_FALSE; } @@ -350,10 +351,10 @@ CheckVidMode(Display * display, int *major, int *minor) *major = *minor = 0; /* Allow environment override */ - env = getenv("SDL_VIDEO_X11_XVIDMODE"); + env = SDL_GetHint(SDL_HINT_VIDEO_X11_XVIDMODE); if (env && !SDL_atoi(env)) { #ifdef X11MODES_DEBUG - printf("XVidMode disabled due to environment variable\n"); + printf("XVidMode disabled due to hint\n"); #endif return SDL_FALSE; }