2009-01-19 Vesa Jääskeläinen <chaac@nic.fi>

* font/font.c (grub_font_loader_init): Re-position unknown glyph.

	* term/gfxterm.c (write_char): Fix background rendering for wide 
	width glyphs.
This commit is contained in:
chaac 2009-01-19 17:09:53 +00:00
parent 3e643f8c13
commit bee5fe5d09
3 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
* font/font.c (grub_font_loader_init): Re-position unknown glyph.
* term/gfxterm.c (write_char): Fix background rendering for wide
width glyphs.
2009-01-19 Robert Millan <rmh@aybabtu.com>
* config.guess: Update to latest version from config git.

View File

@ -145,7 +145,7 @@ grub_font_loader_init (void)
unknown_glyph->width = 8;
unknown_glyph->height = 16;
unknown_glyph->offset_x = 0;
unknown_glyph->offset_y = 0;
unknown_glyph->offset_y = -3;
unknown_glyph->device_width = 8;
grub_memcpy(unknown_glyph->bitmap,
unknown_glyph_bitmap, sizeof(unknown_glyph_bitmap));
@ -153,8 +153,8 @@ grub_font_loader_init (void)
/* Initialize the null font. */
font_init (&null_font);
null_font.name = "<No Font>";
null_font.ascent = unknown_glyph->height;
null_font.descent = 1;
null_font.ascent = unknown_glyph->height-3;
null_font.descent = 3;
null_font.max_char_width = unknown_glyph->width;
null_font.max_char_height = unknown_glyph->height;

View File

@ -680,6 +680,8 @@ write_char (void)
unsigned int x;
unsigned int y;
int ascent;
unsigned int height;
unsigned int width;
/* Find out active character. */
p = (virtual_screen.text_buffer
@ -691,7 +693,10 @@ write_char (void)
/* Get glyph for character. */
glyph = grub_font_get_glyph (virtual_screen.font, p->code);
ascent = grub_font_get_ascent (virtual_screen.font);
width = virtual_screen.normal_char_width * calculate_character_width(glyph);
height = virtual_screen.normal_char_height;
color = p->fg_color;
bgcolor = p->bg_color;
@ -700,13 +705,13 @@ write_char (void)
/* Render glyph to text layer. */
grub_video_set_active_render_target (text_layer);
grub_video_fill_rect (bgcolor, x, y, glyph->width, glyph->height);
grub_video_fill_rect (bgcolor, x, y, width, height);
grub_font_draw_glyph (glyph, color, x, y + ascent);
grub_video_set_active_render_target (GRUB_VIDEO_RENDER_TARGET_DISPLAY);
/* Mark character to be drawn. */
dirty_region_add (virtual_screen.offset_x + x, virtual_screen.offset_y + y,
glyph->width, glyph->height);
width, height);
}
static void