x11: Let apps specify that video init should fail if XRandR is unavailable.

Notably: it sets the error string to inform you that your custom SDL is built
without xrandr support, which apparently has been a support issue for
Unreal Engine 4 developers.
This commit is contained in:
Ryan C. Gordon 2016-01-04 23:44:27 -05:00
parent f9d478b6c3
commit 81209acbd8

View file

@ -618,6 +618,20 @@ X11_InitModes(_THIS)
/* !!! FIXME: eventually remove support for Xinerama and XVidMode (everything below here). */ /* !!! FIXME: eventually remove support for Xinerama and XVidMode (everything below here). */
/* This is a workaround for some apps (UnrealEngine4, for example) until
we sort out the ramifications of removing XVidMode support outright.
This block should be removed with the XVidMode support. */
{
const char *env = SDL_GetHint("SDL_VIDEO_X11_REQUIRE_XRANDR");
if (env && SDL_atoi(env)) {
#if SDL_VIDEO_DRIVER_X11_XRANDR
return SDL_SetError("XRandR support is required but not available");
#else
return SDL_SetError("XRandR support is required but not built into SDL!");
#endif
}
}
#if SDL_VIDEO_DRIVER_X11_XINERAMA #if SDL_VIDEO_DRIVER_X11_XINERAMA
/* Query Xinerama extention /* Query Xinerama extention
* NOTE: This works with Nvidia Twinview correctly, but you need version 302.17 (released on June 2012) * NOTE: This works with Nvidia Twinview correctly, but you need version 302.17 (released on June 2012)