by Michael S. Kaplan, published on 2007/11/15 10:31 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/11/15/6264439.aspx
`It was an old Duckman joke that inspired the title which might be funnier, with private detective Duckman and his partner (Cornfed Pig) talking:
Cornfed: But those are English words, Duckman.
Duckman: Well, we don't live in England, now do we?
Or maybe not. Echoes of Schrödinger's post? :-)
One should always allow for the possibility that the solution to a question might be obvious....
Like the other day, when the question was:
Hello,
I’ve got a question about the functions GetGlyphIndices and GetCharABCWidthsFloat. Sorry if I’ve got the wrong sig, I couldn’t find one for GDI, and I’m hoping someone might be able to point me in the right direction. I’m using the above functions to get information about the font “Raavi”. I’m using the GGI_MARK_NONEXISTING_GLYPHS flag with GetGlyphIndices to detect if a glyph is in the font. On Vista the function doesn’t mark the letters ‘A’-‘Z’ as nonexisting. However, on XP, the letters are reported as nonexisting. In addition, GetCharABCWidthsFloat returns different values on the different OSes. I think I’m getting the ABC widths of the default character on XP.
Does anyone know why I could be seeing this discrepancy between Vista and XP?
Thanks
Eli
Let's take a break from the programmatic, and look at the Gurmukhi font Raavi in Character Map -- in XP vs. Vista:
Ah -- a good reason for the Latins showing up as GGI_MARK_NONEXISTING_GLYPHS in XP but not Vista is that the XP version of the font doesn't have those characters, but the Vista font does!
This is something I briefly talked about in 'crap cartoon font' (Part 2).
Now Raavi is not alone here, either.
You can also see the problem with the Kannada font Tunga:
and the Gujarati font Shruti:
and the good old Devanagari font Mangal:
And then last but not least, our Thaana font MV Boli:
Um, oops.
Okay, we didn't get them all.
The reason why this is worthwhile is the number of operations that make decisions about character cell widths based on operations done with A-Z, a-z -- having the font in control of those metrics can come in very handy because otherwise there can be behavior differences between versions that have nothing to do with the font's own core support.
I guess we can't be completely relieved that they don't speak Latin in the Maldives.... :-)
This post brought to you by ޝ (U+079d, a.k.a. THAANA LETTER SHEENU)
# Jeroen Ruigrok van der Werven on 16 Nov 2007 4:41 AM:
Your comparison for Tunga has the wrong Vista screenshot (you posted Raavi again).
# Michael S. Kaplan on 16 Nov 2007 5:30 AM:
Whoops! Fixed now....
# KierenH on 4 Feb 2008 12:05 AM:
>In addition, GetCharABCWidthsFloat returns different values on the different OSes
Make sure the settings for font smoothing are the same on XP and Vista.
Appearance Settings -> Effects -> "Use the following for smoothing edges of screen fonts"
You can enable the setting, and choose between ClearType and Standard
referenced by