summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2000-10-03 19:04:34 +0000
committerTor Lillqvist <tml@src.gnome.org>2000-10-03 19:04:34 +0000
commit9b359e9b7c20a134363f2383902519d73d130e68 (patch)
treebdf8e74a67b9d5783bf2b263662d518d557a7f21
parent6ed8c4f1d4f27507919db74990fa9bdd3681ad7e (diff)
downloadpango-9b359e9b7c20a134363f2383902519d73d130e68.tar.gz
pango/pango.def Add new entry points.
2000-10-03 Tor Lillqvist <tml@iki.fi> * pango/pango.def * pango/pangoft2.def: Add new entry points. * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary loop calling memset() with same parameters 64 times ;-) * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o. Some small changes that have been laying around on my disk. The Win32 and FT2 backends aren't "production quality" yet. For speedup, need to cache at least the coverage info. * pango/pangoft2.c (pango_ft2_get_coverage): New function. * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to be unique. * modules/basic/basic-ft2.c: Add comments explaining what Unicode ranges the table entries covers. Use "BasicScriptEngineLangFT2" to be unique. (basic_engine_get_coverage): Test calling pango_ft2_get_coverage(). (basic_engine_ft2_new): Set corect engine type. Not that this apparently is used for anything, the X11 basic shaper module also sets its type as TYPE_LANG. * examples/viewer-ft2.c (split_paragraphs): Just end the string upon encountering an invalid character. Don't return.
-rw-r--r--ChangeLog31
-rw-r--r--ChangeLog.pre-1-031
-rw-r--r--ChangeLog.pre-1-1031
-rw-r--r--ChangeLog.pre-1-231
-rw-r--r--ChangeLog.pre-1-431
-rw-r--r--ChangeLog.pre-1-631
-rw-r--r--ChangeLog.pre-1-831
-rw-r--r--examples/viewer-ft2.c3
-rw-r--r--modules/basic/basic-ft2.c79
-rw-r--r--modules/basic/basic-win32.c4
-rw-r--r--pango/makefile.mingw.in1
-rw-r--r--pango/pango-coverage.c3
-rw-r--r--pango/pango.def12
-rw-r--r--pango/pangoft2-fontcache.c2
-rw-r--r--pango/pangoft2.c44
-rw-r--r--pango/pangoft2.def1
16 files changed, 348 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 7e4577a4..9b046645 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-0
+++ b/ChangeLog.pre-1-0
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-2
+++ b/ChangeLog.pre-1-2
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-4
+++ b/ChangeLog.pre-1-4
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-6
+++ b/ChangeLog.pre-1-6
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8
index 7e4577a4..9b046645 100644
--- a/ChangeLog.pre-1-8
+++ b/ChangeLog.pre-1-8
@@ -1,3 +1,34 @@
+2000-10-03 Tor Lillqvist <tml@iki.fi>
+
+ * pango/pango.def
+ * pango/pangoft2.def: Add new entry points.
+
+ * pango/pango-coverage.c (pango_coverage_set): Remove unnecessary
+ loop calling memset() with same parameters 64 times ;-)
+
+ * pango/makefile.mingw.in (PANGO_OBJS): Add pango-tabs.o.
+
+ Some small changes that have been laying around on my disk. The
+ Win32 and FT2 backends aren't "production quality" yet. For
+ speedup, need to cache at least the coverage info.
+
+ * pango/pangoft2.c (pango_ft2_get_coverage): New function.
+
+ * modules/basic/basic-win32.c: Use "BasicScriptEngineLangWin32" to
+ be unique.
+
+ * modules/basic/basic-ft2.c: Add comments explaining what Unicode
+ ranges the table entries covers. Use "BasicScriptEngineLangFT2" to
+ be unique.
+ (basic_engine_get_coverage): Test calling
+ pango_ft2_get_coverage().
+ (basic_engine_ft2_new): Set corect engine type. Not that this
+ apparently is used for anything, the X11 basic shaper module also
+ sets its type as TYPE_LANG.
+
+ * examples/viewer-ft2.c (split_paragraphs): Just end the string
+ upon encountering an invalid character. Don't return.
+
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
diff --git a/examples/viewer-ft2.c b/examples/viewer-ft2.c
index e7e24bd1..ba820f3f 100644
--- a/examples/viewer-ft2.c
+++ b/examples/viewer-ft2.c
@@ -118,8 +118,7 @@ split_paragraphs (char *text)
if (wc == (gunichar)-1)
{
fprintf (stderr, "%s: Invalid character in input\n", g_get_prgname ());
- g_list_foreach (result, (GFunc)g_free, NULL);
- return NULL;
+ wc = 0;
}
if (!*p || !wc || wc == '\n')
{
diff --git a/modules/basic/basic-ft2.c b/modules/basic/basic-ft2.c
index 086ba420..2faa9788 100644
--- a/modules/basic/basic-ft2.c
+++ b/modules/basic/basic-ft2.c
@@ -27,23 +27,79 @@
#include <fribidi/fribidi.h>
static PangoEngineRange basic_ranges[] = {
- /* Language characters */
- { 0x0000, 0x02af, "*" },
+ /* Basic Latin, Latin-1 Supplement, Latin Extended-A, Latin Extended-B,
+ * IPA Extensions
+ */
+ { 0x0000, 0x02af, "*" },
+
+ /* Spacing Modifier Letters */
{ 0x02b0, 0x02ff, "" },
+
+ /* Not covered: Combining Diacritical Marks */
+
+ /* Greek, Cyrillic, Armenian */
{ 0x0380, 0x058f, "*" },
- { 0x0591, 0x05f4, "*" }, /* Hebrew */
- { 0x060c, 0x06f9, "" }, /* Arabic */
- { 0x0e01, 0x0e5b, "" }, /* Thai */
+
+ /* Hebrew */
+ { 0x0591, 0x05f4, "*" },
+
+ /* Arabic */
+ { 0x060c, 0x06f9, "" },
+
+ /* Not covered: Syriac, Thaana, Devanagari, Bengali, Gurmukhi, Gujarati,
+ * Oriya, Tamil, Telugu, Kannada, Malayalam, Sinhala
+ */
+
+ /* Thai */
+ { 0x0e01, 0x0e5b, "" },
+
+ /* Not covered: Lao, Tibetan, Myanmar, Georgian, Hangul Jamo, Ethiopic,
+ * Cherokee, Unified Canadian Aboriginal Syllabics, Ogham, Runic,
+ * Khmer, Mongolian
+ */
+
+ /* Latin Extended Additional, Greek Extended */
{ 0x1e00, 0x1fff, "*" },
+
+ /* General Punctuation, Superscripts and Subscripts, Currency Symbols,
+ * Combining Marks for Symbols, Letterlike Symbols, Number Forms,
+ * Arrows, Mathematical Operators, Miscellaneous Technical,
+ * Control Pictures, Optical Character Recognition, Enclosed Alphanumerics,
+ * Box Drawing, Block Elements, Geometric Shapes, Miscellaneous Symbols,
+ * Dingbats, Braille Patterns, CJK Radicals Supplement, Kangxi Radicals,
+ * Ideographic Description Characters, CJK Symbols and Punctuation,
+ * Hiragana, Katakana, Bopomofo, Hangul Compatibility Jamo, Kanbun,
+ * Bopomofo Extended, Enclosed CJK Letters and Months, CJK Compatibility,
+ * CJK Unified Ideographs Extension A, CJK Unified Ideographs
+ */
{ 0x2000, 0x9fff, "*" },
+
+ /* Not covered: Yi Syllables, Yi Radicals */
+
+ /* Hangul Syllables */
{ 0xac00, 0xd7a3, "kr" },
+
+ /* Not covered: Private Use */
+
+ /* CJK Compatibility Ideographs (partly) */
{ 0xf900, 0xfa0b, "kr" },
+
+ /* Not covered: CJK Compatibility Ideographs (partly),
+ * Alphabetic Presentation Forms, Arabic Presentation Forms-A,
+ * Combining Half Marks, CJK Compatibility Forms,
+ * Small Form Variants, Arabic Presentation Forms-B,
+ * Specials
+ */
+
+ /* Halfwidth and Fullwidth Forms (partly) */
{ 0xff00, 0xffe3, "*" }
+
+ /* Not covered: Halfwidth and Fullwidth Forms, Specials */
};
static PangoEngineInfo script_engines[] = {
{
- "BasicScriptEngineLang",
+ "BasicScriptEngineLangFT2",
PANGO_ENGINE_TYPE_LANG,
PANGO_RENDER_TYPE_NONE,
basic_ranges, G_N_ELEMENTS(basic_ranges)
@@ -261,10 +317,13 @@ basic_engine_get_coverage (PangoFont *font,
PangoCoverage *result = pango_coverage_new ();
gunichar wc;
+#if 0
for (wc = 0; wc < 65536; wc++)
if (find_char (font, wc))
pango_coverage_set (result, wc, PANGO_COVERAGE_EXACT);
-
+#else
+ result = pango_ft2_get_coverage (font, lang);
+#endif
return result;
}
@@ -276,7 +335,7 @@ basic_engine_ft2_new (void)
result = g_new (PangoEngineShape, 1);
result->engine.id = "BasicScriptEngine";
- result->engine.type = PANGO_ENGINE_TYPE_LANG;
+ result->engine.type = PANGO_ENGINE_TYPE_SHAPE;
result->engine.length = sizeof (result);
result->script_shape = basic_engine_shape;
result->get_coverage = basic_engine_get_coverage;
@@ -304,8 +363,7 @@ MODULE_ENTRY(script_engine_list) (PangoEngineInfo **engines,
PangoEngine *
MODULE_ENTRY(script_engine_load) (const char *id)
{
- g_print ("basic-ft2: LOAD\n");
- if (!strcmp (id, "BasicScriptEngineLang"))
+ if (!strcmp (id, "BasicScriptEngineLangFT2"))
return basic_engine_lang_new ();
else if (!strcmp (id, "BasicScriptEngineFT2"))
return basic_engine_ft2_new ();
@@ -316,5 +374,4 @@ MODULE_ENTRY(script_engine_load) (const char *id)
void
MODULE_ENTRY(script_engine_unload) (PangoEngine *engine)
{
- g_print ("basic-ft2: UNLOAD\n");
}
diff --git a/modules/basic/basic-win32.c b/modules/basic/basic-win32.c
index ea4f6f0f..66082ee8 100644
--- a/modules/basic/basic-win32.c
+++ b/modules/basic/basic-win32.c
@@ -41,7 +41,7 @@ static PangoEngineRange basic_ranges[] = {
static PangoEngineInfo script_engines[] = {
{
- "BasicScriptEngineLang",
+ "BasicScriptEngineLangWin32",
PANGO_ENGINE_TYPE_LANG,
PANGO_RENDER_TYPE_NONE,
basic_ranges, G_N_ELEMENTS(basic_ranges)
@@ -298,7 +298,7 @@ MODULE_ENTRY(script_engine_list) (PangoEngineInfo **engines,
PangoEngine *
MODULE_ENTRY(script_engine_load) (const char *id)
{
- if (!strcmp (id, "BasicScriptEngineLang"))
+ if (!strcmp (id, "BasicScriptEngineLangWin32"))
return basic_engine_lang_new ();
else if (!strcmp (id, "BasicScriptEngineWin32"))
return basic_engine_win32_new ();
diff --git a/pango/makefile.mingw.in b/pango/makefile.mingw.in
index 3bcc4beb..1e1fb33a 100644
--- a/pango/makefile.mingw.in
+++ b/pango/makefile.mingw.in
@@ -31,6 +31,7 @@ PANGO_OBJS = \
pango-fontmap.o \
pango-item.o \
pango-layout.o \
+ pango-tabs.o \
pango-utils.o \
reorder-items.o \
shape.o
diff --git a/pango/pango-coverage.c b/pango/pango-coverage.c
index 6a031fb3..c0c10145 100644
--- a/pango/pango-coverage.c
+++ b/pango/pango-coverage.c
@@ -237,8 +237,7 @@ void pango_coverage_set (PangoCoverage *coverage,
(coverage->blocks[block_index].level << 4) |
(coverage->blocks[block_index].level << 6);
- for (i=0; i<64; i++)
- memset (data, byte, 64);
+ memset (data, byte, 64);
}
i = index % 256;
diff --git a/pango/pango.def b/pango/pango.def
index 982162c5..0037f85f 100644
--- a/pango/pango.def
+++ b/pango/pango.def
@@ -97,6 +97,7 @@ EXPORTS
pango_layout_get_pixel_size
pango_layout_get_size
pango_layout_get_spacing
+ pango_layout_get_tabs
pango_layout_get_type
pango_layout_get_width
pango_layout_index_to_pos
@@ -115,6 +116,7 @@ EXPORTS
pango_layout_set_indent
pango_layout_set_justify
pango_layout_set_spacing
+ pango_layout_set_tabs
pango_layout_set_text
pango_layout_set_width
pango_layout_xy_to_index
@@ -132,4 +134,14 @@ EXPORTS
pango_shape
pango_skip_space
pango_split_file_list
+ pango_tab_array_copy
+ pango_tab_array_free
+ pango_tab_array_get_size
+ pango_tab_array_get_tab
+ pango_tab_array_get_tabs
+ pango_tab_array_new
+ pango_tab_array_new_with_positions
+ pango_tab_array_get_positions_in_pixels
+ pango_tab_array_resize
+ pango_tab_array_set_tab
pango_trim_string
diff --git a/pango/pangoft2-fontcache.c b/pango/pangoft2-fontcache.c
index ddfc114c..fa58adbe 100644
--- a/pango/pangoft2-fontcache.c
+++ b/pango/pangoft2-fontcache.c
@@ -28,7 +28,7 @@
/* Number of fonts to retain after they are not otherwise referenced.
*/
-#define CACHE_SIZE 3
+#define CACHE_SIZE 10
typedef struct _CacheEntry CacheEntry;
diff --git a/pango/pangoft2.c b/pango/pangoft2.c
index fe55178c..01f138b5 100644
--- a/pango/pangoft2.c
+++ b/pango/pangoft2.c
@@ -749,6 +749,50 @@ pango_ft2_has_glyph (PangoFont *font,
return TRUE;
}
+PangoCoverage *
+pango_ft2_get_coverage (PangoFont *font,
+ const char *lang)
+{
+ PangoFT2Font *ft2font = (PangoFT2Font *)font;
+ PangoCoverage *result = pango_coverage_new ();
+ PangoCoverage *tmp;
+ PangoGlyph glyph;
+ FT_Face face;
+ gunichar wc;
+ int i;
+ GTimeVal tv0, tv1;
+
+ for (i = 1; i <= ft2font->n_fonts; i++)
+ {
+ g_get_current_time (&tv0);
+ tmp = pango_coverage_new ();
+ face = pango_ft2_get_face (font, i);
+ g_get_current_time (&tv1);
+ if (tv1.tv_usec < tv0.tv_usec)
+ tv1.tv_sec--, tv1.tv_usec += 1000000L;
+ g_print ("after pango_ft2_get_face: %ld.%06ld s\n", tv1.tv_sec - tv0.tv_sec, tv1.tv_usec - tv0.tv_usec);
+ for (wc = 0; wc < 65536; wc++)
+ {
+ glyph = PANGO_FT2_MAKE_GLYPH (i, wc);
+ if (FT_Get_Char_Index (face, wc))
+ pango_coverage_set (tmp, wc, PANGO_COVERAGE_EXACT);
+ if ((wc%3000)==1) {
+ g_get_current_time (&tv1);
+ if (tv1.tv_usec < tv0.tv_usec)
+ tv1.tv_sec--, tv1.tv_usec += 1000000L;
+ g_print ("after %d loops: %ld.%06ld s\n", wc, tv1.tv_sec - tv0.tv_sec, tv1.tv_usec - tv0.tv_usec);}
+ }
+ g_get_current_time (&tv1);
+ if (tv1.tv_usec < tv0.tv_usec)
+ tv1.tv_sec--, tv1.tv_usec += 1000000L;
+ g_print ("after loop for %s: %ld.%06ld s\n", face->family_name, tv1.tv_sec - tv0.tv_sec, tv1.tv_usec - tv0.tv_usec);
+ pango_coverage_max (result, tmp);
+ pango_coverage_unref (tmp);
+ }
+
+ return result;
+}
+
/**
* pango_ft2_font_subfont_open_args:
* @font: a #PangoFont which must be from the FT2 backend
diff --git a/pango/pangoft2.def b/pango/pangoft2.def
index 2bb3134b..bab9698e 100644
--- a/pango/pangoft2.def
+++ b/pango/pangoft2.def
@@ -10,6 +10,7 @@ EXPORTS
pango_ft2_fontmap_dump
pango_ft2_ft_strerror
pango_ft2_get_context
+ pango_ft2_get_coverage
pango_ft2_get_unknown_glyph
pango_ft2_has_glyph
pango_ft2_load_font