freetype-devel
[Top][All Lists]
Advanced

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

[ft-devel] Hebrew support to auto-hinter added


From: Werner LEMBERG
Subject: [ft-devel] Hebrew support to auto-hinter added
Date: Mon, 26 Aug 2013 21:34:55 +0200 (CEST)

I proudly announce that the first part of the reorganization of
FreeType's auto-hinter has been finished.  It is now just a matter of
few, almost trivial lines to add support for a new script, provided
that one of the auto-hinter submodules is capable to handle it.

Consequently, I've added Hebrew support.

There is now a central file, `afblue.dat', which contains blue zone
character strings of all scripts.  To make it easier to read and
maintain the data, I've written a Perl script which converts the UTF-8
data in this file to `afblue.c' and `afblue.h' (encoded in ASCII),
using the template files `afblue.cin' and `afblue.hin', respectively.
Enumerations are used to access the data; the enumeration values
simply correspond to offsets into the array `af_blue_strings'.

However, a script (as understood by the auto-hinter) doesn't access
these strings directly.  Instead, blue strings are grouped into blue
stringsets, together with some string properties.  This makes it
possible to re-use strings, if necessary.  Script names are listed in
file `afscript.h'.  Again, enumeration values correspond to offsets
into the array `af_blue_stringsets'.

To complete the hierarchy, an auto-hinter submodule corresponds to a
`writing system'.  Obviously, a script can belong only to a single
writing system.  Writing system names are listed in file `afwrtsys.h'.

Scripts themselves are defined in the auto-hinter submodule they
belong to.  For example, the definition of Hebrew can be found at the
end of file `aflatin.c':

  AF_DEFINE_SCRIPT_CLASS(
    af_hebr_script_class,

    AF_SCRIPT_HEBR,
    AF_BLUE_STRINGSET_HEBR,
    AF_WRITING_SYSTEM_LATIN,

    af_hebr_uniranges,
    0x5DD /* ם (the Hebrew character used       */
          /*    to derive standard stem widths) */
  )

Please note that Hebrew support is not optimal yet; I have to think
how to better make the auto-hinter properly ignore the `vertical
serifs' used at the top of many glyphs while computing blue zones.


    Werner

reply via email to

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