Support above_right diacritics

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-02-08 00:38:09 +01:00
parent 4361ca1c37
commit 09d708c68a

View file

@ -1120,6 +1120,7 @@ blit_comb (const struct grub_unicode_glyph *glyph_id,
{ {
struct grub_video_signed_rect bounds; struct grub_video_signed_rect bounds;
unsigned i; unsigned i;
signed above_rightx, above_righty;
auto void NESTED_FUNC_ATTR do_blit (struct grub_font_glyph *src, auto void NESTED_FUNC_ATTR do_blit (struct grub_font_glyph *src,
signed dx, signed dy); signed dx, signed dy);
void NESTED_FUNC_ATTR do_blit (struct grub_font_glyph *src, void NESTED_FUNC_ATTR do_blit (struct grub_font_glyph *src,
@ -1162,6 +1163,9 @@ blit_comb (const struct grub_unicode_glyph *glyph_id,
bounds.width = main_glyph->width; bounds.width = main_glyph->width;
bounds.height = main_glyph->height; bounds.height = main_glyph->height;
above_rightx = bounds.x + bounds.width;
above_righty = bounds.y + bounds.height;
for (i = 0; i < glyph_id->ncomb; i++) for (i = 0; i < glyph_id->ncomb; i++)
{ {
enum grub_comb_type combtype; enum grub_comb_type combtype;
@ -1182,6 +1186,14 @@ blit_comb (const struct grub_unicode_glyph *glyph_id,
minimal_device_width (combining_glyphs[i]->width); minimal_device_width (combining_glyphs[i]->width);
break; break;
case GRUB_UNICODE_COMB_ABOVE_RIGHT:
do_blit (combining_glyphs[i], above_rightx,
-(above_righty + space
+ combining_glyphs[i]->height));
above_rightx += combining_glyphs[i]->width;
minimal_device_width (above_rightx);
break;
case GRUB_UNICODE_STACK_ABOVE: case GRUB_UNICODE_STACK_ABOVE:
space = combining_glyphs[i]->offset_y space = combining_glyphs[i]->offset_y
- grub_font_get_xheight (combining_glyphs[i]->font); - grub_font_get_xheight (combining_glyphs[i]->font);