Hi David,
"David Powell" <david@xxxxxxxxxxxxxxxxx> wrote:
> This proposed patch adds 8-bit indexed colour support to the
> bootloader
> and kernel, so that the safemode VESA 8-bit colour modes can display
> the boot splash screen.
Sorry for the delay, I didn't find much time in the last couple of
days, and I'm still catching up mails.
> Also included are additions to the generate_boot_screen program to
> add the indexed images and colour palette information to the images.h
> file.
Nice! There are a couple of coding style issues, like:
> + if (buffer[0] > 1) {
> + fprintf (sOutput, "%d, ",
> + 128 + buffer[0] - 1);
> + new_line_if_required();
> + for (int i = 1; i < buffer[0] ;
> i++) {
> + fprintf( sOutput, "%d,
> ",
> + buffer[i] );
Spacing of the function calls is wrong - it's always fprintf("") not
fprintf ("") nor fprintf( "" ) :-)
Also, looking at the end of the patch, the output looks wrong, too, as
there is an additional tab before the last '};'.
Other than that, the patch looks good to me.
> I have also added the new output of the generate_boot_screen to the
> patch
> as a new images.h file.
>
> While the bootloader and kernel patches are feature complete, the
> generate_boot_screen program currently does not output a nice colour
> mapped indexed image, and instead outputs a greyscale image of the
> logo and icons. It's enough to check the bootloader and kernel code
> work
> correctly, but doing a 24-bit to 8-bit image conversion was way more
> work that I expected, so I added in a greyscale conversion as a stop-
> gap
> measure.
Grayscale is probably enough for the moment. You could do a simple
palette replacement algorithm instead of a real color conversion,
though -- dunno if that would look better, though.
If we just do a simple conversion like this, I would actually prefer to
do it "live" in the boot loader, though; at least it should consume
less space, and should still be pretty much instant.
> The Run Length Encoding routines in both the bootloader and
> generate_boot_screen are contained in seperate 24 and 8 bit
> functions,
> rather than one function with a parameter denoting depth, as I want
> to
> add VGA 640x480x4 video mode support and (possibly) 4 bit RLE before
> simplifying
> the code.
Sounds good!
Bye,
Axel.