gfxterm fix
This commit is contained in:
parent
8c4c25fe73
commit
072acffa20
1 changed files with 7 additions and 3 deletions
|
@ -95,6 +95,7 @@ struct grub_virtual_screen
|
||||||
/* Color settings. */
|
/* Color settings. */
|
||||||
grub_video_color_t fg_color;
|
grub_video_color_t fg_color;
|
||||||
grub_video_color_t bg_color;
|
grub_video_color_t bg_color;
|
||||||
|
grub_video_color_t bg_color_display;
|
||||||
|
|
||||||
/* Text buffer for virtual screen. Contains (columns * rows) number
|
/* Text buffer for virtual screen. Contains (columns * rows) number
|
||||||
of entries. */
|
of entries. */
|
||||||
|
@ -237,6 +238,8 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y,
|
||||||
|
|
||||||
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
|
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
|
||||||
|
|
||||||
|
virtual_screen.bg_color_display = grub_video_map_rgba(0, 0, 0, 0);
|
||||||
|
|
||||||
/* Clear out text buffer. */
|
/* Clear out text buffer. */
|
||||||
for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++)
|
for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++)
|
||||||
clear_char (&(virtual_screen.text_buffer[i]));
|
clear_char (&(virtual_screen.text_buffer[i]));
|
||||||
|
@ -345,7 +348,7 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
||||||
|
|
||||||
/* If bitmap is smaller than requested blit area, use background
|
/* If bitmap is smaller than requested blit area, use background
|
||||||
color. */
|
color. */
|
||||||
color = virtual_screen.bg_color;
|
color = virtual_screen.bg_color_display;
|
||||||
|
|
||||||
/* Fill right side of the bitmap if needed. */
|
/* Fill right side of the bitmap if needed. */
|
||||||
if ((x + width >= bitmap_width) && (y < bitmap_height))
|
if ((x + width >= bitmap_width) && (y < bitmap_height))
|
||||||
|
@ -392,7 +395,7 @@ redraw_screen_rect (unsigned int x, unsigned int y,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Render background layer. */
|
/* Render background layer. */
|
||||||
color = virtual_screen.bg_color;
|
color = virtual_screen.bg_color_display;
|
||||||
grub_video_fill_rect (color, x, y, width, height);
|
grub_video_fill_rect (color, x, y, width, height);
|
||||||
|
|
||||||
/* Render text layer as replaced (to get texts background color). */
|
/* Render text layer as replaced (to get texts background color). */
|
||||||
|
@ -814,7 +817,8 @@ grub_gfxterm_cls (void)
|
||||||
/* Clear text layer. */
|
/* Clear text layer. */
|
||||||
grub_video_set_active_render_target (text_layer);
|
grub_video_set_active_render_target (text_layer);
|
||||||
color = virtual_screen.bg_color;
|
color = virtual_screen.bg_color;
|
||||||
grub_video_fill_rect (color, 0, 0, mode_info.width, mode_info.height);
|
grub_video_fill_rect (color, 0, 0, virtual_screen.width,
|
||||||
|
virtual_screen.height);
|
||||||
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
|
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
|
||||||
|
|
||||||
/* Mark virtual screen to be redrawn. */
|
/* Mark virtual screen to be redrawn. */
|
||||||
|
|
Loading…
Reference in a new issue