Thanks for the help - I can now get it to work without xft. For me :
Fl::set_font(FL_HELVETICA, "*wenquanyi-wenquanyi bitmap song-medium*");
Fl::set_font(FL_HELVETICA_BOLD, "*wenquanyi-wenquanyi bitmap song-bold*");

When I do this, I still get a 15 second plus delay starting the the application 
but we can live with it. I guess this is just because the Chinese fonts have 
tens of thousands of glyphs to load - plus both fonts are in four different 
sizes.

I am a little naive about X, xlib, xft etc. but this is how I see the choices :
 - use xft if you want to display vector (truetype etc.) fonts and have 
anti-aliasing. This slowed down the drawing to some extent for me (at least 
with fltk 1.1.7 - I have not tried with 1.3).
 - xft will also display bitmap (pcf) fonts but non-anti-aliased (which is fine 
for me at the moment).
 - xft works magically with fltk 1.3 to somehow choose a font that matches your 
utf8 locale automatically. For me, if LC_ALL=zh_CN.UTF-8 then Helvetica is 
automatically substituted for wenquanyi without me having to write any code.

But, if xft is used, all available fonts seem to be loaded / scanned upon 
start-up which can take a long time on slow hardware (or is this just me ?).

If you do not use xft then (it seems) you have to tell fltk which fonts to 
substitute. So, I would read the locale and if it was chinese (for example), 
then do the set_font() calls above. This is more similar to how we did it with 
fltk 1.1.7 where we set the global variable fl_encoding to "koi8-r", 
"iso8859-2" etc. Of course, the default helvetica utf-8 font has the glyphs for 
many languages so usually no call to set_font() will be necessary.

The advantage of doing it this way (no xft) is that at least when starting up 
in a non-chinese local there is no extra delay.

Thanks...
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to