mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-26 14:30:48 +00:00
Remove X11GAMMA support from code.
This just deletes the X11GAMMA code. It doesn't make use of some refactoring opportunities that're now possible. That will be done at a later time.
This commit is contained in:
parent
307d5eecf7
commit
759bc1be18
2 changed files with 1 additions and 209 deletions
|
@ -1399,12 +1399,6 @@ RI_Init()
|
|||
|
||||
R_Printf(PRINT_ALL, " + Retexturing support\n");
|
||||
|
||||
#ifdef X11GAMMA
|
||||
R_Printf(PRINT_ALL, " + Gamma via X11\n\n");
|
||||
#else
|
||||
R_Printf(PRINT_ALL, " - Gamma via X11\n\n");
|
||||
#endif
|
||||
|
||||
Draw_GetPalette();
|
||||
|
||||
R_Register();
|
||||
|
|
|
@ -39,22 +39,6 @@
|
|||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
/* X.org stuff - put this here as more modern renderers wouldn't need it
|
||||
* e.g. an OpenGL3 renderer could just apply gamma through a shader */
|
||||
#ifdef X11GAMMA
|
||||
#include <X11/Xos.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/extensions/xf86vmode.h>
|
||||
#include <X11/extensions/Xrandr.h>
|
||||
|
||||
#include <SDL_syswm.h>
|
||||
|
||||
XRRCrtcGamma** gammaRamps = NULL;
|
||||
int noGammaRamps = 0;
|
||||
#endif
|
||||
|
||||
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
static SDL_Window* window = NULL;
|
||||
static SDL_GLContext context = NULL;
|
||||
|
@ -116,68 +100,6 @@ void CalculateGammaRamp(float gamma, Uint16* ramp, int len)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the hardware gamma
|
||||
*/
|
||||
#ifdef X11GAMMA
|
||||
void
|
||||
UpdateHardwareGamma(void)
|
||||
{
|
||||
float gamma = (vid_gamma->value);
|
||||
int i;
|
||||
|
||||
Display* dpy = NULL;
|
||||
SDL_SysWMinfo info;
|
||||
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
SDL_VERSION(&info.version);
|
||||
if(!SDL_GetWindowWMInfo(window, &info))
|
||||
#else
|
||||
if(SDL_GetWMInfo(&info) != 1)
|
||||
#endif
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Couldn't get Window info from SDL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
dpy = info.info.x11.display;
|
||||
|
||||
XRRScreenResources* res = XRRGetScreenResources(dpy, info.info.x11.window);
|
||||
if(res == NULL)
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Unable to get xrandr screen resources.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0; i < res->ncrtc; ++i)
|
||||
{
|
||||
int len = XRRGetCrtcGammaSize(dpy, res->crtcs[i]);
|
||||
size_t rampSize = len*sizeof(Uint16);
|
||||
Uint16* ramp = malloc(rampSize); // TODO: check for NULL
|
||||
if(ramp == NULL)
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Couldn't allocate &zd byte of memory for gamma ramp - OOM?!\n", rampSize);
|
||||
return;
|
||||
}
|
||||
|
||||
CalculateGammaRamp(gamma, ramp, len);
|
||||
|
||||
XRRCrtcGamma* gamma = XRRAllocGamma(len);
|
||||
|
||||
memcpy(gamma->red, ramp, rampSize);
|
||||
memcpy(gamma->green, ramp, rampSize);
|
||||
memcpy(gamma->blue, ramp, rampSize);
|
||||
|
||||
free(ramp);
|
||||
|
||||
XRRSetCrtcGamma(dpy, res->crtcs[i], gamma);
|
||||
|
||||
XRRFreeGamma(gamma);
|
||||
}
|
||||
|
||||
XRRFreeScreenResources(res);
|
||||
}
|
||||
#else // no X11GAMMA
|
||||
void
|
||||
UpdateHardwareGamma(void)
|
||||
{
|
||||
|
@ -193,135 +115,15 @@ UpdateHardwareGamma(void)
|
|||
R_Printf(PRINT_ALL, "Setting gamma failed: %s\n", SDL_GetError());
|
||||
}
|
||||
}
|
||||
#endif // X11GAMMA
|
||||
|
||||
static void InitGamma()
|
||||
{
|
||||
#ifdef X11GAMMA
|
||||
int i=0;
|
||||
SDL_SysWMinfo info;
|
||||
Display* dpy = NULL;
|
||||
|
||||
if(gammaRamps != NULL) // already saved gamma
|
||||
return;
|
||||
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
SDL_VERSION(&info.version);
|
||||
if(!SDL_GetWindowWMInfo(window, &info))
|
||||
#else
|
||||
if(SDL_GetWMInfo(&info) != 1)
|
||||
#endif
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Couldn't get Window info from SDL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
dpy = info.info.x11.display;
|
||||
|
||||
XRRScreenResources* res = XRRGetScreenResources(dpy, info.info.x11.window);
|
||||
if(res == NULL)
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Unable to get xrandr screen resources.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
noGammaRamps = res->ncrtc;
|
||||
gammaRamps = calloc(noGammaRamps, sizeof(XRRCrtcGamma*));
|
||||
if(gammaRamps == NULL) {
|
||||
R_Printf(PRINT_ALL, "Couldn't allocate memory for %d gamma ramps - OOM?!\n", noGammaRamps);
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0; i < noGammaRamps; ++i)
|
||||
{
|
||||
int len = XRRGetCrtcGammaSize(dpy, res->crtcs[i]);
|
||||
size_t rampSize = len*sizeof(Uint16);
|
||||
|
||||
XRRCrtcGamma* origGamma = XRRGetCrtcGamma(dpy, res->crtcs[i]);
|
||||
|
||||
XRRCrtcGamma* gammaCopy = XRRAllocGamma(len);
|
||||
|
||||
memcpy(gammaCopy->red, origGamma->red, rampSize);
|
||||
memcpy(gammaCopy->green, origGamma->green, rampSize);
|
||||
memcpy(gammaCopy->blue, origGamma->blue, rampSize);
|
||||
|
||||
gammaRamps[i] = gammaCopy;
|
||||
}
|
||||
|
||||
XRRFreeScreenResources(res);
|
||||
|
||||
R_Printf(PRINT_ALL, "Using hardware gamma via X11/xRandR.\n");
|
||||
#elif __APPLE__
|
||||
gl_state.hwgamma = false;
|
||||
R_Printf(PRINT_ALL, "Using software gamma (needs vid_restart after changes)\n");
|
||||
return;
|
||||
#else
|
||||
R_Printf(PRINT_ALL, "Using hardware gamma via SDL.\n");
|
||||
#endif
|
||||
|
||||
gl_state.hwgamma = true;
|
||||
vid_gamma->modified = true;
|
||||
}
|
||||
|
||||
#ifdef X11GAMMA
|
||||
static void RestoreGamma()
|
||||
{
|
||||
int i=0;
|
||||
SDL_SysWMinfo info;
|
||||
Display* dpy = NULL;
|
||||
|
||||
if(gammaRamps == NULL)
|
||||
return;
|
||||
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
SDL_VERSION(&info.version);
|
||||
if(!SDL_GetWindowWMInfo(window, &info))
|
||||
#else
|
||||
if(SDL_GetWMInfo(&info) != 1)
|
||||
#endif
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Couldn't get Window info from SDL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
dpy = info.info.x11.display;
|
||||
|
||||
XRRScreenResources* res = XRRGetScreenResources(dpy, info.info.x11.window);
|
||||
if(res == NULL)
|
||||
{
|
||||
R_Printf(PRINT_ALL, "Unable to get xrandr screen resources.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0; i < noGammaRamps; ++i)
|
||||
{
|
||||
// in case a display was unplugged or something, noGammaRamps may be > res->ncrtc
|
||||
if(i < res->ncrtc)
|
||||
{
|
||||
int len = XRRGetCrtcGammaSize(dpy, res->crtcs[i]);
|
||||
if(len != gammaRamps[i]->size) {
|
||||
R_Printf(PRINT_ALL, "WTF, gamma ramp size for display %d has changed from %d to %d!\n",
|
||||
i, gammaRamps[i]->size, len);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
XRRSetCrtcGamma(dpy, res->crtcs[i], gammaRamps[i]);
|
||||
}
|
||||
|
||||
// the ramp needs to be free()d either way
|
||||
XRRFreeGamma(gammaRamps[i]);
|
||||
gammaRamps[i] = NULL;
|
||||
|
||||
}
|
||||
XRRFreeScreenResources(res);
|
||||
free(gammaRamps);
|
||||
gammaRamps = NULL;
|
||||
|
||||
R_Printf(PRINT_ALL, "Restored original Gamma\n");
|
||||
}
|
||||
#endif // X11GAMMA
|
||||
|
||||
|
||||
// called by GLimp_InitGraphics() before creating window,
|
||||
// returns flags for SDL window creation
|
||||
int RI_PrepareForWindow(void)
|
||||
|
@ -487,10 +289,6 @@ RI_EndFrame(void)
|
|||
void
|
||||
RI_ShutdownWindow(qboolean contextOnly)
|
||||
{
|
||||
#ifdef X11GAMMA
|
||||
RestoreGamma();
|
||||
#endif
|
||||
|
||||
/* Clear the backbuffer and make it
|
||||
current. This may help some broken
|
||||
video drivers like the AMD Catalyst
|
||||
|
|
Loading…
Reference in a new issue