mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
- Fix r_overBrightBits variable getting ignored on Linux
- Replaced SDL_SetGamma by SDL_SetGammaRamp with gamma behaviour now matching win_gamma.c
This commit is contained in:
parent
75eb99b716
commit
82c4c70535
1 changed files with 32 additions and 7 deletions
|
@ -438,15 +438,35 @@ void IN_DeactivateMouse( void )
|
|||
*/
|
||||
void GLimp_SetGamma( unsigned char red[256], unsigned char green[256], unsigned char blue[256] )
|
||||
{
|
||||
// NOTE TTimo we get the gamma value from cvar, because we can't work with the s_gammatable
|
||||
// the API wasn't changed to avoid breaking other OSes
|
||||
float g;
|
||||
Uint16 table[3][256];
|
||||
int i, j;
|
||||
// float g;
|
||||
|
||||
if ( r_ignorehwgamma->integer )
|
||||
return;
|
||||
if(r_ignorehwgamma->integer)
|
||||
return;
|
||||
|
||||
g = Cvar_Get("r_gamma", "1.0", 0)->value;
|
||||
SDL_SetGamma(g, g, g);
|
||||
// taken from win_gamma.c:
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
table[0][i] = ( ( ( Uint16 ) red[i] ) << 8 ) | red[i];
|
||||
table[1][i] = ( ( ( Uint16 ) green[i] ) << 8 ) | green[i];
|
||||
table[2][i] = ( ( ( Uint16 ) blue[i] ) << 8 ) | blue[i];
|
||||
}
|
||||
|
||||
// enforce constantly increasing
|
||||
for (j = 0; j < 3; j++)
|
||||
{
|
||||
for (i = 1; i < 256; i++)
|
||||
{
|
||||
if (table[j][i] < table[j][i-1])
|
||||
table[j][i] = table[j][i-1];
|
||||
}
|
||||
}
|
||||
|
||||
SDL_SetGammaRamp(table[0], table[1], table[2]);
|
||||
|
||||
// g = Cvar_Get("r_gamma", "1.0", 0)->value;
|
||||
// SDL_SetGamma(g, g, g);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -553,7 +573,12 @@ static int GLW_SetMode( const char *drivername, int mode, qboolean fullscreen )
|
|||
|
||||
Uint32 flags = SDL_OPENGL;
|
||||
if (fullscreen)
|
||||
{
|
||||
flags |= SDL_FULLSCREEN;
|
||||
glConfig.isFullscreen = qtrue;
|
||||
}
|
||||
else
|
||||
glConfig.isFullscreen = qfalse;
|
||||
|
||||
if (!r_colorbits->value)
|
||||
colorbits = 24;
|
||||
|
|
Loading…
Reference in a new issue