- Fixed: DFrameBuffer::CopyPixelData copied data as RGBA instead of BGRA.
- Temporarily changed FPNGTexture and FDDSTexture to always create True Color native textures to preserve the original colors. SVN r650 (trunk)
This commit is contained in:
parent
f1241099f8
commit
e19cd0bec3
4 changed files with 17 additions and 4 deletions
|
|
@ -1022,16 +1022,16 @@ void DFrameBuffer::CopyPixelData(BYTE * buffer, int texpitch, int texheight, int
|
|||
int v=(unsigned char)patch[y*step_y+x*step_x];
|
||||
if (palette[v].a==0)
|
||||
{
|
||||
buffer[pos]=palette[v].r;
|
||||
buffer[pos]=palette[v].b;
|
||||
buffer[pos+1]=palette[v].g;
|
||||
buffer[pos+2]=palette[v].b;
|
||||
buffer[pos+2]=palette[v].r;
|
||||
buffer[pos+3]=255-palette[v].a;
|
||||
}
|
||||
else if (palette[v].a!=255)
|
||||
{
|
||||
buffer[pos ] = (buffer[pos ] * palette[v].a + palette[v].r * (1-palette[v].a)) / 255;
|
||||
buffer[pos ] = (buffer[pos ] * palette[v].a + palette[v].b * (1-palette[v].a)) / 255;
|
||||
buffer[pos+1] = (buffer[pos+1] * palette[v].a + palette[v].g * (1-palette[v].a)) / 255;
|
||||
buffer[pos+2] = (buffer[pos+2] * palette[v].a + palette[v].b * (1-palette[v].a)) / 255;
|
||||
buffer[pos+2] = (buffer[pos+2] * palette[v].a + palette[v].r * (1-palette[v].a)) / 255;
|
||||
buffer[pos+3] = clamp<int>(buffer[pos+3] + (( 255-buffer[pos+3]) * (255-palette[v].a))/255, 0, 255);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue