* docs/grub.texi: Introduce terminal window position options:

terminal-left: terminal window's left position
        terminal-top: terminal window's top position
        terminal-width: terminal window's width
        terminal-height: terminal window's height
        * grub-core/gfxmenu/theme-loader.c: Likewise.
        * include/grub/gfxmenu_view.h: Likewise.
        * po/exlude.pot: Likewise.
        * grub-core/gfxmenu/view.c: Likewise.
        Also updated minimal window size.
        Also terminal_sanity_check function has been introduced.
This commit is contained in:
Vladimir Testov 2013-08-08 12:55:24 +04:00
parent 748a4533f5
commit b47434612c
7 changed files with 229 additions and 62 deletions

View file

@ -1,3 +1,18 @@
2013-08-07 Vladimir Testov <vladimir.testov@rosalab.ru>
* docs/grub.texi: Introduce terminal window position options:
terminal-left: terminal window's left position
terminal-top: terminal window's top position
terminal-width: terminal window's width
terminal-height: terminal window's height
terminal-border: terminal window's border width
* grub-core/gfxmenu/theme-loader.c: Likewise.
* include/grub/gfxmenu_view.h: Likewise.
* po/exlude.pot: Likewise.
* grub-core/gfxmenu/view.c: Likewise.
Also updated minimal window size.
Also terminal_sanity_check function has been introduced.
2013-08-02 Vladimir Serbinenko <phcoder@gmail.com> 2013-08-02 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/tests/checksums.h: Update (1-pixel difference in marker * grub-core/tests/checksums.h: Update (1-pixel difference in marker

View file

@ -1904,6 +1904,11 @@ In this example, name3 is assigned a color value.
@item desktop-image @tab Specifies the image to use as the background. It will be scaled to fit the screen size. @item desktop-image @tab Specifies the image to use as the background. It will be scaled to fit the screen size.
@item desktop-color @tab Specifies the color for the background if *desktop-image* is not specified. @item desktop-color @tab Specifies the color for the background if *desktop-image* is not specified.
@item terminal-box @tab Specifies the file name pattern for the styled box slices used for the command line terminal window. For example, ``terminal-box: terminal_*.png'' will use the images ``terminal_c.png`` as the center area, ``terminal_n.png`` as the north (top) edge, ``terminal_nw.png`` as the northwest (upper left) corner, and so on. If the image for any slice is not found, it will simply be left empty. @item terminal-box @tab Specifies the file name pattern for the styled box slices used for the command line terminal window. For example, ``terminal-box: terminal_*.png'' will use the images ``terminal_c.png`` as the center area, ``terminal_n.png`` as the north (top) edge, ``terminal_nw.png`` as the northwest (upper left) corner, and so on. If the image for any slice is not found, it will simply be left empty.
@item terminal-border @tab Specifies the border width of the terminal window.
@item terminal-left @tab Specifies the left coordinate of the terminal window.
@item terminal-top @tab Specifies the top coordinate of the terminal window.
@item terminal-width @tab Specifies the width of the terminal window.
@item terminal-height @tab Specifies the height of the terminal window.
@end multitable @end multitable

View file

@ -32,6 +32,9 @@
#include <grub/gui.h> #include <grub/gui.h>
#include <grub/color.h> #include <grub/color.h>
static grub_err_t
parse_proportional_spec (const char *value, signed *abs, grub_fixed_signed_t *prop);
/* Construct a new box widget using ABSPATTERN to find the pixmap files for /* Construct a new box widget using ABSPATTERN to find the pixmap files for
it, storing the new box instance at *BOXPTR. it, storing the new box instance at *BOXPTR.
PATTERN should be of the form: "(hd0,0)/somewhere/style*.png". PATTERN should be of the form: "(hd0,0)/somewhere/style*.png".
@ -113,6 +116,24 @@ grub_gui_recreate_box (grub_gfxmenu_box_t *boxptr,
return grub_errno; return grub_errno;
} }
static grub_err_t
theme_get_unsigned_int_from_proportional (const char *value,
unsigned absolute_value,
unsigned int *parsed_value)
{
grub_err_t err;
grub_fixed_signed_t frac;
signed pixels;
err = parse_proportional_spec (value, &pixels, &frac);
if (err != GRUB_ERR_NONE)
return err;
int result = grub_fixed_sfs_multiply (absolute_value, frac) + pixels;
if (result < 0)
result = 0;
*parsed_value = result;
return GRUB_ERR_NONE;
}
/* Set the specified property NAME on the view to the given string VALUE. /* Set the specified property NAME on the view to the given string VALUE.
The caller is responsible for the lifetimes of NAME and VALUE. */ The caller is responsible for the lifetimes of NAME and VALUE. */
static grub_err_t static grub_err_t
@ -179,6 +200,52 @@ theme_set_string (grub_gfxmenu_view_t view,
if (err != GRUB_ERR_NONE) if (err != GRUB_ERR_NONE)
return err; return err;
} }
else if (! grub_strcmp ("terminal-border", name))
{
view->terminal_border = grub_strtoul (value, 0, 10);
if (grub_errno)
return grub_errno;
}
else if (! grub_strcmp ("terminal-left", name))
{
unsigned int tmp;
int err = theme_get_unsigned_int_from_proportional (value,
view->screen.width,
&tmp);
if (err != GRUB_ERR_NONE)
return err;
view->terminal_rect.x = tmp;
}
else if (! grub_strcmp ("terminal-top", name))
{
unsigned int tmp;
int err = theme_get_unsigned_int_from_proportional (value,
view->screen.width,
&tmp);
if (err != GRUB_ERR_NONE)
return err;
view->terminal_rect.y = tmp;
}
else if (! grub_strcmp ("terminal-width", name))
{
unsigned int tmp;
int err = theme_get_unsigned_int_from_proportional (value,
view->screen.width,
&tmp);
if (err != GRUB_ERR_NONE)
return err;
view->terminal_rect.width = tmp;
}
else if (! grub_strcmp ("terminal-height", name))
{
unsigned int tmp;
int err = theme_get_unsigned_int_from_proportional (value,
view->screen.width,
&tmp);
if (err != GRUB_ERR_NONE)
return err;
view->terminal_rect.height = tmp;
}
else if (! grub_strcmp ("title-text", name)) else if (! grub_strcmp ("title-text", name))
{ {
grub_free (view->title_text); grub_free (view->title_text);
@ -363,10 +430,10 @@ read_expression (struct parsebuf *p)
} }
static grub_err_t static grub_err_t
parse_proportional_spec (char *value, signed *abs, grub_fixed_signed_t *prop) parse_proportional_spec (const char *value, signed *abs, grub_fixed_signed_t *prop)
{ {
signed num; signed num;
char *ptr; const char *ptr;
int sig = 0; int sig = 0;
*abs = 0; *abs = 0;
*prop = 0; *prop = 0;
@ -382,7 +449,7 @@ parse_proportional_spec (char *value, signed *abs, grub_fixed_signed_t *prop)
ptr++; ptr++;
} }
num = grub_strtoul (ptr, &ptr, 0); num = grub_strtoul (ptr, (char **) &ptr, 0);
if (grub_errno) if (grub_errno)
return grub_errno; return grub_errno;
if (sig) if (sig)

View file

@ -40,7 +40,6 @@
static void static void
init_terminal (grub_gfxmenu_view_t view); init_terminal (grub_gfxmenu_view_t view);
static grub_video_rect_t term_rect;
static grub_gfxmenu_view_t term_view; static grub_gfxmenu_view_t term_view;
/* Create a new view object, loading the theme specified by THEME_PATH and /* Create a new view object, loading the theme specified by THEME_PATH and
@ -71,6 +70,15 @@ grub_gfxmenu_view_new (const char *theme_path,
view->screen.width = width; view->screen.width = width;
view->screen.height = height; view->screen.height = height;
view->need_to_check_sanity = 1;
view->terminal_border = 3;
view->terminal_rect.width = view->screen.width * 7 / 10;
view->terminal_rect.height = view->screen.height * 7 / 10;
view->terminal_rect.x = view->screen.x + (view->screen.width
- view->terminal_rect.width) / 2;
view->terminal_rect.y = view->screen.y + (view->screen.height
- view->terminal_rect.height) / 2;
default_font = grub_font_get ("Unknown Regular 16"); default_font = grub_font_get ("Unknown Regular 16");
default_fg_color = grub_video_rgba_color_rgb (0, 0, 0); default_fg_color = grub_video_rgba_color_rgb (0, 0, 0);
default_bg_color = grub_video_rgba_color_rgb (255, 255, 255); default_bg_color = grub_video_rgba_color_rgb (255, 255, 255);
@ -302,7 +310,7 @@ void
grub_gfxmenu_view_redraw (grub_gfxmenu_view_t view, grub_gfxmenu_view_redraw (grub_gfxmenu_view_t view,
const grub_video_rect_t *region) const grub_video_rect_t *region)
{ {
if (grub_video_have_common_points (&term_rect, region)) if (grub_video_have_common_points (&view->terminal_rect, region))
grub_gfxterm_schedule_repaint (); grub_gfxterm_schedule_repaint ();
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY); grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
@ -386,26 +394,110 @@ grub_gfxmenu_draw_terminal_box (void)
term_box = term_view->terminal_box; term_box = term_view->terminal_box;
if (!term_box) if (!term_box)
return; return;
term_box->set_content_size (term_box, term_rect.width, term_box->set_content_size (term_box, term_view->terminal_rect.width,
term_rect.height); term_view->terminal_rect.height);
term_box->draw (term_box, term_box->draw (term_box,
term_rect.x - term_box->get_left_pad (term_box), term_view->terminal_rect.x - term_box->get_left_pad (term_box),
term_rect.y - term_box->get_top_pad (term_box)); term_view->terminal_rect.y - term_box->get_top_pad (term_box));
}
static void
get_min_terminal (grub_font_t terminal_font,
unsigned int border_width,
unsigned int *min_terminal_width,
unsigned int *min_terminal_height)
{
struct grub_font_glyph *glyph;
glyph = grub_font_get_glyph (terminal_font, 'M');
*min_terminal_width = (glyph? glyph->device_width : 8) * 80
+ 2 * border_width;
*min_terminal_height = grub_font_get_max_char_height (terminal_font) * 24
+ 2 * border_width;
}
static void
terminal_sanity_check (grub_gfxmenu_view_t view)
{
if (!view->need_to_check_sanity)
return;
/* terminal_font was checked before in the init_terminal function. */
grub_font_t terminal_font = grub_font_get (view->terminal_font_name);
/* Non-negative numbers below. */
int scr_x = view->screen.x;
int scr_y = view->screen.y;
int scr_width = view->screen.width;
int scr_height = view->screen.height;
int term_x = view->terminal_rect.x;
int term_y = view->terminal_rect.y;
int term_width = view->terminal_rect.width;
int term_height = view->terminal_rect.height;
/* Check that border_width isn't too big. */
unsigned int border_width = view->terminal_border;
unsigned int min_terminal_width;
unsigned int min_terminal_height;
get_min_terminal (terminal_font, border_width,
&min_terminal_width, &min_terminal_height);
if (border_width > 3 && ((int) min_terminal_width >= scr_width
|| (int) min_terminal_height >= scr_height))
{
border_width = 3;
get_min_terminal (terminal_font, border_width,
&min_terminal_width, &min_terminal_height);
}
/* Sanity checks. */
if (term_width > scr_width)
term_width = scr_width;
if (term_height > scr_height)
term_height = scr_height;
if (scr_width <= (int) min_terminal_width
|| scr_height <= (int) min_terminal_height)
{
/* The screen resulution is too low. Use all space, except a small border
to show the user, that it is a window. Then center the window. */
term_width = scr_width - 6 * border_width;
term_height = scr_height - 6 * border_width;
term_x = scr_x + (scr_width - term_width) / 2;
term_y = scr_y + (scr_height - term_height) / 2;
}
else if (term_width < (int) min_terminal_width
|| term_height < (int) min_terminal_height)
{
/* The screen resolution is big enough. Make sure, that terminal screen
dimensions aren't less than minimal values. Then center the window. */
term_width = (int) min_terminal_width;
term_height = (int) min_terminal_height;
term_x = scr_x + (scr_width - term_width) / 2;
term_y = scr_y + (scr_height - term_height) / 2;
}
/* At this point w and h are satisfying. */
if (term_x + term_width > scr_width)
term_x = scr_width - term_width;
if (term_y + term_height > scr_height)
term_y = scr_height - term_height;
/* Write down corrected data. */
view->terminal_rect.x = (unsigned int) term_x;
view->terminal_rect.y = (unsigned int) term_y;
view->terminal_rect.width = (unsigned int) term_width;
view->terminal_rect.height = (unsigned int) term_height;
view->terminal_border = border_width;
view->need_to_check_sanity = 0;
} }
static void static void
init_terminal (grub_gfxmenu_view_t view) init_terminal (grub_gfxmenu_view_t view)
{ {
const int border_width = 3;
grub_font_t terminal_font; grub_font_t terminal_font;
unsigned int line_width;
struct grub_font_glyph *glyph;
terminal_font = grub_font_get (view->terminal_font_name); terminal_font = grub_font_get (view->terminal_font_name);
if (!terminal_font) if (!terminal_font)
{ {
@ -413,38 +505,22 @@ init_terminal (grub_gfxmenu_view_t view)
return; return;
} }
glyph = grub_font_get_glyph (terminal_font, 'M'); /* Check that terminal window size and position are sane. */
terminal_sanity_check (view);
line_width = ((glyph ? glyph->device_width : 8) * 80 + 2 * border_width);
if (view->screen.width <= line_width)
/* The screen is too small. Use all space, except a small border
to show the user, it is a window and not full screen: */
term_rect.width = view->screen.width - 6 * border_width;
else
{
/* The screen is big enough. Try 70% of the screen width: */
term_rect.width = view->screen.width * 7 / 10;
/* Make sure, that we use at least the line_width: */
if ( term_rect.width < line_width )
term_rect.width = line_width;
}
term_rect.height = view->screen.height * 7 / 10;
term_rect.x = view->screen.x + (view->screen.width - term_rect.width) / 2;
term_rect.y = view->screen.y + (view->screen.height - term_rect.height) / 2;
term_view = view; term_view = view;
/* Note: currently there is no API for changing the gfxterm font /* Note: currently there is no API for changing the gfxterm font
on the fly, so whatever font the initially loaded theme specifies on the fly, so whatever font the initially loaded theme specifies
will be permanent. */ will be permanent. */
grub_gfxterm_set_window (GRUB_VIDEO_RENDER_TARGET_DISPLAY, term_rect.x, grub_gfxterm_set_window (GRUB_VIDEO_RENDER_TARGET_DISPLAY,
term_rect.y, view->terminal_rect.x,
term_rect.width, term_rect.height, view->terminal_rect.y,
view->double_repaint, terminal_font, view->terminal_rect.width,
border_width); view->terminal_rect.height,
view->double_repaint,
terminal_font,
view->terminal_border);
grub_gfxterm_decorator_hook = grub_gfxmenu_draw_terminal_box; grub_gfxterm_decorator_hook = grub_gfxmenu_draw_terminal_box;
} }

