Non latin fonts and non local fonts

Huw D M Davies h.davies1 at physics.ox.ac.uk
Mon Dec 9 17:03:25 CST 2002


On Mon, Dec 09, 2002 at 11:50:06PM +0200, Shachar Shemesh wrote:
> Hi list,
> 
> http://bugs.winehq.com/show_bug.cgi?id=1157
> 
> It appears that when I'm copying the Windows fonts to C:\windows\Fonts, 
> setting LANG to he_IL is all it takes for Hebrew to be displayed in edit 
> controls and dialog boxes.
> 
> When I try to copy the exact same fonts to /usr/lib/X11/fonts/windows, 
> and adding them to the XF86Config fonts dir, and running ttmkfdir, no 
> go. The fonts are available to Wine (and each is enumerated multiple 
> times in the fonts dialog), but Hebrew is not displayed by default.
> 
> Sometimes, when I force the CHARSET to HEBREW_CHARSET, I get Hebrew 
> after all, but I'm not at all sure the same font is used then.
> 
> In addition to this problem, I was wondering why we no longer enumerate 
> the X fonts the moment there is ONE font file in c:\windows\Fonts? Is 
> there a reason for them to magically disappear?

The difference is between:

1. Wine rendering the glyph itself and transfering the bitmap to the
   XServer using either the RENDER extension or X11 pixmap core
   requests. (client side rendering)

2. Letting the XServer render and display the glpyh all through 
   X11 font core requests (server side rendering). [Note whether
   the XServer actually renders the glyphs itself or calls out to a font
   server makes no difference - to the client it looks like the XServer
   is doing the work.

Now the X11 font core requests just don't provide enough control to
properly mimic the Windows font api.  For example there's no way to do
anti-aliasing; there's also no way for the client to learn about the
outlines of scalable fonts which is needed for printing.  This makes
server side rendering much less preferable than client side rendering.

However to use client side rendering Wine needs to have access to some
font files; once it has these it'll switch to using client side
rendering for all fonts and not even query the XServer about its own
fonts.  So as soon as you give it one font in c:\windows\fonts Wine
will ignore any fonts installed solely on the XServer.  Now if you
want Wine to see these fonts either copy them into c:\windows\fonts
or add a [Fontdirs] section to the config file and add lines like
"dir1"="/unix/path/to/font/dir"
"dir2"="/unix/path/to/another/font/dir"

Huw.



More information about the wine-devel mailing list