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 + -
显示快捷键?