View file

@ -58,35 +58,35 @@
{ "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x9a418b1d, 0x6fb2a19a, 0x9a418b1d, 0x3c3e7993, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x3c3e7993, 0x3c3e7993, 0x9813a416, }, 20 }, { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x9813a416, 0x9a418b1d, 0x6fb2a19a, 0x9a418b1d, 0x3c3e7993, 0x9813a416, 0x9813a416, 0xe85391b9, 0xe85391b9, 0xe85391b9, 0xda81995d, 0xda81995d, 0xda81995d, 0xe9064220, 0xe9064220, 0xe9064220, 0x9813a416, 0x3c3e7993, 0x3c3e7993, 0x9813a416, }, 20 },
{ "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x66cb2267, 0xb90e9f13, 0x66cb2267, 0x79874749, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x79874749, 0x79874749, 0x5fcf013d, }, 20 }, { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x66cb2267, 0xb90e9f13, 0x66cb2267, 0x79874749, 0x5fcf013d, 0x5fcf013d, 0x55ffe784, 0x55ffe784, 0x55ffe784, 0x2c6d082c, 0x2c6d082c, 0x2c6d082c, 0xed8bba6b, 0xed8bba6b, 0xed8bba6b, 0x5fcf013d, 0x79874749, 0x79874749, 0x5fcf013d, }, 20 },
{ "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd3d2838d, 0x3c2e7a96, 0xd3d2838d, 0x993b0962, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x993b0962, 0x993b0962, 0xdd28f52b, }, 20 }, { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd3d2838d, 0x3c2e7a96, 0xd3d2838d, 0x993b0962, 0xdd28f52b, 0xdd28f52b, 0xa719aebf, 0xa719aebf, 0xa719aebf, 0xcd8b1348, 0xcd8b1348, 0xcd8b1348, 0x1b91449d, 0x1b91449d, 0x1b91449d, 0xdd28f52b, 0x993b0962, 0x993b0962, 0xdd28f52b, }, 20 },
{ "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc3d16829, 0x15aa9c37, 0xc3d16829, 0x98ea4b3a, 0xf22da29a, 0xa59283dd, 0xa59283dd, 0xa59283dd, 0x397018b, 0x397018b, 0x397018b, 0xe978830f, 0xe978830f, 0xe978830f, 0x59c36f00, 0x98ea4b3a, 0x98ea4b3a, }, 18 }, { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc3d16829, 0x15aa9c37, 0xc3d16829, 0x98ea4b3a, 0x1e41f884, 0x3a9aaf64, 0x3a9aaf64, 0x3a9aaf64, 0x9c6ed3a4, 0x9c6ed3a4, 0x9c6ed3a4, 0x603f8978, 0x603f8978, 0x603f8978, 0x59c36f00, 0x98ea4b3a, 0x98ea4b3a, }, 18 },
{ "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xc312db93, 0x62a6f9ab, 0xc312db93, 0xc4b199ab, 0x2c3dfa69, 0x3af36cbe, 0x3af36cbe, 0x3af36cbe, 0x413d5d99, 0x413d5d99, 0x413d5d99, 0xf53dc062, 0xf53dc062, 0xf53dc062, 0xaa4593fe, 0xc4b199ab, 0xc4b199ab, }, 18 }, { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xc312db93, 0x62a6f9ab, 0xc312db93, 0xc4b199ab, 0xd426ef9b, 0x6b44de71, 0x6b44de71, 0x6b44de71, 0xdd89df0b, 0xdd89df0b, 0xdd89df0b, 0x70855958, 0x70855958, 0x70855958, 0xaa4593fe, 0xc4b199ab, 0xc4b199ab, }, 18 },
{ "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9034ef0a, 0xe4cc1d1e, 0x9034ef0a, 0x55ac3617, 0x122a153f, 0xae2e908, 0xae2e908, 0xae2e908, 0x3f5367ea, 0x3f5367ea, 0x3f5367ea, 0x86bc0378, 0x86bc0378, 0x86bc0378, 0xc9cbf769, 0x55ac3617, 0x55ac3617, }, 18 }, { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9034ef0a, 0xe4cc1d1e, 0x9034ef0a, 0x55ac3617, 0x122a153f, 0xae2e908, 0xae2e908, 0xae2e908, 0x3f5367ea, 0x3f5367ea, 0x3f5367ea, 0x86bc0378, 0x86bc0378, 0x86bc0378, 0xc9cbf769, 0x55ac3617, 0x55ac3617, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x78e0e9, 0x11e250ac, 0x78e0e9, 0x9151f8fe, 0xb52c8875, 0x8d289ed1, 0x8d289ed1, 0x8d289ed1, 0xb55e6a15, 0xb55e6a15, 0xb55e6a15, 0x63bc8cda, 0x63bc8cda, 0x63bc8cda, 0x1c3742c9, 0x9151f8fe, 0x9151f8fe, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x78e0e9, 0x11e250ac, 0x78e0e9, 0x9151f8fe, 0x487d6f88, 0x63807bc2, 0x63807bc2, 0x63807bc2, 0xc8403289, 0xc8403289, 0xc8403289, 0x5a15c8d4, 0x5a15c8d4, 0x5a15c8d4, 0x1c3742c9, 0x9151f8fe, 0x9151f8fe, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0xe2aff65f, 0x6ecb555a, 0xe2aff65f, 0x708334eb, 0xc410fda0, 0x3eae26ac, 0x3eae26ac, 0x3eae26ac, 0x47229697, 0x47229697, 0x47229697, 0x28f34df8, 0x28f34df8, 0x28f34df8, 0xcc5a7bed, 0x708334eb, 0x708334eb, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0xe2aff65f, 0x6ecb555a, 0xe2aff65f, 0x708334eb, 0x693b0403, 0xac7fe8d6, 0xac7fe8d6, 0xac7fe8d6, 0x22f18267, 0x22f18267, 0x22f18267, 0x533fcb51, 0x533fcb51, 0x533fcb51, 0xcc5a7bed, 0x708334eb, 0x708334eb, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x51be5693, 0x6cda44a9, 0x51be5693, 0x4c748bb2, 0xd3aa0fcc, 0x178f6c35, 0x178f6c35, 0x178f6c35, 0xbbadbfd3, 0xbbadbfd3, 0xbbadbfd3, 0xe4e491d2, 0xe4e491d2, 0xe4e491d2, 0xef4a3312, 0x4c748bb2, 0x4c748bb2, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x51be5693, 0x6cda44a9, 0x51be5693, 0x4c748bb2, 0xd3aa0fcc, 0x178f6c35, 0x178f6c35, 0x178f6c35, 0xbbadbfd3, 0xbbadbfd3, 0xbbadbfd3, 0xe4e491d2, 0xe4e491d2, 0xe4e491d2, 0xef4a3312, 0x4c748bb2, 0x4c748bb2, }, 18 },
{ "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x99b1e58d, 0xdd618b70, 0x99b1e58d, 0x6cec0b5a, 0xdc37dab7, 0x8b88fbf0, 0x8b88fbf0, 0x8b88fbf0, 0x2d8d79a6, 0x2d8d79a6, 0x2d8d79a6, 0xc762fb22, 0xc762fb22, 0xc762fb22, 0x59c36f00, 0x6cec0b5a, 0x6cec0b5a, }, 18 }, { "gfxmenu", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0x59c36f00, 0x99b1e58d, 0xdd618b70, 0x99b1e58d, 0x6cec0b5a, 0x97bc346b, 0xb367638b, 0xb367638b, 0xb367638b, 0x15931f4b, 0x15931f4b, 0x15931f4b, 0xe9c24597, 0xe9c24597, 0xe9c24597, 0x59c36f00, 0x6cec0b5a, 0x6cec0b5a, }, 18 },
{ "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa524ff93, 0x4472026e, 0xa524ff93, 0x497cade9, 0x71c38b, 0x16bf555c, 0x16bf555c, 0x16bf555c, 0x6d71647b, 0x6d71647b, 0x6d71647b, 0xd971f980, 0xd971f980, 0xd971f980, 0xaa4593fe, 0x497cade9, 0x497cade9, }, 18 }, { "gfxmenu", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xaa4593fe, 0xa524ff93, 0x4472026e, 0xa524ff93, 0x497cade9, 0x79cdba4, 0xb8feea4e, 0xb8feea4e, 0xb8feea4e, 0xe33eb34, 0xe33eb34, 0xe33eb34, 0xa33f6d67, 0xa33f6d67, 0xa33f6d67, 0xaa4593fe, 0x497cade9, 0x497cade9, }, 18 },
{ "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x7302ba19, 0xf9e69182, 0x7302ba19, 0x6f83ab6c, 0x423782ff, 0x5aff7ec8, 0x5aff7ec8, 0x5aff7ec8, 0x6f4ef02a, 0x6f4ef02a, 0x6f4ef02a, 0xd6a194b8, 0xd6a194b8, 0xd6a194b8, 0xc9cbf769, 0x6f83ab6c, 0x6f83ab6c, }, 18 }, { "gfxmenu", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0xc9cbf769, 0x7302ba19, 0xf9e69182, 0x7302ba19, 0x6f83ab6c, 0x423782ff, 0x5aff7ec8, 0x5aff7ec8, 0x5aff7ec8, 0x6f4ef02a, 0x6f4ef02a, 0x6f4ef02a, 0xd6a194b8, 0xd6a194b8, 0xd6a194b8, 0xc9cbf769, 0x6f83ab6c, 0x6f83ab6c, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x47c89379, 0xfb921d8c, 0x47c89379, 0x2ab29713, 0xf93a81be, 0x3458d277, 0x3458d277, 0x3458d277, 0x6475af82, 0x6475af82, 0x6475af82, 0x89de01be, 0x89de01be, 0x89de01be, 0x5387d57f, 0x2ab29713, 0x2ab29713, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x5387d57f, 0x47c89379, 0xfb921d8c, 0x47c89379, 0x2ab29713, 0xcd05a8b0, 0x552f30aa, 0x552f30aa, 0x552f30aa, 0x49b531f3, 0x49b531f3, 0x49b531f3, 0x7f7f0f6b, 0x7f7f0f6b, 0x7f7f0f6b, 0x5387d57f, 0x2ab29713, 0x2ab29713, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xda7180ad, 0x2d40ccb5, 0xda7180ad, 0x4b66f81, 0x58397d1d, 0xf2c9c339, 0xf2c9c339, 0xf2c9c339, 0xf702b00c, 0xf702b00c, 0xf702b00c, 0x3a7f3ab7, 0x3a7f3ab7, 0x3a7f3ab7, 0xf83ee7aa, 0x4b66f81, 0x4b66f81, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xda7180ad, 0x2d40ccb5, 0xda7180ad, 0x4b66f81, 0x598eb034, 0x3b50d2b6, 0x3b50d2b6, 0x3b50d2b6, 0x1a23680d, 0x1a23680d, 0x1a23680d, 0x1a17a08a, 0x1a17a08a, 0x1a17a08a, 0xf83ee7aa, 0x4b66f81, 0x4b66f81, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x22dfd431, 0xcb4dda, 0x22dfd431, 0x1041fdd7, 0x321a2758, 0x729a7530, 0x729a7530, 0x729a7530, 0x90674a10, 0x90674a10, 0x90674a10, 0x5c83455b, 0x5c83455b, 0x5c83455b, 0x724366e5, 0x1041fdd7, 0x1041fdd7, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0x724366e5, 0x22dfd431, 0xcb4dda, 0x22dfd431, 0x1041fdd7, 0x321a2758, 0x729a7530, 0x729a7530, 0x729a7530, 0x90674a10, 0x90674a10, 0x90674a10, 0x5c83455b, 0x5c83455b, 0x5c83455b, 0x724366e5, 0x1041fdd7, 0x1041fdd7, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd57a5f3d, 0xbaacffef, 0xd57a5f3d, 0x6d04139, 0x17789f1, 0x2df02846, 0x2df02846, 0x2df02846, 0x6c62ee4b, 0x6c62ee4b, 0x6c62ee4b, 0xb4025cf5, 0xb4025cf5, 0xb4025cf5, 0x5387d57f, 0x6d04139, 0x6d04139, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x5387d57f, 0xd57a5f3d, 0xbaacffef, 0xd57a5f3d, 0x6d04139, 0xd2b03183, 0x5f71c17d, 0x5f71c17d, 0x5f71c17d, 0x7da2a359, 0x7da2a359, 0x7da2a359, 0x49e0c40, 0x49e0c40, 0x49e0c40, 0x5387d57f, 0x6d04139, 0x6d04139, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x66e783d8, 0x237c46, 0x66e783d8, 0xb0476052, 0x44b10241, 0xa7db814e, 0xa7db814e, 0xa7db814e, 0xc7747957, 0xc7747957, 0xc7747957, 0xedc87ede, 0xedc87ede, 0xedc87ede, 0xf83ee7aa, 0xb0476052, 0xb0476052, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x66e783d8, 0x237c46, 0x66e783d8, 0xb0476052, 0xa9f8749c, 0xb3e23018, 0xb3e23018, 0xb3e23018, 0x630e11f3, 0x630e11f3, 0x630e11f3, 0xa5755a9, 0xa5755a9, 0xa5755a9, 0xf83ee7aa, 0xb0476052, 0xb0476052, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xa380a936, 0x44112354, 0xa380a936, 0x5972442c, 0xc1d72f70, 0x4b4f7975, 0x4b4f7975, 0x4b4f7975, 0x4944ce0e, 0x4944ce0e, 0x4944ce0e, 0xed4d66c4, 0xed4d66c4, 0xed4d66c4, 0x724366e5, 0x5972442c, 0x5972442c, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x724366e5, 0xa380a936, 0x44112354, 0xa380a936, 0x5972442c, 0xc1d72f70, 0x4b4f7975, 0x4b4f7975, 0x4b4f7975, 0x4944ce0e, 0x4944ce0e, 0x4944ce0e, 0xed4d66c4, 0xed4d66c4, 0xed4d66c4, 0x724366e5, 0x5972442c, 0x5972442c, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd4c034e1, 0xd18ebc60, 0xd4c034e1, 0xce757514, 0x47883323, 0x36a061ca, 0x36a061ca, 0x36a061ca, 0x857cdbe9, 0x857cdbe9, 0x857cdbe9, 0x79e6a1ff, 0x79e6a1ff, 0x79e6a1ff, 0x1c955882, 0xce757514, 0xce757514, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x1c955882, 0xd4c034e1, 0xd18ebc60, 0xd4c034e1, 0xce757514, 0xafb9ccd, 0xfbaa6735, 0xfbaa6735, 0xfbaa6735, 0x89440884, 0x89440884, 0x89440884, 0x1201a945, 0x1201a945, 0x1201a945, 0x1c955882, 0xce757514, 0xce757514, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8f846485, 0x724947a6, 0x8f846485, 0xca16ff75, 0x7ca6c2a6, 0x7518114, 0x7518114, 0x7518114, 0x73e14536, 0x73e14536, 0x73e14536, 0xb955b108, 0xb955b108, 0xb955b108, 0x4d266f7a, 0xca16ff75, 0xca16ff75, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x4d266f7a, 0x8f846485, 0x724947a6, 0x8f846485, 0xca16ff75, 0x3d9190e6, 0xfc49b2e4, 0xfc49b2e4, 0xfc49b2e4, 0x1073e48f, 0x1073e48f, 0x1073e48f, 0xe24a0f1e, 0xe24a0f1e, 0xe24a0f1e, 0x4d266f7a, 0xca16ff75, 0xca16ff75, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x12799c18, 0xc43c02b, 0x12799c18, 0x8def0a81, 0x7219771f, 0x67fa9045, 0x67fa9045, 0x67fa9045, 0x401ed559, 0x401ed559, 0x401ed559, 0xdc2fa0bd, 0xdc2fa0bd, 0xdc2fa0bd, 0x1ed9d731, 0x8def0a81, 0x8def0a81, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x1ed9d731, 0x12799c18, 0xc43c02b, 0x12799c18, 0x8def0a81, 0x7219771f, 0x67fa9045, 0x67fa9045, 0x67fa9045, 0x401ed559, 0x401ed559, 0x401ed559, 0xdc2fa0bd, 0xdc2fa0bd, 0xdc2fa0bd, 0x1ed9d731, 0x8def0a81, 0x8def0a81, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb141cb2a, 0xbea70aff, 0xb141cb2a, 0xb5d30cfb, 0x79f9376f, 0xb49b64a6, 0xb49b64a6, 0xb49b64a6, 0xe4b61953, 0xe4b61953, 0xe4b61953, 0x91db76f, 0x91db76f, 0x91db76f, 0x5387d57f, 0xb5d30cfb, 0xb5d30cfb, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x5387d57f, 0xb141cb2a, 0xbea70aff, 0xb141cb2a, 0xb5d30cfb, 0x8b113016, 0x133ba80c, 0x133ba80c, 0x133ba80c, 0xfa1a955, 0xfa1a955, 0xfa1a955, 0x396b97cd, 0x396b97cd, 0x396b97cd, 0x5387d57f, 0xb5d30cfb, 0xb5d30cfb, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbce5fa8f, 0x408f4ff1, 0xbce5fa8f, 0xc37a3112, 0xa84da503, 0x2bd1b27, 0x2bd1b27, 0x2bd1b27, 0x7766812, 0x7766812, 0x7766812, 0xca0be2a9, 0xca0be2a9, 0xca0be2a9, 0xf83ee7aa, 0xc37a3112, 0xc37a3112, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0xf83ee7aa, 0xbce5fa8f, 0x408f4ff1, 0xbce5fa8f, 0xc37a3112, 0xee9c2441, 0x8c4246c3, 0x8c4246c3, 0x8c4246c3, 0xad31fc78, 0xad31fc78, 0xad31fc78, 0xad0534ff, 0xad0534ff, 0xad0534ff, 0xf83ee7aa, 0xc37a3112, 0xc37a3112, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xda7c17e2, 0x2c0f29ff, 0xda7c17e2, 0xefc30135, 0xfa52a09, 0x4f257861, 0x4f257861, 0x4f257861, 0xadd84741, 0xadd84741, 0xadd84741, 0x613c480a, 0x613c480a, 0x613c480a, 0x724366e5, 0xefc30135, 0xefc30135, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0x724366e5, 0xda7c17e2, 0x2c0f29ff, 0xda7c17e2, 0xefc30135, 0xfa52a09, 0x4f257861, 0x4f257861, 0x4f257861, 0xadd84741, 0xadd84741, 0xadd84741, 0x613c480a, 0x613c480a, 0x613c480a, 0x724366e5, 0xefc30135, 0xefc30135, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xbddc0704, 0xfcbe55f3, 0xbddc0704, 0xe719c475, 0xa046defc, 0x8cc17f4b, 0x8cc17f4b, 0x8cc17f4b, 0xcd53b946, 0xcd53b946, 0xcd53b946, 0x15330bf8, 0x15330bf8, 0x15330bf8, 0x5387d57f, 0xe719c475, 0xe719c475, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x5387d57f, 0xbddc0704, 0xfcbe55f3, 0xbddc0704, 0xe719c475, 0x37196474, 0xbad8948a, 0xbad8948a, 0xbad8948a, 0x980bf6ae, 0x980bf6ae, 0x980bf6ae, 0xe13759b7, 0xe13759b7, 0xe13759b7, 0x5387d57f, 0xe719c475, 0xe719c475, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x2e44be7, 0x355622e, 0x2e44be7, 0x43c8f7d0, 0x120f1eb9, 0xf1659db6, 0xf1659db6, 0xf1659db6, 0x91ca65af, 0x91ca65af, 0x91ca65af, 0xbb766226, 0xbb766226, 0xbb766226, 0xf83ee7aa, 0x43c8f7d0, 0x43c8f7d0, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0xf83ee7aa, 0x2e44be7, 0x355622e, 0x2e44be7, 0x43c8f7d0, 0x5a2eaae3, 0x4034ee67, 0x4034ee67, 0x4034ee67, 0x90d8cf8c, 0x90d8cf8c, 0x90d8cf8c, 0xf9818bd6, 0xf9818bd6, 0xf9818bd6, 0xf83ee7aa, 0x43c8f7d0, 0x43c8f7d0, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x811fe662, 0xea426643, 0x811fe662, 0x3d6c794f, 0x736807f, 0x8daed67a, 0x8daed67a, 0x8daed67a, 0x8fa56101, 0x8fa56101, 0x8fa56101, 0x2bacc9cb, 0x2bacc9cb, 0x2bacc9cb, 0x724366e5, 0x3d6c794f, 0x3d6c794f, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x724366e5, 0x811fe662, 0xea426643, 0x811fe662, 0x3d6c794f, 0x736807f, 0x8daed67a, 0x8daed67a, 0x8daed67a, 0x8fa56101, 0x8fa56101, 0x8fa56101, 0x2bacc9cb, 0x2bacc9cb, 0x2bacc9cb, 0x724366e5, 0x3d6c794f, 0x3d6c794f, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x51b7a2b6, 0x739cd793, 0x51b7a2b6, 0xe6cbb6b7, 0xa3824ceb, 0xd2aa1e02, 0xd2aa1e02, 0xd2aa1e02, 0x6176a421, 0x6176a421, 0x6176a421, 0x9decde37, 0x9decde37, 0x9decde37, 0x1c955882, 0xe6cbb6b7, 0xe6cbb6b7, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x1c955882, 0x51b7a2b6, 0x739cd793, 0x51b7a2b6, 0xe6cbb6b7, 0xc0996dfd, 0x31c89605, 0x31c89605, 0x31c89605, 0x4326f9b4, 0x4326f9b4, 0x4326f9b4, 0xd8635875, 0xd8635875, 0xd8635875, 0x1c955882, 0xe6cbb6b7, 0xe6cbb6b7, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xb3fde28a, 0x254aa376, 0xb3fde28a, 0xfe24d6e7, 0x17e3a034, 0x6c14e386, 0x6c14e386, 0x6c14e386, 0x18a427a4, 0x18a427a4, 0x18a427a4, 0xd210d39a, 0xd210d39a, 0xd210d39a, 0x4d266f7a, 0xfe24d6e7, 0xfe24d6e7, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0x4d266f7a, 0xb3fde28a, 0x254aa376, 0xb3fde28a, 0xfe24d6e7, 0x9d89e033, 0x5c51c231, 0x5c51c231, 0x5c51c231, 0xb06b945a, 0xb06b945a, 0xb06b945a, 0x42527fcb, 0x42527fcb, 0x42527fcb, 0x4d266f7a, 0xfe24d6e7, 0xfe24d6e7, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe21093d1, 0x22b4f37f, 0xe21093d1, 0x6e68157e, 0x94242a59, 0x81c7cd03, 0x81c7cd03, 0x81c7cd03, 0xa623881f, 0xa623881f, 0xa623881f, 0x3a12fdfb, 0x3a12fdfb, 0x3a12fdfb, 0x1ed9d731, 0x6e68157e, 0x6e68157e, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x1ed9d731, 0xe21093d1, 0x22b4f37f, 0xe21093d1, 0x6e68157e, 0x94242a59, 0x81c7cd03, 0x81c7cd03, 0x81c7cd03, 0xa623881f, 0xa623881f, 0xa623881f, 0x3a12fdfb, 0x3a12fdfb, 0x3a12fdfb, 0x1ed9d731, 0x6e68157e, 0x6e68157e, }, 18 },
{ "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x10d16d53, 0x572acb26, 0x10d16d53, 0x809c452e, 0xe213167f, 0xda1700db, 0xda1700db, 0xda1700db, 0xe261f41f, 0xe261f41f, 0xe261f41f, 0x348312d0, 0x348312d0, 0x348312d0, 0x1c3742c9, 0x809c452e, 0x809c452e, }, 18 }, { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0x1c3742c9, 0x10d16d53, 0x572acb26, 0x10d16d53, 0x809c452e, 0x732c7814, 0x58d16c5e, 0x58d16c5e, 0x58d16c5e, 0xf3112515, 0xf3112515, 0xf3112515, 0x6144df48, 0x6144df48, 0x6144df48, 0x1c3742c9, 0x809c452e, 0x809c452e, }, 18 },
{ "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x72a6eb55, 0x91669ba6, 0x72a6eb55, 0x9671866, 0x7d5dafd1, 0x87e374dd, 0x87e374dd, 0x87e374dd, 0xfe6fc4e6, 0xfe6fc4e6, 0xfe6fc4e6, 0x91be1f89, 0x91be1f89, 0x91be1f89, 0xcc5a7bed, 0x9671866, 0x9671866, }, 18 }, { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x72a6eb55, 0x91669ba6, 0x72a6eb55, 0x9671866, 0x4a766eab, 0x8f32827e, 0x8f32827e, 0x8f32827e, 0x1bce8cf, 0x1bce8cf, 0x1bce8cf, 0x7072a1f9, 0x7072a1f9, 0x7072a1f9, 0xcc5a7bed, 0x9671866, 0x9671866, }, 18 },
{ "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0xf88c2164, 0xfcb94962, 0xf88c2164, 0x16aa3d9d, 0x668e3370, 0xa2ab5089, 0xa2ab5089, 0xa2ab5089, 0xe89836f, 0xe89836f, 0xe89836f, 0x51c0ad6e, 0x51c0ad6e, 0x51c0ad6e, 0xef4a3312, 0x16aa3d9d, 0x16aa3d9d, }, 18 }, { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0xef4a3312, 0xf88c2164, 0xfcb94962, 0xf88c2164, 0x16aa3d9d, 0x668e3370, 0xa2ab5089, 0xa2ab5089, 0xa2ab5089, 0xe89836f, 0xe89836f, 0xe89836f, 0x51c0ad6e, 0x51c0ad6e, 0x51c0ad6e, 0xef4a3312, 0x16aa3d9d, 0x16aa3d9d, }, 18 },
{ "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3458f737, 0x9f683632, 0x3458f737, 0xc406e533, 0x59c36f00, 0x59c36f00, 0x487ab5e4, 0x487ab5e4, 0x487ab5e4, 0x7fd259c4, 0x7fd259c4, 0x7fd259c4, 0x9e9c916, 0x9e9c916, 0x9e9c916, 0x59c36f00, 0xc406e533, 0xc406e533, 0x59c36f00, }, 20 }, { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3458f737, 0x9f683632, 0x3458f737, 0xc406e533, 0x59c36f00, 0x59c36f00, 0x487ab5e4, 0x487ab5e4, 0x487ab5e4, 0x7fd259c4, 0x7fd259c4, 0x7fd259c4, 0x9e9c916, 0x9e9c916, 0x9e9c916, 0x59c36f00, 0xc406e533, 0xc406e533, 0x59c36f00, }, 20 },
{ "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf69b4ddf, 0xe4bbd034, 0xf69b4ddf, 0x11f6f535, 0xaa4593fe, 0xaa4593fe, 0x5f72cd5e, 0x5f72cd5e, 0x5f72cd5e, 0x2d53a3c0, 0x2d53a3c0, 0x2d53a3c0, 0xc354a564, 0xc354a564, 0xc354a564, 0xaa4593fe, 0x11f6f535, 0x11f6f535, 0xaa4593fe, }, 20 }, { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf69b4ddf, 0xe4bbd034, 0xf69b4ddf, 0x11f6f535, 0xaa4593fe, 0xaa4593fe, 0x5f72cd5e, 0x5f72cd5e, 0x5f72cd5e, 0x2d53a3c0, 0x2d53a3c0, 0x2d53a3c0, 0xc354a564, 0xc354a564, 0xc354a564, 0xaa4593fe, 0x11f6f535, 0x11f6f535, 0xaa4593fe, }, 20 },

View file

@ -84,6 +84,10 @@ struct grub_gfxmenu_view
{ {
grub_video_rect_t screen; grub_video_rect_t screen;
int need_to_check_sanity;
grub_video_rect_t terminal_rect;
int terminal_border;
grub_font_t title_font; grub_font_t title_font;
grub_font_t message_font; grub_font_t message_font;
char *terminal_font_name; char *terminal_font_name;

Binary file not shown.