changes
来自「SumatraPDF是一款小型开源的pdf阅读工具。虽然玲珑小巧(只有800多K」· 代码 · 共 1,627 行 · 第 1/5 页
TXT
1,627 行
certain `tricky' embedded fonts which cannot be clearly
identified.
If you are a developer for embedded systems, you might want to
*disable* the feature to save code space by undefining
TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'.
- LCD-optimized rendering is now *disabled* in all default builds
of the library, mainly due to patent issues. For more
information see:
http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html
A new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING
has been introduced in `ftoption.h'; manually define it in this
file if you want to re-enable the feature.
The change only affects the implementation, not the FreeType
API. This means that clients don't need to be modified, because
the library still generates LCD decimated bitmaps, but with the
added constraint that R=G=B on each triplet.
The displayed result should be equal to normal anti-aliased
rendering.
Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not
defined, the new `FT_Library_SetLcdFilter' function returns the
FT_Err_Unimplemented_Feature error code.
- Some computation bugs in the TrueType bytecode interpreter were
found, which allow us to get rid of very subtle and rare
differences we had experienced with the Windows renderer.
- It is now possible to cross-compile the library easily. See the
file `docs/INSTALL.CROSS' for details.
- The file `src/base/ftmac.c' now contains code for Mac OS X only;
its deprecated function `FT_GetFile_From_Mac_Font_Name' always
returns an error even if the QuickDraw framework is available.
The previous version has been moved to `builds/mac/ftmac.c'.
Selecting configure option `--with-quickdraw-carbon' makes the
build process use the original `ftmac.c' file instead of the Mac
OS X-only version.
IV. MISCELLANEOUS
- Various performance and memory footprint optimizations have been
performed on the TrueType and CFF font loaders, sometimes with
very drastic benefits (e.g., the TrueType loader is now about
25% faster; FreeType should use less heap memory under nearly
all conditions).
- The anti-aliased rasterizer has been optimized and is now 15% to
25% percent faster than in previous versions, depending on
content.
- The Type 1 loader has been improved; as an example, it now skips
top-level dictionaries properly.
- Better support for Mac fonts on POSIX systems, plus compilation
fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built.
- Configuration without `--with-old-mac-fonts' does not include
`ftmac.c' (this was the behaviour in FreeType version 2.1.10).
- The TrueTypeGX validator (gxvalid) checks the order of glyph IDs
in the kern table.
======================================================================
CHANGES BETWEEN 2.2.1 and 2.2
I. IMPORTANT BUG FIXES
- Various integer overflows have been fixed.
- PFB fonts with MacOS resource fork weren't handled correctly on
non-MacOS platforms.
======================================================================
CHANGES BETWEEN 2.2 and 2.1.10
(not released officially)
I. IMPORTANT BUG FIXES
- Vertical metrics for SFNT fonts were incorrect sometimes.
- The FT_HAS_KERNING macro always returned 0.
- CFF OpenType fonts didn't return correct vertical metrics for
glyphs with outlines.
- If FreeType was compiled without hinters, all font formats based
on PS outlines weren't scaled correctly.
II. IMPORTANT CHANGES
- Version 2.2 no longer exposes its internals, this is, the header
files located in the `include/freetype/internal' directory of
the source package are not copied anymore by the `make install'
command. Consequently, a number of rogue clients which directly
access FreeType's internal functions and structures won't
compile without modification.
We provide patches for most of those rogue clients. See the
following page for more information:
http://www.freetype.org/freetype2/patches/rogue-patches.html
Note that, as a convenience to our Unix desktop users, version
2.2 is *binary* compatible with FreeType 2.1.7, which means that
installing this release on an existing distribution shall not
break any working desktop.
- FreeType's build mechanism has been redesigned. With GNU make
it is now sufficient in most cases to edit two files:
`modules.cfg', to select the library components, and the
configuration file `include/freetype/config/ftoption.h' (which
can be copied to the objects directory). Removing unused module
directories to prevent its compilation and editing
`include/freetype/config/ftmodule.h' is no longer necessary.
- The LIGHT hinting algorithm produces more pleasant results.
Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph
always forces auto-hinting, as a special exception. This allows
you to experiment with it even if you have enabled the TrueType
bytecode interpreter in your build.
- The auto hinter now employs a new algorithm for CJK fonts, based
on Akito Hirai's patch. Note that this only works for fonts
with a Unicode charmap at the moment.
- The following callback function types have changed slightly (by
adding the `const' keyword where appropriate):
FT_Outline_MoveToFunc
FT_Outline_LineToFunc
FT_Outline_ConicToFunc
FT_Outline_CubicToFunc
FT_SpanFunc
FT_Raster_RenderFunc
FT_Glyph_TransformFunc
FT_Renderer_RenderFunc
FT_Renderer_TransformFunc
Note that this doesn't affect binary backward compatibility.
- On MacOS, new APIs have been added as replacements for legacy
APIs: `FT_New_Face_From_FSRef' for `FT_New_Face_From_FSSpec',
and `FT_GetFile_From_Mac_ATS_Name' for
`FT_GetFile_From_Mac_Name'. Legacy APIs are still available, if
FreeType is built without disabling them.
- A new API `FT_Select_Size' has been added to select a bitmap
strike by its index. Code using other functions to select
bitmap strikes should be updated to use this function.
- A new API `FT_Get_SubGlyph_Info' has been added to retrieve
subglyph data. This can be used by rogue clients which used to
access the internal headers to get the corresponding data.
- In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for
BDF/PCF fonts, and only for them. This causes inconsistency.
In this release, we undo the change. The intent of the change
in 2.1.10 is to allow size selection through real dimensions,
which can now be done through `FT_Request_Size'.
- Some security issues were discovered and fixed in the CFF and
Type 1 loader, causing crashes of FreeType by malformed font
files.
III. MISCELLANEOUS
- The documentation for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX
values now better reflects its usage and differences: One set is
used to specify the hinting algorithm, the other to specify the
pixel rendering mode.
- `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been
changed to count supported scalable faces (sfnt, LWFN) only, and
to return the number of available faces via face->num_faces.
Unsupported bitmap faces (fbit, NFNT) are ignored.
- builds/unix/configure has been improved for MacOS X. It now
automatically checks available functions in Carbon library, and
prepare to use newest functions by default. Options to specify
the dependencies of each Carbon APIs (FSSpec, FSRef, old/new
QuickDraw, ATS) are available too. By manual disabling of all
QuickDraw functionality, FreeType can be built without
`deprecated function' warnings on MacOS 10.4.x, but
FT_GetFile_Mac_Name in ftmac.c then is changed to a dummy
function, and returns an `unimplemented' error. For details see
builds/mac/README.
- SFNT cmap handling has been improved, mainly to run much faster
with CJK fonts.
- A new function `FT_Get_TrueType_Engine_Type (declared in
`FT_MODULE_H') is provided to determine the status of the
TrueType bytecode interpreter compiled into the library
(patented, unpatented, unimplemented).
- Vertical metrics of glyphs are synthesized if the font does not
provide such information. You can tell whether the metrics are
synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of
the face.
- The demo programs `ftview' and `ftstring' have been rewritten
for better readability. `ftview' has a new switch `-p' to test
FT_New_Memory_Face (instead of FT_New_Face).
- FreeType now honours bit 1 in the `head' table of TrueType fonts
(meaning `left sidebearing point at x=0'). This helps with some
buggy fonts.
- Rudimentary support for Adobe's new `SING Glyphlet' format. See
http://www.adobe.com/products/indesign/sing_gaiji.html
for more information.
- The `ftdump' program from the `ft2demos' bundle now shows some
information about charmaps. It also supports a new switch `-v'
to increase verbosity.
- Better AFM support. This includes track kerning support.
======================================================================
CHANGES BETWEEN 2.1.10 and 2.1.9
I. IMPORTANT BUG FIXES
- The size comparison for BDF and PCF files could fail sometimes.
- Some CFF files were still not loaded correctly. Patch from
Derek Noonburg.
- The stroker still had some serious bugs.
- Boris Letocha fixed a bug in the TrueType interpreter: The
NPUSHW instruction wasn't skipped correctly in IF clauses. Some
fonts like `Helvetica 75 Bold' failed.
- Another serious bug in handling TrueType hints caused many
distortions. It has been introduced in version 2.1.8, and it is
highly recommended to upgrade.
- FreeType didn't properly parse empty Type 1 glyphs.
- An unbound dynamic buffer growth was fixed in the PFR loader.
- Several bugs have been fixed in the cache sub-system.
- FreeType behaved incorrectly when resizing two distinct but very
close character pixel sizes through `FT_Set_Char_Size' (Savannah
bug #12263).
- The auto-hinter didn't work properly for fonts without a Unicode
charmap -- it even refused to load the glyphs.
II. IMPORTANT CHANGES
- Many fixes have been applied to drastically reduce the amount of
heap memory used by FreeType, especially when using
memory-mapped font files (which is the default on Unix systems
which support them).
- The auto-hinter has been replaced with a new module, called the
`auto-fitter'. It consumes less memory than its predecessor,
and it is prepared to support non-latin scripts better in next
releases.
- George Williams contributed code to read kerning data from PFM
files.
- FreeType now uses the TT_NAME_ID_PREFERRED_FAMILY and
TT_NAME_ID_PREFERRED_SUBFAMILY strings (if available) for
setting family and style in SFNT fonts (patch from Kornfeld
Eliyahu Peter).
- A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has
been added to retrieve name and size information of SFNT tables.
- A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
been added to validate OpenType tables (BASE, GDEF, GPOS, GSUB,
JSTF). After validation it is no longer necessary to check
for errors in those tables while accessing them.
Note that this module might be moved to another library in the
future to avoid a tight dependency between FreeType and the
OpenType specification.
- A new API in FT_BITMAP_H (`FT_Bitmap_New', `FT_Bitmap_Convert',
`FT_Bitmap_Copy', `FT_Bitmap_Embolden', `FT_Bitmap_Done') has
been added. Its use is to convert an FT_Bitmap structure in
1bpp, 2bpp, 4bpp, or 8bpp format into another 8bpp FT_Bitmap,
probably using a different pitch, and to further manipulate it.
- A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer
control how outlines are embolded.
- `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps
also (code contributed by Chia I Wu). Note that this function
is still experimental and may be replaced with a better API.
- The method how BDF and PCF bitmap fonts are accessed has been
refined. Formerly, FT_Set_Pixel_Sizes and FT_Set_Char_Size
were synonyms in FreeType's BDF and PCF interface. This has
changed now. FT_Set_Pixel_Sizes should be used to select the
actual font dimensions (the `strike', which is the sum of the
`FONT_ASCENT' and `FONT_DESCENT' properties), while
FT_Set_Char_Size selects the `nominal' size (the `PIXELSIZE'
property). In both functions, the width parameter is ignored.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?