grub-dev: Example usage of Video API
10.2 Example usage of Video API
===============================
10.2.1 Example of screen setup
------------------------------
grub_err_t rc;
/* Try to initialize video mode 1024 x 768 with direct RGB. */
rc = grub_video_setup (1024, 768, GRUB_VIDEO_MODE_TYPE_RGB);
if (rc != GRUB_ERR_NONE)
{
/* Fall back to standard VGA Index Color mode. */
rc = grub_video_setup (640, 480, GRUB_VIDEO_MODE_TYPE_INDEX);
if (rc != GRUB_ERR_NONE)
{
/* Handle error. */
}
}
10.2.2 Example of setting up console viewport
---------------------------------------------
grub_uint32_t x, y, width, height;
grub_video_color_t color;
struct grub_font_glyph glyph;
grub_err_t rc;
/* Query existing viewport. */
grub_video_get_viewport (&x, &y, &width, &height);
/* Fill background. */
color = grub_video_map_color (GRUB_COLOR_BACKGROUND);
grub_video_fill_rect (color, 0, 0, width, height);
/* Setup console viewport. */
grub_video_set_viewport (x + 10, y + 10, width - 20, height - 20);
grub_video_get_viewport (&x, &y, &width, &height);
color = grub_video_map_color (GRUB_COLOR_CONSOLE_BACKGROUND);
grub_video_fill_rect (color, 0, 0, width, height);
/* Draw text to viewport. */
color = grub_video_map_color (GRUB_COLOR_CONSOLE_TEXT);
grub_font_get_glyph ('X', &glyph);
grub_video_blit_glyph (&glyph, color, 0, 0);