From 0f36f55ee0e7c9bf224fabbaf31843b3868f213c Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Tue, 23 Sep 2003 23:11:59 +0000 Subject: Modules now declare a list of scripts that they cover instead of a list of Tue Sep 23 18:03:57 2003 Owen Taylor * pango/pango-engines.[ch] pango/pango-engines-private.h: Modules now declare a list of scripts that they cover instead of a list of code point ranges. Also, there is now a ->covers() virtual function that allows a module to decide live whether the font covers a particular codepoint; remove old get_coverage() method. * pango/pango-fontset.[ch]: Add a foreach() function to iterate over all the fonts in a fontset (with a true return stopping iteration). * pango/pango-context.c: Complete rewrite using script-run information to improve language tags. Switch to an approach where we handle one run at a time rather than computing information for each character individually then later breaking the result into runs. * pango/pango-fontset.[ch]: Switch over to using pango-impl-utils.h. * modules/basic/basic-x.c pango/pangox-fontmap.c: Adapt to the change from get_coverage => covers. * pango/pango-modules.h pango/modules.c: Switch PangoMap over to being based on script rather than being based on codepoint. Remove the no longer needed pango_map_get_entry(). * pango/modules.c: Handle new script-based modules. * pango/pango-fc-fontmap.c pango/pango-win32-fontmap.c pango/pang-fontmap.[ch]: Add a shape_engine_type field to PangoFontmapClass, pango_font_map_get_shape_engine_type(); this allows generic code to find a shaper for a particular fontmap. * pango/pango-script.[ch]: Add pango_script_get_sample_language(), pango_language_includes_script(); functions for determining the relationship between scripts and language. * tools/gen-script-for-lang.c: Modify to spit out a useful table. * pango/pango-script-lang-table.h: Version of table generated from current fontconfig data. * pango/pangox.c: Remove complicated code to compute coverages; no longer useful now that we just have the basic shaper as a legacy thing. * modules/*/*.c: Adapt to identifying shape engines by language range. * modules/thai/thai-fc.c modules/thai/thai-shaper.[ch]: Remove now unused "has_glyph" function and XTIS support. * modules/thai/thai-fc.c: Handle non-Thai characters as well, since the Thai module now gets spaces, punctuation, and so forth. --- modules/thai/thai-shaper.c | 72 ++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 37 deletions(-) (limited to 'modules/thai/thai-shaper.c') diff --git a/modules/thai/thai-shaper.c b/modules/thai/thai-shaper.c index 4cd98283..5fcbc429 100644 --- a/modules/thai/thai-shaper.c +++ b/modules/thai/thai-shaper.c @@ -561,8 +561,6 @@ get_glyphs_list (ThaiFontInfo *font_info, gint num_chrs, PangoGlyph *glyph_lists) { - PangoGlyph glyph; - gint xtis_index; gint i; switch (font_info->font_set) @@ -572,26 +570,6 @@ get_glyphs_list (ThaiFontInfo *font_info, glyph_lists[i] = thai_make_unknown_glyph (font_info, glyph_lists[i]); return num_chrs; - case THAI_FONT_XTIS: - /* If we are rendering with an XTIS font, we try to find a precomposed - * glyph for the cluster. - */ - xtis_index = 0x100 * (cluster[0] - 0xe00 + 0x20) + 0x30; - if (cluster[1]) - xtis_index +=8 * group1_map[cluster[1] - 0xe30]; - if (cluster[2]) - xtis_index += group2_map[cluster[2] - 0xe30]; - glyph = thai_make_glyph (font_info, xtis_index); - if (thai_has_glyph (font_info, glyph)) { - glyph_lists[0] = glyph; - return 1; - } - for (i=0; i < num_chrs; i++) - glyph_lists[i] = - thai_make_glyph (font_info, - 0x100 * (cluster[i] - 0xe00 + 0x20) + 0x30); - return num_chrs; - case THAI_FONT_TIS: /* TIS620-0 + Wtt2.0 Extension */ @@ -629,11 +607,21 @@ add_cluster (ThaiFontInfo *font_info, PangoGlyph glyphs_list[MAX_GLYPHS]; gint num_glyphs; gint i; - - num_glyphs = get_glyphs_list(font_info, cluster, num_chrs, glyphs_list); - for (i=0; i