Font selection logic defective?

Bill Medland billmedland at mercuryspeed.com
Tue Jan 18 17:42:40 CST 2005


On January 18, 2005 03:00 pm, Huw D M Davies wrote:
> On Tue, Jan 18, 2005 at 12:08:17PM -0800, Bill Medland wrote:
> > (Huw?)
> >
> > Do I need to dig deeper to understand this or is there a defect in the
> > logic. If there are ttf fonts available does that mean a poor ttf match
> > will be selected even when a better x11drv font is available?
>
> Yes that's right, and also intentional.  It's basically impossible to
> do proper font support with server side fonts, so if we have any fonts
> we can use on the client side then we'll do client side rendering.
>
> > What should we do?  Get the font matching logic to look at both the sets
> > of fonts?  Or add some sort of "Ignore these fonts" list in the Wine
> > fonts area?
>
> If you really want to disable client side font rendering in the x11drv
> you can do so by adding two keys to the [x11drv] section of the config
> file:
>
> ; Use the Render extension to render client side fonts (default "Y")
> "ClientSideWithRender" = "N"
> ; Fallback on X core requests to render client side fonts (default "Y")
> "ClientSideWithCore" = "N"
> ; Set both of the previous two to "N" in order to force X11 server side
> fonts

I'm obviously misunderstanding something and not communicating effectively 
(probably because I don't understand the intricacies of the area), but the 
above doesn't help me.

My problem is very simple.  When I ADD openoffice, increasing the number of 
fonts available, I get a worse display that if I didn't.

Here, I think, is the relevant portion of the two traces.
trace:font:WineEngInit 
trace:font:WineEngInit FreeType version is 2.1.4
trace:font:ReadFontDir Loading fonts from 
"/home/medbi01/.wine/dosdevices/c:/windows/fonts"
trace:font:load_fontconfig_fonts fontconfig: 
/usr/share/fonts/default/Type1/n022004l.pfb
...
trace:font:load_fontconfig_fonts fontconfig: 
/usr/X11R6/lib/X11/fonts/Type1/c0419bt_.pfb

+++ This is found on the machine with openoffice

trace:font:load_fontconfig_fonts fontconfig: 
/usr/share/fonts/openoffice/Vera.ttf
trace:font:AddFontFileToList Loading font file 
"/usr/share/fonts/openoffice/Vera.ttf" index 0
trace:font:AddFontFileToList fsCsb = 00000001 00000000/800000af 1000204a 
00000000 00000000
trace:font:AddFontFileToList Added font L"Bitstream Vera Sans" L"Roman"
...
trace:font:CreateFontIndirectW (19 0 0 0 22 3 2 0 0) L"Arial" Bold   => 0x12c6
trace:font:WineEngCreateFontInstance L"Arial", h=19, it=0, weight=700, 
PandF=22, charset=0 orient 0 escapement 0
trace:font:WineEngCreateFontInstance not in cache
+++ On the openoffice machine
trace:font:WineEngCreateFontInstance substituting L"Arial" -> L"Helvetica"
trace:font:WineEngCreateFontInstance Chosen: L"Bitstream Vera Sans" L"Bold"
trace:font:WineEngGetFontData font=0x40079fa8, table=584d4456, 
offset=00000000, buf=0x493ef470, cbData=6
trace:font:WineEngGetFontData Can't find table 56444d58.
trace:font:WineEngCreateFontInstance caching: gdiFont=0x40079fa8  hfont=0x12c6
--- On the machine without
trace:font:WineEngCreateFontInstance No fonts installed
trace:font:X11DRV_SelectFont hdc=0x74, hfont=0xda2
trace:font:X11DRV_SelectFont gdiFont = (nil)
trace:font:XFONT_UnAlias found alias 'Arial'->Helvetica'
trace:font:X11DRV_SelectFont hfont=0xda2
trace:font:XFONT_MatchDeviceFont (0) 'Helvetica' h=19 weight=700 
trace:font:XFONT_MatchDeviceFont found facename 'Helvetica'
...

So it seems to me that the problem is not to do with whether we do client or 
server side on the x11drv; it is whether we even get to the x11drv.

Can you think of anything else that might work?
-- 
Bill Medland
Programmer
ACCPAC International, Inc.
bill.medland at BestSoftware.com
Corporate: www.accpac.com
Hosted Services: www.accpaconline.com




More information about the wine-devel mailing list