- Freetype Update to 2.1.10. Reduces memory usage, increases speed and fixes drawing...
authorAlex Ionescu <aionescu@gmail.com>
Thu, 21 Jul 2005 04:38:26 +0000 (04:38 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Thu, 21 Jul 2005 04:38:26 +0000 (04:38 +0000)
commitc6262e3b0f1f687a6c0c3dd5a3cfb0b426e5e8e6
treead66963a1e789fd25ab83f1ecdeed3df4bbebea7
parente4549de4a38cd63b8966689ba60ea1614e225670
- Freetype Update to 2.1.10. Reduces memory usage, increases speed and fixes drawing bugs.
 - Enable Bytecode. Weird_W's fonts finally look humanly readable.

Thanks to Waxdragon for testing.

<http://www.freetype.org>

LATEST 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.

  III. MISCELLANEOUS

    - The BDF driver  no longer converts  all returned bitmaps  with a
      depth of 2bpp or 4bpp to a depth of 8bpp.  The documentation has
      not  mentioned  this  explicitly,  but  implementors  might have
      relied on this after looking into the source files.

    - A new option `--ftversion' has been  added to freetype-config to
      return the FreeType version.

    - The  memory  debugger  has  been  updated   to  dump  allocation
      statistics on  all allocation  sources in the library.   This is
      useful to  spot greedy  allocations when  loading and processing
      fonts.

    - We removed a huge array of constant pointers to constant strings
      in the `psnames' module.   The problem was that  compilations in
      PIC mode (i.e.,  when generating a  Unix shared object/dll)  put
      the array  into the non-shared  writable section of  the library
      since absolute pointers are not relocatable by nature.

      This reduces the memory consumption by approximately 16KByte per
      process linked  to FreeType.   We now also store  the array in a
      compressed form (as a trie) which saves about 20KByte of code as
      well.

    - Kirill  Smelkov provided  patches to make  src/raster/ftraster.c
      compile stand-alone again.

svn path=/trunk/; revision=16675
278 files changed:
reactos/lib/freetype/ChangeLog
reactos/lib/freetype/Jamfile
reactos/lib/freetype/Jamrules
reactos/lib/freetype/Makefile.freetype
reactos/lib/freetype/README
reactos/lib/freetype/README.CVS [new file with mode: 0644]
reactos/lib/freetype/autogen.sh [new file with mode: 0644]
reactos/lib/freetype/builds/amiga/README
reactos/lib/freetype/builds/amiga/include/freetype/config/ftconfig.h
reactos/lib/freetype/builds/amiga/include/freetype/config/ftmodule.h
reactos/lib/freetype/builds/amiga/makefile [new file with mode: 0644]
reactos/lib/freetype/builds/amiga/makefile.os4 [new file with mode: 0644]
reactos/lib/freetype/builds/amiga/smakefile
reactos/lib/freetype/builds/amiga/src/base/ftdebug.c
reactos/lib/freetype/builds/amiga/src/base/ftsystem.c
reactos/lib/freetype/builds/atari/ATARI.H
reactos/lib/freetype/builds/atari/FNames.SIC
reactos/lib/freetype/builds/atari/FREETYPE.PRJ
reactos/lib/freetype/builds/atari/README.TXT
reactos/lib/freetype/builds/compiler/gcc-dev.mk
reactos/lib/freetype/builds/compiler/gcc.mk
reactos/lib/freetype/builds/dos/detect.mk
reactos/lib/freetype/builds/dos/dos-wat.mk
reactos/lib/freetype/builds/freetype.mk
reactos/lib/freetype/builds/unix/aclocal.m4
reactos/lib/freetype/builds/unix/config.guess
reactos/lib/freetype/builds/unix/config.sub
reactos/lib/freetype/builds/unix/configure
reactos/lib/freetype/builds/unix/configure.ac
reactos/lib/freetype/builds/unix/freetype-config.in
reactos/lib/freetype/builds/unix/freetype2.m4
reactos/lib/freetype/builds/unix/ft-munmap.m4
reactos/lib/freetype/builds/unix/ftsystem.c
reactos/lib/freetype/builds/unix/install-sh
reactos/lib/freetype/builds/unix/install.mk
reactos/lib/freetype/builds/unix/ltmain.sh
reactos/lib/freetype/builds/unix/mkinstalldirs
reactos/lib/freetype/builds/win32/detect.mk
reactos/lib/freetype/builds/win32/visualc/freetype.dsp
reactos/lib/freetype/builds/win32/visualc/freetype.vcproj
reactos/lib/freetype/builds/win32/visualc/index.html
reactos/lib/freetype/configure
reactos/lib/freetype/devel/ftoption.h
reactos/lib/freetype/docs/CHANGES
reactos/lib/freetype/docs/CUSTOMIZE
reactos/lib/freetype/docs/DEBUG
reactos/lib/freetype/docs/FTL.txt
reactos/lib/freetype/docs/GPL.txt
reactos/lib/freetype/docs/INSTALL
reactos/lib/freetype/docs/INSTALL.ANY
reactos/lib/freetype/docs/INSTALL.GNU
reactos/lib/freetype/docs/INSTALL.UNX
reactos/lib/freetype/docs/INSTALL.VMS
reactos/lib/freetype/docs/PATENTS
reactos/lib/freetype/docs/TODO
reactos/lib/freetype/docs/TRUETYPE
reactos/lib/freetype/docs/UPGRADE.UNX
reactos/lib/freetype/docs/VERSION.DLL
reactos/lib/freetype/docs/formats.txt
reactos/lib/freetype/docs/license.txt
reactos/lib/freetype/docs/modules.txt
reactos/lib/freetype/docs/raster.txt
reactos/lib/freetype/docs/release
reactos/lib/freetype/freetype.def
reactos/lib/freetype/freetype.xml
reactos/lib/freetype/include/freetype/cache/ftccache.h
reactos/lib/freetype/include/freetype/cache/ftcglyph.h
reactos/lib/freetype/include/freetype/cache/ftcmru.h
reactos/lib/freetype/include/freetype/config/ftconfig.h
reactos/lib/freetype/include/freetype/config/ftheader.h
reactos/lib/freetype/include/freetype/config/ftmodule.h
reactos/lib/freetype/include/freetype/config/ftoption.h
reactos/lib/freetype/include/freetype/config/ftstdlib.h
reactos/lib/freetype/include/freetype/freetype.h
reactos/lib/freetype/include/freetype/ftbdf.h
reactos/lib/freetype/include/freetype/ftbitmap.h [new file with mode: 0644]
reactos/lib/freetype/include/freetype/ftcache.h
reactos/lib/freetype/include/freetype/ftchapters.h
reactos/lib/freetype/include/freetype/fterrors.h
reactos/lib/freetype/include/freetype/ftgzip.h
reactos/lib/freetype/include/freetype/ftimage.h
reactos/lib/freetype/include/freetype/ftlzw.h
reactos/lib/freetype/include/freetype/ftmac.h
reactos/lib/freetype/include/freetype/ftmoderr.h
reactos/lib/freetype/include/freetype/ftotval.h [new file with mode: 0644]
reactos/lib/freetype/include/freetype/ftoutln.h
reactos/lib/freetype/include/freetype/ftpfr.h
reactos/lib/freetype/include/freetype/ftrender.h
reactos/lib/freetype/include/freetype/ftsizes.h
reactos/lib/freetype/include/freetype/ftstroke.h
reactos/lib/freetype/include/freetype/fttypes.h
reactos/lib/freetype/include/freetype/ftwinfnt.h
reactos/lib/freetype/include/freetype/internal/ftcalc.h
reactos/lib/freetype/include/freetype/internal/ftmemory.h
reactos/lib/freetype/include/freetype/internal/ftobjs.h
reactos/lib/freetype/include/freetype/internal/ftserv.h
reactos/lib/freetype/include/freetype/internal/ftstream.h
reactos/lib/freetype/include/freetype/internal/fttrace.h
reactos/lib/freetype/include/freetype/internal/ftvalid.h [new file with mode: 0644]
reactos/lib/freetype/include/freetype/internal/internal.h
reactos/lib/freetype/include/freetype/internal/services/svotval.h [new file with mode: 0644]
reactos/lib/freetype/include/freetype/internal/services/svpsinfo.h
reactos/lib/freetype/include/freetype/internal/services/svsfnt.h
reactos/lib/freetype/include/freetype/internal/sfnt.h
reactos/lib/freetype/include/freetype/internal/tttypes.h
reactos/lib/freetype/include/freetype/t1tables.h
reactos/lib/freetype/include/freetype/ttnameid.h
reactos/lib/freetype/include/freetype/tttables.h
reactos/lib/freetype/include/freetype/tttags.h
reactos/lib/freetype/src/Jamfile
reactos/lib/freetype/src/autofit/Jamfile
reactos/lib/freetype/src/autofit/afangles.c
reactos/lib/freetype/src/autofit/afangles.h [new file with mode: 0644]
reactos/lib/freetype/src/autofit/afdummy.c
reactos/lib/freetype/src/autofit/afdummy.h
reactos/lib/freetype/src/autofit/aferrors.h [moved from reactos/lib/freetype/src/autohint/aherrors.h with 77% similarity]
reactos/lib/freetype/src/autofit/afglobal.c
reactos/lib/freetype/src/autofit/afglobal.h
reactos/lib/freetype/src/autofit/afhints.c
reactos/lib/freetype/src/autofit/afhints.h
reactos/lib/freetype/src/autofit/aflatin.c
reactos/lib/freetype/src/autofit/aflatin.h
reactos/lib/freetype/src/autofit/afloader.c
reactos/lib/freetype/src/autofit/afloader.h
reactos/lib/freetype/src/autofit/afmodule.c
reactos/lib/freetype/src/autofit/afmodule.h
reactos/lib/freetype/src/autofit/aftypes.h
reactos/lib/freetype/src/autofit/autofit.c
reactos/lib/freetype/src/autofit/module.mk [new file with mode: 0644]
reactos/lib/freetype/src/autofit/rules.mk [new file with mode: 0644]
reactos/lib/freetype/src/autohint/CatharonLicense.txt [deleted file]
reactos/lib/freetype/src/autohint/Jamfile [deleted file]
reactos/lib/freetype/src/autohint/ahangles.c [deleted file]
reactos/lib/freetype/src/autohint/ahangles.h [deleted file]
reactos/lib/freetype/src/autohint/ahglobal.c [deleted file]
reactos/lib/freetype/src/autohint/ahglobal.h [deleted file]
reactos/lib/freetype/src/autohint/ahglyph.c [deleted file]
reactos/lib/freetype/src/autohint/ahglyph.h [deleted file]
reactos/lib/freetype/src/autohint/ahhint.c [deleted file]
reactos/lib/freetype/src/autohint/ahhint.h [deleted file]
reactos/lib/freetype/src/autohint/ahloader.h [deleted file]
reactos/lib/freetype/src/autohint/ahmodule.c [deleted file]
reactos/lib/freetype/src/autohint/ahtypes.h [deleted file]
reactos/lib/freetype/src/autohint/autohint.c [deleted file]
reactos/lib/freetype/src/autohint/mather.py [deleted file]
reactos/lib/freetype/src/autohint/module.mk [deleted file]
reactos/lib/freetype/src/autohint/rules.mk [deleted file]
reactos/lib/freetype/src/base/Jamfile
reactos/lib/freetype/src/base/ftbdf.c
reactos/lib/freetype/src/base/ftbitmap.c [new file with mode: 0644]
reactos/lib/freetype/src/base/ftcalc.c
reactos/lib/freetype/src/base/ftdbgmem.c
reactos/lib/freetype/src/base/ftdebug.c
reactos/lib/freetype/src/base/ftglyph.c
reactos/lib/freetype/src/base/ftinit.c
reactos/lib/freetype/src/base/ftmac.c
reactos/lib/freetype/src/base/ftobjs.c
reactos/lib/freetype/src/base/ftotval.c [new file with mode: 0644]
reactos/lib/freetype/src/base/ftoutln.c
reactos/lib/freetype/src/base/ftpfr.c
reactos/lib/freetype/src/base/ftrfork.c
reactos/lib/freetype/src/base/ftstream.c
reactos/lib/freetype/src/base/ftstroke.c
reactos/lib/freetype/src/base/ftsynth.c
reactos/lib/freetype/src/base/fttrigon.c
reactos/lib/freetype/src/base/fttype1.c
reactos/lib/freetype/src/base/ftutil.c
reactos/lib/freetype/src/base/ftwinfnt.c
reactos/lib/freetype/src/base/ftxf86.c
reactos/lib/freetype/src/base/rules.mk
reactos/lib/freetype/src/bdf/Jamfile
reactos/lib/freetype/src/bdf/bdfdrivr.c
reactos/lib/freetype/src/bdf/bdflib.c
reactos/lib/freetype/src/cache/Jamfile
reactos/lib/freetype/src/cache/ftcbasic.c
reactos/lib/freetype/src/cache/ftccache.c
reactos/lib/freetype/src/cache/ftccmap.c
reactos/lib/freetype/src/cache/ftcglyph.c
reactos/lib/freetype/src/cache/ftcmanag.c
reactos/lib/freetype/src/cache/ftcsbits.c
reactos/lib/freetype/src/cff/Jamfile
reactos/lib/freetype/src/cff/cffcmap.c
reactos/lib/freetype/src/cff/cffdrivr.c
reactos/lib/freetype/src/cff/cffgload.c
reactos/lib/freetype/src/cff/cffload.c
reactos/lib/freetype/src/cff/cffobjs.c
reactos/lib/freetype/src/cff/cffparse.c
reactos/lib/freetype/src/cff/cfftoken.h
reactos/lib/freetype/src/cid/Jamfile
reactos/lib/freetype/src/cid/cidload.c
reactos/lib/freetype/src/cid/cidobjs.c
reactos/lib/freetype/src/cid/cidparse.c
reactos/lib/freetype/src/cid/cidriver.c
reactos/lib/freetype/src/gzip/Jamfile
reactos/lib/freetype/src/gzip/ftgzip.c
reactos/lib/freetype/src/lzw/Jamfile
reactos/lib/freetype/src/lzw/ftlzw.c
reactos/lib/freetype/src/lzw/zopen.c
reactos/lib/freetype/src/otvalid/Jamfile [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/module.mk [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvalid.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvalid.h [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvbase.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvcommn.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvcommn.h [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otverror.h [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvgdef.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvgpos.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvgpos.h [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvgsub.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvjstf.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvmod.c [new file with mode: 0644]
reactos/lib/freetype/src/otvalid/otvmod.h [moved from reactos/lib/freetype/src/autohint/ahmodule.h with 50% similarity]
reactos/lib/freetype/src/otvalid/rules.mk [new file with mode: 0644]
reactos/lib/freetype/src/pcf/Jamfile
reactos/lib/freetype/src/pcf/pcfdrivr.c
reactos/lib/freetype/src/pcf/pcfread.c
reactos/lib/freetype/src/pcf/pcfutil.c
reactos/lib/freetype/src/pfr/Jamfile
reactos/lib/freetype/src/pfr/pfrgload.c
reactos/lib/freetype/src/pfr/pfrload.c
reactos/lib/freetype/src/pfr/pfrobjs.c
reactos/lib/freetype/src/pfr/pfrtypes.h
reactos/lib/freetype/src/psaux/Jamfile
reactos/lib/freetype/src/psaux/psobjs.c
reactos/lib/freetype/src/psaux/t1decode.c
reactos/lib/freetype/src/pshinter/Jamfile
reactos/lib/freetype/src/pshinter/pshalgo.c
reactos/lib/freetype/src/psnames/Jamfile
reactos/lib/freetype/src/psnames/psmodule.c
reactos/lib/freetype/src/psnames/pstables.h
reactos/lib/freetype/src/raster/Jamfile
reactos/lib/freetype/src/raster/ftmisc.h [new file with mode: 0644]
reactos/lib/freetype/src/raster/ftraster.c
reactos/lib/freetype/src/raster/ftrend1.c
reactos/lib/freetype/src/sfnt/Jamfile
reactos/lib/freetype/src/sfnt/rules.mk
reactos/lib/freetype/src/sfnt/sfdriver.c
reactos/lib/freetype/src/sfnt/sferrors.h
reactos/lib/freetype/src/sfnt/sfnt.c
reactos/lib/freetype/src/sfnt/sfobjs.c
reactos/lib/freetype/src/sfnt/ttcmap.c [new file with mode: 0644]
reactos/lib/freetype/src/sfnt/ttcmap.h [new file with mode: 0644]
reactos/lib/freetype/src/sfnt/ttkern.c [new file with mode: 0644]
reactos/lib/freetype/src/sfnt/ttkern.h [new file with mode: 0644]
reactos/lib/freetype/src/sfnt/ttload.c
reactos/lib/freetype/src/sfnt/ttload.h
reactos/lib/freetype/src/sfnt/ttsbit.c
reactos/lib/freetype/src/sfnt/ttsbit.h
reactos/lib/freetype/src/sfnt/ttsbit0.c [new file with mode: 0644]
reactos/lib/freetype/src/sfnt/ttsbit0.h [new file with mode: 0644]
reactos/lib/freetype/src/smooth/Jamfile
reactos/lib/freetype/src/smooth/ftgrays.c
reactos/lib/freetype/src/smooth/ftsmooth.c
reactos/lib/freetype/src/tools/docmaker/sources.py
reactos/lib/freetype/src/tools/glnames.py
reactos/lib/freetype/src/truetype/Jamfile
reactos/lib/freetype/src/truetype/ttdriver.c
reactos/lib/freetype/src/truetype/ttgload.c
reactos/lib/freetype/src/truetype/ttgload.h
reactos/lib/freetype/src/truetype/ttgxvar.c
reactos/lib/freetype/src/truetype/ttinterp.c
reactos/lib/freetype/src/truetype/ttinterp.h
reactos/lib/freetype/src/truetype/ttobjs.c
reactos/lib/freetype/src/truetype/ttpload.c
reactos/lib/freetype/src/truetype/ttpload.h
reactos/lib/freetype/src/type1/Jamfile
reactos/lib/freetype/src/type1/t1afm.c
reactos/lib/freetype/src/type1/t1afm.h
reactos/lib/freetype/src/type1/t1driver.c
reactos/lib/freetype/src/type1/t1load.c
reactos/lib/freetype/src/type1/t1objs.c
reactos/lib/freetype/src/type1/t1parse.c
reactos/lib/freetype/src/type42/Jamfile
reactos/lib/freetype/src/type42/t42drivr.c
reactos/lib/freetype/src/type42/t42objs.c
reactos/lib/freetype/src/type42/t42parse.c
reactos/lib/freetype/src/winfonts/Jamfile