- From: Atsuhiko Yamanaka <ymnk@jcraft.com>
- Date: Wed, 27 Nov 2002 10:48:07 +0900
- To: www-amaya-dev@w3.org
Hi, Thanks to nice fontconfig system, I can display multi-byte (in my case, Japanese) characters on Gtk-Amaya, but Gtk-Amaya and xfs eat up many CPU time. It seems that, whenever calculating character-width for each characters by calling BoxCharacterWidth(in thotlib/dialogue/font.c), XListFonts is called(in IsXLFDPatterneAFont of thotlib/dialogue/fontconfig.c) and such frequent XListFonts calling has caused this problem. How about calling IsXLFDPatterneAFont only one time for each XLFD? I will post a patch. Thanks, -- ymnk /*****************************************************************************/ diff -Naur Amaya/thotlib/dialogue/fontconfig.c Amaya-20021127/thotlib/dialogue/fontconfig.c --- Amaya/thotlib/dialogue/fontconfig.c 2002-11-05 16:24:31.000000000 +0000 +++ Amaya-20021127/thotlib/dialogue/fontconfig.c 2002-11-27 01:35:13.000000000 +0000 @@ -358,6 +358,12 @@ fontface = TtaGetMemory (sizeof (char) * (strlen (&word[2]) + 1)); strcpy (fontface, &word[2]); +#ifndef _GL + if(!IsXLFDPatterneAFont(fontface)){ + TtaFreeMemory (fontface); + fontface=(char *)NULL; + } +#endif /*_GL*/ fontsscript_tab[script]->family[font_face_index]->highlight[font_style] = fontface; } @@ -475,14 +481,7 @@ g_print ("\n%s", Fonttab[intscript]->family[font_face_index]->highlight[font_style]); #endif /*_PCLFONTDEBUG*/ -#ifndef _GL - if (IsXLFDPatterneAFont (Fonttab[intscript]->family[font_face_index]->highlight[font_style])) - return (Fonttab[intscript]->family[font_face_index]->highlight[font_style]); - else - return NULL; -#else /*_GL*/ return (Fonttab[intscript]->family[font_face_index]->highlight[font_style]); -#endif /*_GL*/ } return NULL; }
Received on Tuesday, 26 November 2002 20:46:40 UTC