mirror of
https://gitlab.freedesktop.org/freetype/freetype.git
synced 2025-12-24 23:30:04 +01:00
read-only mirror of https://gitlab.freedesktop.org/freetype/freetype
This was quite a subtle bug which accidentally showed up with glyph `afii10023' of arial.ttf (version 2.76). This glyph is a composite; the first component, `E', has an advance width of 1366 font units, while the advance width of the composite itself (which looks like uppercase `E' with dieresis) is 1367 font units. I think this is actually a bug in the font itself, because there is no reason that this glyph has not the same width as uppercase `E' without the dieresis. Anyway, it helped identify this problem. Using the TrueType hinter, the correct value (1367) of `afii10023' was returned, but the autohinter mysteriously returned 1366. Digging in the code showed that the autohinter recursively calls FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load flag. However, the `linearHoriAdvance' field is still returned as a scaled value. To avoid scaling twice, the old code in autofit reset `linearHoriAdvance', using the `horiAdvance' field. This seemed to work since FT_LOAD_NO_SCALE was in use, but it failed actually, because `horiAdvance' is defined as the distance of the first subglyph's phantom points, which in turn are initialized using the advance width of the first subglyph. And as the given example shows, these widths can differ. * src/autofit/afloader.c (af_loader_load_g): Temporarily set FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled values for the linear advance widths. |
||
|---|---|---|
| builds | ||
| devel | ||
| docs | ||
| include | ||
| objs | ||
| src | ||
| .gitignore | ||
| autogen.sh | ||
| ChangeLog | ||
| ChangeLog.20 | ||
| ChangeLog.21 | ||
| ChangeLog.22 | ||
| ChangeLog.23 | ||
| configure | ||
| Jamfile | ||
| Jamrules | ||
| Makefile | ||
| modules.cfg | ||
| README | ||
| README.git | ||
| version.sed | ||
| vms_make.com | ||
FreeType 2.4.9
==============
Please read the docs/CHANGES file, it contains IMPORTANT
INFORMATION.
Read the files `docs/INSTALL' for installation instructions.
See the file `docs/LICENSE.TXT' for the available licenses. Note
that we use ranges (`2008-2010') for copyright years also instead of
listing individual years (`2008, 2009, 2010').
The FreeType 2 API reference is located in `docs/reference'; use the
file `ft2-doc.html' as the top entry point. Additional
documentation is available as a separate package from our sites. Go
to
http://download.savannah.gnu.org/releases/freetype/
and download one of the following files.
freetype-doc-2.4.9.tar.bz2
freetype-doc-2.4.9.tar.gz
ftdoc249.zip
Bugs
====
Please report bugs by e-mail to `freetype-devel@nongnu.org'. Don't
forget to send a detailed explanation of the problem -- there is
nothing worse than receiving a terse message that only says `it
doesn't work'.
Alternatively, you may submit a bug report at
https://savannah.nongnu.org/bugs/?group=freetype
Enjoy!
The FreeType Team
----------------------------------------------------------------------
Copyright 2006-2011 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
modified, and distributed under the terms of the FreeType project
license, LICENSE.TXT. By continuing to use, modify, or distribute
this file you indicate that you have read the license and understand
and accept it fully.
--- end of README ---