simplify setcolor/getcolor
This commit is contained in:
parent
d8e9099811
commit
3c151d94af
13 changed files with 54 additions and 185 deletions
|
@ -24,15 +24,9 @@
|
|||
#include <grub/efi/api.h>
|
||||
#include <grub/efi/console.h>
|
||||
|
||||
static grub_uint8_t
|
||||
static const grub_uint8_t
|
||||
grub_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW,
|
||||
GRUB_EFI_BACKGROUND_BLACK);
|
||||
static grub_uint8_t
|
||||
grub_console_normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY,
|
||||
GRUB_EFI_BACKGROUND_BLACK);
|
||||
static grub_uint8_t
|
||||
grub_console_highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK,
|
||||
GRUB_EFI_BACKGROUND_LIGHTGRAY);
|
||||
|
||||
static int read_key = -1;
|
||||
|
||||
|
@ -292,7 +286,7 @@ grub_console_cls (struct grub_term_output *term __attribute__ ((unused)))
|
|||
}
|
||||
|
||||
static void
|
||||
grub_console_setcolorstate (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_console_setcolorstate (struct grub_term_output *term,
|
||||
grub_term_color_state state)
|
||||
{
|
||||
grub_efi_simple_text_output_interface_t *o;
|
||||
|
@ -304,32 +298,16 @@ grub_console_setcolorstate (struct grub_term_output *term __attribute__ ((unused
|
|||
efi_call_2 (o->set_attributes, o, grub_console_standard_color);
|
||||
break;
|
||||
case GRUB_TERM_COLOR_NORMAL:
|
||||
efi_call_2 (o->set_attributes, o, grub_console_normal_color);
|
||||
efi_call_2 (o->set_attributes, o, term->normal_color);
|
||||
break;
|
||||
case GRUB_TERM_COLOR_HIGHLIGHT:
|
||||
efi_call_2 (o->set_attributes, o, grub_console_highlight_color);
|
||||
efi_call_2 (o->set_attributes, o, term->highlight_color);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
grub_console_setcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t normal_color, grub_uint8_t highlight_color)
|
||||
{
|
||||
grub_console_normal_color = normal_color;
|
||||
grub_console_highlight_color = highlight_color;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_console_getcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||
{
|
||||
*normal_color = grub_console_normal_color;
|
||||
*highlight_color = grub_console_highlight_color;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
int on)
|
||||
|
@ -356,9 +334,11 @@ static struct grub_term_output grub_console_term_output =
|
|||
.gotoxy = grub_console_gotoxy,
|
||||
.cls = grub_console_cls,
|
||||
.setcolorstate = grub_console_setcolorstate,
|
||||
.setcolor = grub_console_setcolor,
|
||||
.getcolor = grub_console_getcolor,
|
||||
.setcursor = grub_console_setcursor,
|
||||
.normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY,
|
||||
GRUB_EFI_BACKGROUND_BLACK),
|
||||
.highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK,
|
||||
GRUB_EFI_BACKGROUND_LIGHTGRAY),
|
||||
.flags = GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS
|
||||
};
|
||||
|
||||
|
|
|
@ -35,8 +35,6 @@
|
|||
#define DEFAULT_BORDER_WIDTH 10
|
||||
|
||||
#define DEFAULT_STANDARD_COLOR 0x07
|
||||
#define DEFAULT_NORMAL_COLOR 0x07
|
||||
#define DEFAULT_HIGHLIGHT_COLOR 0x70
|
||||
|
||||
struct grub_dirty_region
|
||||
{
|
||||
|
@ -92,8 +90,6 @@ struct grub_virtual_screen
|
|||
|
||||
/* Terminal color settings. */
|
||||
grub_uint8_t standard_color_setting;
|
||||
grub_uint8_t normal_color_setting;
|
||||
grub_uint8_t highlight_color_setting;
|
||||
grub_uint8_t term_color;
|
||||
|
||||
/* Color settings. */
|
||||
|
@ -260,10 +256,8 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y,
|
|||
grub_video_set_active_render_target (text_layer);
|
||||
|
||||
virtual_screen.standard_color_setting = DEFAULT_STANDARD_COLOR;
|
||||
virtual_screen.normal_color_setting = DEFAULT_NORMAL_COLOR;
|
||||
virtual_screen.highlight_color_setting = DEFAULT_HIGHLIGHT_COLOR;
|
||||
|
||||
virtual_screen.term_color = virtual_screen.normal_color_setting;
|
||||
virtual_screen.term_color = GRUB_TERM_DEFAULT_NORMAL_COLOR;
|
||||
|
||||
set_term_color (virtual_screen.term_color);
|
||||
|
||||
|
@ -1041,7 +1035,7 @@ grub_gfxterm_cls (struct grub_term_output *term)
|
|||
}
|
||||
|
||||
static void
|
||||
grub_virtual_screen_setcolorstate (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_virtual_screen_setcolorstate (struct grub_term_output *term,
|
||||
grub_term_color_state state)
|
||||
{
|
||||
switch (state)
|
||||
|
@ -1051,11 +1045,11 @@ grub_virtual_screen_setcolorstate (struct grub_term_output *term __attribute__ (
|
|||
break;
|
||||
|
||||
case GRUB_TERM_COLOR_NORMAL:
|
||||
virtual_screen.term_color = virtual_screen.normal_color_setting;
|
||||
virtual_screen.term_color = term->normal_color;
|
||||
break;
|
||||
|
||||
case GRUB_TERM_COLOR_HIGHLIGHT:
|
||||
virtual_screen.term_color = virtual_screen.highlight_color_setting;
|
||||
virtual_screen.term_color = term->highlight_color;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1066,24 +1060,6 @@ grub_virtual_screen_setcolorstate (struct grub_term_output *term __attribute__ (
|
|||
set_term_color (virtual_screen.term_color);
|
||||
}
|
||||
|
||||
static void
|
||||
grub_virtual_screen_setcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t normal_color,
|
||||
grub_uint8_t highlight_color)
|
||||
{
|
||||
virtual_screen.normal_color_setting = normal_color;
|
||||
virtual_screen.highlight_color_setting = highlight_color;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_virtual_screen_getcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t *normal_color,
|
||||
grub_uint8_t *highlight_color)
|
||||
{
|
||||
*normal_color = virtual_screen.normal_color_setting;
|
||||
*highlight_color = virtual_screen.highlight_color_setting;
|
||||
}
|
||||
|
||||
static void
|
||||
grub_gfxterm_setcursor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
int on)
|
||||
|
@ -1211,11 +1187,11 @@ static struct grub_term_output grub_video_term =
|
|||
.gotoxy = grub_gfxterm_gotoxy,
|
||||
.cls = grub_gfxterm_cls,
|
||||
.setcolorstate = grub_virtual_screen_setcolorstate,
|
||||
.setcolor = grub_virtual_screen_setcolor,
|
||||
.getcolor = grub_virtual_screen_getcolor,
|
||||
.setcursor = grub_gfxterm_setcursor,
|
||||
.refresh = grub_gfxterm_refresh,
|
||||
.flags = GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
.next = 0
|
||||
};
|
||||
|
||||
|
|
|
@ -62,10 +62,10 @@ static struct grub_term_output grub_console_term_output =
|
|||
.gotoxy = grub_console_gotoxy,
|
||||
.cls = grub_console_cls,
|
||||
.setcolorstate = grub_console_setcolorstate,
|
||||
.setcolor = grub_console_setcolor,
|
||||
.getcolor = grub_console_getcolor,
|
||||
.setcursor = grub_console_setcursor,
|
||||
.flags = GRUB_TERM_CODE_TYPE_VGA
|
||||
.flags = GRUB_TERM_CODE_TYPE_VGA,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
@ -511,6 +511,8 @@ static struct grub_term_output grub_vga_term =
|
|||
.setcolorstate = grub_vga_setcolorstate,
|
||||
.setcursor = grub_vga_setcursor,
|
||||
.flags = GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
};
|
||||
|
||||
GRUB_MOD_INIT(vga)
|
||||
|
|
|
@ -163,10 +163,10 @@ static struct grub_term_output grub_vga_text_term =
|
|||
.gotoxy = grub_vga_text_gotoxy,
|
||||
.cls = grub_vga_text_cls,
|
||||
.setcolorstate = grub_console_setcolorstate,
|
||||
.setcolor = grub_console_setcolor,
|
||||
.getcolor = grub_console_getcolor,
|
||||
.setcursor = grub_vga_text_setcursor,
|
||||
.flags = GRUB_TERM_CODE_TYPE_VGA
|
||||
.flags = GRUB_TERM_CODE_TYPE_VGA,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
};
|
||||
|
||||
GRUB_MOD_INIT(vga_text)
|
||||
|
|
|
@ -21,9 +21,6 @@
|
|||
#include <grub/types.h>
|
||||
|
||||
grub_uint8_t grub_console_cur_color = 0x7;
|
||||
static grub_uint8_t grub_console_standard_color = 0x7;
|
||||
static grub_uint8_t grub_console_normal_color = 0x7;
|
||||
static grub_uint8_t grub_console_highlight_color = 0x70;
|
||||
|
||||
grub_uint16_t
|
||||
grub_console_getwh (struct grub_term_output *term __attribute__ ((unused)))
|
||||
|
@ -32,36 +29,20 @@ grub_console_getwh (struct grub_term_output *term __attribute__ ((unused)))
|
|||
}
|
||||
|
||||
void
|
||||
grub_console_setcolorstate (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_console_setcolorstate (struct grub_term_output *term,
|
||||
grub_term_color_state state)
|
||||
{
|
||||
switch (state) {
|
||||
case GRUB_TERM_COLOR_STANDARD:
|
||||
grub_console_cur_color = grub_console_standard_color;
|
||||
grub_console_cur_color = GRUB_TERM_DEFAULT_STANDARD_COLOR;
|
||||
break;
|
||||
case GRUB_TERM_COLOR_NORMAL:
|
||||
grub_console_cur_color = grub_console_normal_color;
|
||||
grub_console_cur_color = term->normal_color;
|
||||
break;
|
||||
case GRUB_TERM_COLOR_HIGHLIGHT:
|
||||
grub_console_cur_color = grub_console_highlight_color;
|
||||
grub_console_cur_color = term->highlight_color;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
grub_console_setcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t normal_color, grub_uint8_t highlight_color)
|
||||
{
|
||||
grub_console_normal_color = normal_color;
|
||||
grub_console_highlight_color = highlight_color;
|
||||
}
|
||||
|
||||
void
|
||||
grub_console_getcolor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||
{
|
||||
*normal_color = grub_console_normal_color;
|
||||
*highlight_color = grub_console_highlight_color;
|
||||
}
|
||||
|
|
|
@ -204,11 +204,11 @@ static struct grub_term_output grub_ofconsole_term_output =
|
|||
.gotoxy = grub_terminfo_gotoxy,
|
||||
.cls = grub_terminfo_cls,
|
||||
.setcolorstate = grub_terminfo_setcolorstate,
|
||||
.setcolor = grub_terminfo_setcolor,
|
||||
.getcolor = grub_terminfo_getcolor,
|
||||
.setcursor = grub_ofconsole_setcursor,
|
||||
.flags = GRUB_TERM_CODE_TYPE_ASCII,
|
||||
.data = &grub_ofconsole_terminfo_output
|
||||
.data = &grub_ofconsole_terminfo_output,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
};
|
||||
|
||||
void grub_terminfo_fini (void);
|
||||
|
|
|
@ -219,11 +219,11 @@ static struct grub_term_output grub_serial_term_output =
|
|||
.gotoxy = grub_terminfo_gotoxy,
|
||||
.cls = grub_terminfo_cls,
|
||||
.setcolorstate = grub_terminfo_setcolorstate,
|
||||
.setcolor = grub_terminfo_setcolor,
|
||||
.getcolor = grub_terminfo_getcolor,
|
||||
.setcursor = grub_terminfo_setcursor,
|
||||
.flags = GRUB_TERM_CODE_TYPE_ASCII,
|
||||
.data = &grub_serial_terminfo_output
|
||||
.data = &grub_serial_terminfo_output,
|
||||
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
|
||||
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -168,9 +168,6 @@ grub_terminfo_output_register (struct grub_term_output *term,
|
|||
data = (struct grub_terminfo_output_state *) term->data;
|
||||
data->next = terminfo_outputs;
|
||||
terminfo_outputs = term;
|
||||
|
||||
data->normal_color = 0x07;
|
||||
data->highlight_color = 0x70;
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
@ -247,30 +244,6 @@ grub_terminfo_cls (struct grub_term_output *term)
|
|||
data->xpos = data->ypos = 0;
|
||||
}
|
||||
|
||||
void
|
||||
grub_terminfo_setcolor (struct grub_term_output *term,
|
||||
grub_uint8_t normal_color,
|
||||
grub_uint8_t highlight_color)
|
||||
{
|
||||
struct grub_terminfo_output_state *data
|
||||
= (struct grub_terminfo_output_state *) term->data;
|
||||
|
||||
data->normal_color = normal_color;
|
||||
data->highlight_color = highlight_color;
|
||||
}
|
||||
|
||||
void
|
||||
grub_terminfo_getcolor (struct grub_term_output *term,
|
||||
grub_uint8_t *normal_color,
|
||||
grub_uint8_t *highlight_color)
|
||||
{
|
||||
struct grub_terminfo_output_state *data
|
||||
= (struct grub_terminfo_output_state *) term->data;
|
||||
|
||||
*normal_color = data->normal_color;
|
||||
*highlight_color = data->highlight_color;
|
||||
}
|
||||
|
||||
void
|
||||
grub_terminfo_setcolorstate (struct grub_term_output *term,
|
||||
const grub_term_color_state state)
|
||||
|
@ -298,12 +271,12 @@ grub_terminfo_setcolorstate (struct grub_term_output *term,
|
|||
{
|
||||
case GRUB_TERM_COLOR_STANDARD:
|
||||
case GRUB_TERM_COLOR_NORMAL:
|
||||
fg = data->normal_color & 0x0f;
|
||||
bg = data->normal_color >> 4;
|
||||
fg = term->normal_color & 0x0f;
|
||||
bg = term->normal_color >> 4;
|
||||
break;
|
||||
case GRUB_TERM_COLOR_HIGHLIGHT:
|
||||
fg = data->highlight_color & 0x0f;
|
||||
bg = data->highlight_color >> 4;
|
||||
fg = term->highlight_color & 0x0f;
|
||||
bg = term->highlight_color >> 4;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue