mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-22 19:02:45 +00:00
Correcting gamma to match base SRB2.
This commit is contained in:
parent
bef9520556
commit
29d5af61c1
1 changed files with 29 additions and 5 deletions
|
@ -118,7 +118,6 @@ http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html
|
|||
Please check it out if you're trying to maintain this.
|
||||
toast 18/04/17
|
||||
*/
|
||||
|
||||
float Cubepal[2][2][2][3];
|
||||
|
||||
// returns whether to apply cube, selectively avoiding expensive operations
|
||||
|
@ -174,7 +173,7 @@ static boolean InitCube(void)
|
|||
|| diffcons(cv_ggamma)
|
||||
|| diffcons(cv_cgamma)
|
||||
|| diffcons(cv_bgamma)
|
||||
|| diffcons(cv_mgamma))
|
||||
|| diffcons(cv_mgamma)) // set the gamma'd/hued positions (saturation is done later)
|
||||
{
|
||||
float mod, tempgammamul, tempgammaoffs;
|
||||
|
||||
|
@ -304,6 +303,31 @@ static boolean InitCube(void)
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
So it turns out that the way gamma was implemented previously, the default
|
||||
colour profile of the game was messed up. Since this bad decision has been
|
||||
around for a long time, and the intent is to keep the base game looking the
|
||||
same, I'm not gonna be the one to remove this base modification.
|
||||
toast 20/04/17
|
||||
*/
|
||||
const UINT8 correctiontable[256] =
|
||||
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
|
||||
17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,
|
||||
33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,
|
||||
49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,
|
||||
65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
|
||||
81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
|
||||
97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
|
||||
113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,
|
||||
128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
|
||||
144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
|
||||
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
|
||||
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
|
||||
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
|
||||
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
|
||||
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
|
||||
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
|
||||
|
||||
// keep a copy of the palette so that we can get the RGB value for a color index at any time.
|
||||
static void LoadPalette(const char *lumpname)
|
||||
{
|
||||
|
@ -319,9 +343,9 @@ static void LoadPalette(const char *lumpname)
|
|||
pal = W_CacheLumpNum(lumpnum, PU_CACHE);
|
||||
for (i = 0; i < palsize; i++)
|
||||
{
|
||||
pLocalPalette[i].s.red = *pal++;
|
||||
pLocalPalette[i].s.green = *pal++;
|
||||
pLocalPalette[i].s.blue = *pal++;
|
||||
pLocalPalette[i].s.red = correctiontable[*pal++];
|
||||
pLocalPalette[i].s.green = correctiontable[*pal++];
|
||||
pLocalPalette[i].s.blue = correctiontable[*pal++];
|
||||
pLocalPalette[i].s.alpha = 0xFF;
|
||||
|
||||
// lerp of colour cubing!
|
||||
|
|
Loading…
Reference in a new issue