Comment 6 for bug 257181

Revision history for this message
Luca Béla Palkovics (luca-bela-palkovics) wrote :

Here is the bug fix:

in usplash_svga.c it does changes the color-indices to 16Bit colors if the screen is in 16Bit mode.
At Ubuntu (9.10 Jaunty, don't know if it's on different versions too) the usplash runs at 16bit mode.

When you change the background-color or background-color of the text liek to 0xFF
It now should use the color with the index of 0xFF.
And Usplash will do this right if it runs at 8bit mode (but thats just a stupid workaround)

The original in usplash_svga.c
void usplash_svga_clear(int x1, int y1, int x2, int y2, int colour)
{
 gl_fillbox(x1, y1, x2 - x1, y2 - y1, colour);
}

I fixed this code to this:
void usplash_svga_clear(int x1, int y1, int x2, int y2, int colour)
{
 //BUG FIXED BY Luca Béla Palkovics
 //Original: gl_fillbox(x1, y1, x2 - x1, y2 - y1, colour);
 uint16_t value;
 if (bpp == 8)
  value=colour;
 else
 { //16 BIT MODE => GET COLOR FROM PALETTE !!
  value = vesa_palette[pixmap->data[i]].blue >> 3;
  value |=(vesa_palette[pixmap->data[i]].green >> 2) << 5;
  value |=(vesa_palette[pixmap->data[i]].red >> 3) << 11;
 }
 gl_fillbox(x1,y1,x2-x1,y2-y1,value)
}

now it will use the right color at 16Bit mode and 8Bit mode