X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=palette.c;h=21974d4de9e8c1b1dd905bb7d141df157ae461d7;hb=80b09064d8227075b6e9c4dfe4b007c6676082f5;hp=8996f0111f70ac3ba2d1f29446db56b16e3a847e;hpb=a9fc7c56ca413323bb1973c4629fed10e08d13f7;p=xonotic%2Fdarkplaces.git diff --git a/palette.c b/palette.c index 8996f011..21974d4d 100644 --- a/palette.c +++ b/palette.c @@ -109,28 +109,28 @@ void Palette_SetupSpecialPalettes(void) palette_font[0] = 0; } -void BuildGammaTable8(float prescale, float gamma, float scale, float base, unsigned char *out) +void BuildGammaTable8(float prescale, float gamma, float scale, float base, unsigned char *out, int rampsize) { int i, adjusted; double invgamma; invgamma = 1.0 / gamma; - prescale /= 255.0f; - for (i = 0;i < 256;i++) + prescale /= (double) (rampsize - 1); + for (i = 0;i < rampsize;i++) { adjusted = (int) (255.0 * (pow((double) i * prescale, invgamma) * scale + base) + 0.5); out[i] = bound(0, adjusted, 255); } } -void BuildGammaTable16(float prescale, float gamma, float scale, float base, unsigned short *out) +void BuildGammaTable16(float prescale, float gamma, float scale, float base, unsigned short *out, int rampsize) { int i, adjusted; double invgamma; invgamma = 1.0 / gamma; - prescale /= 255.0f; - for (i = 0;i < 256;i++) + prescale /= (double) (rampsize - 1); + for (i = 0;i < rampsize;i++) { adjusted = (int) (65535.0 * (pow((double) i * prescale, invgamma) * scale + base) + 0.5); out[i] = bound(0, adjusted, 65535); @@ -164,7 +164,7 @@ void Palette_Init(void) scale = bound(0.01, scale, 10.0); base = bound(0, base, 0.95); - BuildGammaTable8(1.0f, gamma, scale, base, texturegammaramp); + BuildGammaTable8(1.0f, gamma, scale, base, texturegammaramp, 256); palfile = (unsigned char *)FS_LoadFile ("gfx/palette.lmp", tempmempool, false, &filesize); if (palfile && filesize >= 768)