From a5281df501926ab8d9af99c5ea2af7fb87e3b505 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Mon, 18 Aug 2014 12:58:02 +0200 Subject: [PATCH] Moved RandR gamma probe to init. --- src/x11_init.c | 18 +++++++++++++++++- src/x11_monitor.c | 23 ----------------------- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/x11_init.c b/src/x11_init.c index 53e8b350..5464737e 100644 --- a/src/x11_init.c +++ b/src/x11_init.c @@ -475,6 +475,8 @@ static GLboolean initExtensions(void) if (_glfw.x11.randr.available) { + XRRScreenResources* sr; + if (!XRRQueryVersion(_glfw.x11.display, &_glfw.x11.randr.versionMajor, &_glfw.x11.randr.versionMinor)) @@ -490,6 +492,21 @@ static GLboolean initExtensions(void) { _glfw.x11.randr.available = GL_FALSE; } + + sr = XRRGetScreenResources(_glfw.x11.display, _glfw.x11.root); + + if (!sr->ncrtc || !XRRGetCrtcGammaSize(_glfw.x11.display, sr->crtcs[0])) + { + // This is either a headless system or an older Nvidia binary driver + // with broken gamma support + // Flag it as useless and fall back to Xf86VidMode gamma, if + // available + _glfwInputError(GLFW_PLATFORM_ERROR, + "X11: RandR gamma ramp support seems broken"); + _glfw.x11.randr.gammaBroken = GL_TRUE; + } + + XRRFreeScreenResources(sr); } if (XQueryExtension(_glfw.x11.display, @@ -701,7 +718,6 @@ int _glfwPlatformInit(void) _glfwInitTimer(); _glfwInitJoysticks(); - _glfwInitGammaRamp(); return GL_TRUE; } diff --git a/src/x11_monitor.c b/src/x11_monitor.c index 60b31d4a..26f79cb6 100644 --- a/src/x11_monitor.c +++ b/src/x11_monitor.c @@ -95,29 +95,6 @@ static GLFWvidmode vidmodeFromModeInfo(const XRRModeInfo* mi, ////// GLFW internal API ////// ////////////////////////////////////////////////////////////////////////// -// Detect gamma ramp support -// -void _glfwInitGammaRamp(void) -{ - if (_glfw.x11.randr.available) - { - XRRScreenResources* sr = XRRGetScreenResources(_glfw.x11.display, - _glfw.x11.root); - - if (!sr->ncrtc || !XRRGetCrtcGammaSize(_glfw.x11.display, sr->crtcs[0])) - { - // This is either a headless system or an older Nvidia binary driver - // with broken gamma support - // Flag it as useless and fall back to Xf86VidMode, if available - _glfwInputError(GLFW_PLATFORM_ERROR, - "X11: RandR gamma ramp support seems broken"); - _glfw.x11.randr.gammaBroken = GL_TRUE; - } - - XRRFreeScreenResources(sr); - } -} - // Set the current video mode for the specified monitor // GLboolean _glfwSetVideoMode(_GLFWmonitor* monitor, const GLFWvidmode* desired)