Add mirroring and stacked combining marks

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-01-07 21:25:56 +01:00
parent 72f12cdcd9
commit 97ea65d432
5 changed files with 193 additions and 746 deletions

View file

@ -96,6 +96,8 @@ int grub_font_get_leading (grub_font_t font);
int grub_font_get_height (grub_font_t font);
int grub_font_get_xheight (grub_font_t font);
int grub_font_get_string_width (grub_font_t font, const char *str);
struct grub_font_glyph *grub_font_get_glyph (grub_font_t font,

View file

@ -27,6 +27,7 @@ struct grub_unicode_compact_range
grub_uint32_t end:21;
grub_uint8_t bidi_type:5;
grub_uint8_t comb_type;
grub_uint8_t bidi_mirror:1;
} __attribute__ ((packed));
enum grub_bidi_type
@ -67,13 +68,13 @@ enum grub_comb_type
struct grub_unicode_glyph
{
grub_uint32_t base;
/* Unicode permits 256 variation selectors but since we need a value
for "default" we have to use grub_uint16_t. */
grub_uint16_t variant;
grub_uint16_t variant:9;
grub_uint8_t attributes:1;
grub_size_t ncomb;
grub_uint32_t *combining;
};
#define GRUB_UNICODE_GLYPH_ATTRIBUTE_MIRROR 0x1
#define GRUB_UNICODE_VARIATION_SELECTOR_1 0xfe00
#define GRUB_UNICODE_VARIATION_SELECTOR_16 0xfe0f
#define GRUB_UNICODE_VARIATION_SELECTOR_17 0xe0100