1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
Description: Fix gfxterm background_color regression
Author: Colin Watson <cjwatson@ubuntu.com>
Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-06/msg00085.html
Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3368
Last-Update: 2011-06-28
Index: b/grub-core/term/gfxterm.c
===================================================================
--- a/grub-core/term/gfxterm.c
+++ b/grub-core/term/gfxterm.c
@@ -131,6 +131,7 @@
static unsigned int bitmap_height;
static struct grub_video_bitmap *bitmap;
static int blend_text_bg;
+static grub_video_rgba_color_t default_bg_color = { 0, 0, 0, 0 };
static struct grub_dirty_region dirty_region;
@@ -266,7 +267,8 @@
grub_video_set_active_render_target (render_target);
- virtual_screen.bg_color_display = grub_video_map_rgba(0, 0, 0, 0);
+ virtual_screen.bg_color_display =
+ grub_video_map_rgba_color (default_bg_color);
/* Clear out text buffer. */
for (i = 0; i < virtual_screen.columns * virtual_screen.rows; i++)
@@ -338,8 +340,8 @@
double_redraw = mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED
&& !(mode_info.mode_type & GRUB_VIDEO_MODE_TYPE_UPDATING_SWAP);
- /* Make sure screen is black. */
- color = grub_video_map_rgb (0, 0, 0);
+ /* Make sure screen is set to the default background color. */
+ color = grub_video_map_rgba_color (default_bg_color);
grub_video_fill_rect (color, 0, 0, mode_info.width, mode_info.height);
if (double_redraw)
{
@@ -1189,7 +1191,6 @@
grub_gfxterm_background_color_cmd (grub_command_t cmd __attribute__ ((unused)),
int argc, char **args)
{
- grub_video_rgba_color_t color;
struct grub_video_render_target *old_target;
if (argc != 1)
@@ -1199,7 +1200,7 @@
if (grub_video_get_info (NULL) != GRUB_ERR_NONE)
return grub_errno;
- if (grub_video_parse_color (args[0], &color) != GRUB_ERR_NONE)
+ if (grub_video_parse_color (args[0], &default_bg_color) != GRUB_ERR_NONE)
return grub_errno;
/* Destroy existing background bitmap if loaded. */
@@ -1216,9 +1217,10 @@
compatible with the text layer. */
grub_video_get_active_render_target (&old_target);
grub_video_set_active_render_target (text_layer);
- virtual_screen.bg_color = grub_video_map_rgba_color (color);
+ virtual_screen.bg_color = grub_video_map_rgba_color (default_bg_color);
grub_video_set_active_render_target (old_target);
- virtual_screen.bg_color_display = grub_video_map_rgba_color (color);
+ virtual_screen.bg_color_display =
+ grub_video_map_rgba_color (default_bg_color);
blend_text_bg = 1;
/* Mark whole screen as dirty. */
|