-//! Set the current Gamma Value for the Display\r
-bool CIrrDeviceLinux::setGammaRamp( f32 red, f32 green, f32 blue, f32 brightness, f32 contrast )\r
-{\r
- #if defined(_IRR_LINUX_X11_VIDMODE_) || defined(_IRR_LINUX_X11_RANDR_)\r
- s32 eventbase, errorbase;\r
- #ifdef _IRR_LINUX_X11_VIDMODE_\r
- if (XF86VidModeQueryExtension(XDisplay, &eventbase, &errorbase))\r
- {\r
- XF86VidModeGamma gamma;\r
- gamma.red=red;\r
- gamma.green=green;\r
- gamma.blue=blue;\r
- XF86VidModeSetGamma(XDisplay, Screennr, &gamma);\r
- return true;\r
- }\r
- #endif\r
- #if defined(_IRR_LINUX_X11_VIDMODE_) && defined(_IRR_LINUX_X11_RANDR_)\r
- else\r
- #endif\r
- #ifdef _IRR_LINUX_X11_RANDR_\r
- if (XRRQueryExtension(XDisplay, &eventbase, &errorbase))\r
- {\r
- XRRQueryVersion(XDisplay, &eventbase, &errorbase); // major, minor\r
- if (eventbase>=1 && errorbase>1)\r
- {\r
- #if (RANDR_MAJOR>1 || RANDR_MINOR>1)\r
- XRRCrtcGamma *gamma = XRRGetCrtcGamma(XDisplay, Screennr);\r
- if (gamma)\r
- {\r
- *gamma->red=(u16)red;\r
- *gamma->green=(u16)green;\r
- *gamma->blue=(u16)blue;\r
- XRRSetCrtcGamma(XDisplay, Screennr, gamma);\r
- XRRFreeGamma(gamma);\r
- return true;\r
- }\r
- #endif\r
- }\r
- }\r
- #endif\r
- #endif\r
- return false;\r
-}\r
-\r
-\r
-//! Get the current Gamma Value for the Display\r
-bool CIrrDeviceLinux::getGammaRamp( f32 &red, f32 &green, f32 &blue, f32 &brightness, f32 &contrast )\r
-{\r
- brightness = 0.f;\r
- contrast = 0.f;\r
- #if defined(_IRR_LINUX_X11_VIDMODE_) || defined(_IRR_LINUX_X11_RANDR_)\r
- s32 eventbase, errorbase;\r
- #ifdef _IRR_LINUX_X11_VIDMODE_\r
- if (XF86VidModeQueryExtension(XDisplay, &eventbase, &errorbase))\r
- {\r
- XF86VidModeGamma gamma;\r
- XF86VidModeGetGamma(XDisplay, Screennr, &gamma);\r
- red = gamma.red;\r
- green = gamma.green;\r
- blue = gamma.blue;\r
- return true;\r
- }\r
- #endif\r
- #if defined(_IRR_LINUX_X11_VIDMODE_) && defined(_IRR_LINUX_X11_RANDR_)\r
- else\r
- #endif\r
- #ifdef _IRR_LINUX_X11_RANDR_\r
- if (XRRQueryExtension(XDisplay, &eventbase, &errorbase))\r
- {\r
- XRRQueryVersion(XDisplay, &eventbase, &errorbase); // major, minor\r
- if (eventbase>=1 && errorbase>1)\r
- {\r
- #if (RANDR_MAJOR>1 || RANDR_MINOR>1)\r
- XRRCrtcGamma *gamma = XRRGetCrtcGamma(XDisplay, Screennr);\r
- if (gamma)\r
- {\r
- red = *gamma->red;\r
- green = *gamma->green;\r
- blue= *gamma->blue;\r
- XRRFreeGamma(gamma);\r
- return true;\r
- }\r
- #endif\r
- }\r
- }\r
- #endif\r
- #endif\r
- return false;\r
-}\r
-\r
-\r