Fix discoloured screenshots bug.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5632 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
395309b2d9
commit
dbc76288a5
1 changed files with 19 additions and 16 deletions
|
@ -328,29 +328,32 @@ char *GLVID_GetRGBInfo(int *bytestride, int *truewidth, int *trueheight, enum up
|
||||||
|
|
||||||
if (gammaworks && r2d_canhwgamma)
|
if (gammaworks && r2d_canhwgamma)
|
||||||
{
|
{
|
||||||
if (*fmt == PTI_BGRA8 || *fmt == PTI_BGRX8 || *fmt == PTI_BGR8)
|
extern qbyte gammatable[256];
|
||||||
|
int pxsize = 4;
|
||||||
|
c = (*truewidth)*(*trueheight);
|
||||||
|
switch(*fmt)
|
||||||
{
|
{
|
||||||
int pxsize = (*fmt == PTI_BGR8)?3:4;
|
case PTI_RGB8:
|
||||||
c = (*truewidth)*(*trueheight)*pxsize;
|
case PTI_BGR8:
|
||||||
|
pxsize = 3;
|
||||||
|
//fallthrough
|
||||||
|
case PTI_LLLA8:
|
||||||
|
case PTI_LLLX8:
|
||||||
|
case PTI_RGBA8:
|
||||||
|
case PTI_RGBX8:
|
||||||
|
case PTI_BGRA8:
|
||||||
|
case PTI_BGRX8:
|
||||||
|
//pxsize is 4 (or 3 if we fell through above)
|
||||||
|
c*=pxsize;
|
||||||
for (i=0 ; i<c ; i+=pxsize)
|
for (i=0 ; i<c ; i+=pxsize)
|
||||||
{
|
{
|
||||||
extern qbyte gammatable[256];
|
|
||||||
ret[i+0] = gammatable[ret[i+2]];
|
|
||||||
ret[i+1] = gammatable[ret[i+1]];
|
|
||||||
ret[i+2] = gammatable[ret[i+0]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (*fmt == PTI_RGBA8 || *fmt == PTI_RGBX8 || *fmt == PTI_RGB8)
|
|
||||||
{
|
|
||||||
int pxsize = (*fmt == PTI_RGB8)?3:4;
|
|
||||||
c = (*truewidth)*(*trueheight)*pxsize;
|
|
||||||
for (i=0 ; i<c ; i+=pxsize)
|
|
||||||
{
|
|
||||||
extern qbyte gammatable[256];
|
|
||||||
ret[i+0] = gammatable[ret[i+0]];
|
ret[i+0] = gammatable[ret[i+0]];
|
||||||
ret[i+1] = gammatable[ret[i+1]];
|
ret[i+1] = gammatable[ret[i+1]];
|
||||||
ret[i+2] = gammatable[ret[i+2]];
|
ret[i+2] = gammatable[ret[i+2]];
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break; //some kind of bug.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue