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. --- docs/tmpl/engines.sgml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'docs/tmpl/engines.sgml') diff --git a/docs/tmpl/engines.sgml b/docs/tmpl/engines.sgml index 754540ce..fb7fdfd2 100644 --- a/docs/tmpl/engines.sgml +++ b/docs/tmpl/engines.sgml @@ -37,23 +37,20 @@ engine. It contains the following fields: @id: a unique string ID for the engine. @engine_type: a string identifying the engine type. @render_type: a string identifying the render type. -@ranges: a pointer to an array of #PangoEngineRange - structures. Each structure contains information - about a range of Unicode code points that - this engine handles. -@n_ranges: the number of elements in ranges. +@scripts: +@n_scripts: - + -The PangoEngineRange structure contains -information about a range of Unicode code -points. It contains the following fields: +The PangoEngineScriptInfo structure contains +information about how the shaper covers a particular +script. -@start: the first code point in the range. -@end: the last code point for the range. +@script: a #PangoScript. The value %PANGO_SCRIPT_COMMON has + the special meaning here of "all scripts" @langs: a semicolon separated list of languages that this - engine handles for this range. This may be empty, + engine handles for this script. This may be empty, in which case the engine is saying that it is a fallback choice for all languages for this range, but should not be used if another engine -- cgit v1.2.1