GDI32: [4/5] freetype.c add more font selecting&linking mechanism support.

Byeong-Sik Jeon wjsqudtlr at gmail.com
Tue Mar 7 10:40:55 CST 2006


2006-03-07 (화), 14:34 +0000, Huw D M Davies 쓰시길:
> On Tue, Mar 07, 2006 at 09:29:14PM +0900, Byeong-Sik Jeon wrote:
> > ChangeLog:
> > 	Improved create_child_font_list(), get_nearest_charset(), more using
> > font-linking mechanism.
> > 
> > If lfCharSet == DEFAULT_CHARSET, then ALL font(LOGFONT) can see current
> > locale letter, (have to exist least one font corresponding current
> > locale ).
> >  
> > > - If lfCharSet == DEFAULT_CHARSET then use the current locale codepage.
> > > and If selected font is not support current ansi codepage, then it fixup
> > > the problem in "create_child_font_list()" function.
> > >  
> > 
> 
> I'm slightly confused about what you're trying to do here.  Could you
> try to explain it again please?
> 
Sorry, my poor english...

assume "Arial.ttf" is exist in the system.
------------------------------------------
string = "Hello. 안녕하세요. 安寕"; /* include non-western character */

logfont.lfCharSet = DEFAULT_CHARSET;
logfont.lfFaceName = "Arial";
hfont = CreateFontIndirect(&logfont);
SelectObject(hdc, hfont);

TextOut(hdc, 10, 10, string, strlen(string)); 
--------------------------------------------
at this case, now Wine print out broken shape, because glyph missing on
Arial.ttf.

font-linking mechanism help this situation. but need to 
-------------------------------
[HKLM\\...\SystemLink]
"Arial"="......"
--------------------------------
New get_nearest_charset(), create_child_font_list() solve this situation
without any additional config file change.



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_8fp0.asp
----------------------------------
Windows NT/2000/XP: DEFAULT_CHARSET is set to a value based on the
current system locale. For example, when the system locale is English
(United States), it is set as ANSI_CHARSET.
----------------------------------
Korean locale => HANGEUL_CHARSET,
Japanese locale => SHIFTJIS_CHARSET.
....
but,  Arial.ttf is missing these charset, therefore incorrect operation
in the get_nearest_charset().

Sorry again. Please see the code....


> Moving this TRACE is clearly not correct.
Yes. I mistake... 




More information about the wine-devel mailing list