freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Devel] FNT encodings


From: Huw D M Davies
Subject: Re: [Devel] FNT encodings
Date: Wed, 2 Jul 2003 11:57:01 +0100
User-agent: Mutt/1.4.1i

On Wed, Jul 02, 2003 at 11:48:05AM +0200, Michael Pöttgen wrote:
> > > >From Wine's wingdi.h we have
> > >
> > > ...
> > > #define OEM_CHARSET           (BYTE)255
> > 
> > What exactly does this mean?  I assume the worst case: A 
> > charset defined by the OEM with any further specification :-(
> 
> "Windows Font Mapping" article says, that OEM_CHARSET is used for the
> charset of vector fonts, like the Modern.fon, Roman.fon, and Script.fon on
> Windows.
> 
> "CreateFont" documentation says: The OEM_CHARSET value specifies a character
> set that is operating-system dependent.
> 
> "IFIMETRICS" documentation from the "Windows Driver Development Kit" says:
> This font supports an OEM-specific character set. The OEM character set is
> system dependent.
> 
> In general OEM, as opposed to ANSI, denotes the second default codepage,
> that most international versions of Windows have. It is one of the OEM
> codepages from
> 
>     http://www.microsoft.com/globaldev/reference/cphome.mspx,
> 
> and is used for the "DOS boxes", to support legacy applications. A German
> Windows version for example usually uses ANSI codepage 1252 and OEM codepage
> 850.

Yes, that's basically it.  Note however that some bitmap .fon fonts
are also OEM_CHARSET, notably 'Terminal'.  The mapping of OEM_CHARSET
to a code page is going to be a bit tricky.  Unlike the other charsets
that map more or less directly to a unique codepage, the meaning
OEM_CHARSET depends on the locale setting of Windows.  Eg for U.S. it
maps to cp437 while in western Europe it would be cp850.  The two vga
resolution vesions of Terminal are vgaeom.fon and vga850.fon
respectively.  I'm not sure how you can tell which is which other than
by the name.

Note that in TT fonts this mess is cleaned up a bit.  The OEM
codepages are given their own separate bits in ulCodePageRange2 of the
OS2 table.

Huw.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]