[coreboot] libpayload: correct tinycurses color on the VGA console
Jordan Crouse
jordan.crouse at amd.com
Mon Aug 18 21:32:38 CEST 2008
On 16/08/08 15:12 +0200, Ulf Jordan wrote:
> Hello!
>
> The attached patch makes the VGA output from tinycurses match the curses
> color macros.
>
> Build and run tested under QEMU with coreinfo+coreboot-v3,
> bayou-0.3+coreboot-v3 (now looks very red, just like the color pairs
> specify...), and tint-0.03b+coreboot-v3.
>
> /ulf
> Fix tinycurses color output on the VGA console.
>
> The CGA compatible 16 color VGA text mode expects Intensity RGB color
> specifications, in the order IRGB from most to least significant bit.
> Curses COLOR_ macros follows ANSI X3.64/ISO 6429/ECMA-48, specifying
> RGB color in the order BGR from most to least significant bit.
> Consequently, it is necessary to swap the red and blue bits.
>
> Signed-off-by: Ulf Jordan <jordan at chalmers.se>
Acked-by: Jordan Crouse <jordan.crouse at amd.com>
r3517
> Index: libpayload/curses/tinycurses.c
> ===================================================================
> --- libpayload/curses/tinycurses.c (revision 3511)
> +++ libpayload/curses/tinycurses.c (arbetskopia)
> @@ -658,6 +658,8 @@
> return OK;
> }
>
> +#define SWAP_RED_BLUE(c) \
> + (((c) & 0x4400) >> 2) | ((c) & 0xAA00) | (((c) & 0x1100) << 2)
> int wnoutrefresh(WINDOW *win)
> {
> // FIXME.
> @@ -720,6 +722,8 @@
> serial_putchar(ch);
> }
>
> + c = SWAP_RED_BLUE(c);
> +
> if (curses_flags & F_ENABLE_CONSOLE) {
> ch = win->_line[y].text[x].chars[0];
>
> --
> coreboot mailing list
> coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the coreboot
mailing list