Update with right reactos logo by mf
Modified: trunk/reactos/lib/user32/resources/oic_reactos.ico
_____
Modified: trunk/reactos/lib/user32/resources/oic_reactos.ico
(Binary files differ)
- 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.
Modified: trunk/reactos/lib/freetype/ChangeLog
Modified: trunk/reactos/lib/freetype/Jamfile
Modified: trunk/reactos/lib/freetype/Jamrules
Modified: trunk/reactos/lib/freetype/Makefile.freetype
Modified: trunk/reactos/lib/freetype/README
Added: trunk/reactos/lib/freetype/README.CVS
Added: trunk/reactos/lib/freetype/autogen.sh
Modified: trunk/reactos/lib/freetype/builds/amiga/README
Modified:
trunk/reactos/lib/freetype/builds/amiga/include/freetype/config/ftconfig
.h
Modified:
trunk/reactos/lib/freetype/builds/amiga/include/freetype/config/ftmodule
.h
Added: trunk/reactos/lib/freetype/builds/amiga/makefile
Added: trunk/reactos/lib/freetype/builds/amiga/makefile.os4
Modified: trunk/reactos/lib/freetype/builds/amiga/smakefile
Modified: trunk/reactos/lib/freetype/builds/amiga/src/base/ftdebug.c
Modified: trunk/reactos/lib/freetype/builds/amiga/src/base/ftsystem.c
Modified: trunk/reactos/lib/freetype/builds/atari/ATARI.H
Modified: trunk/reactos/lib/freetype/builds/atari/FNames.SIC
Modified: trunk/reactos/lib/freetype/builds/atari/FREETYPE.PRJ
Modified: trunk/reactos/lib/freetype/builds/atari/README.TXT
Modified: trunk/reactos/lib/freetype/builds/compiler/gcc-dev.mk
Modified: trunk/reactos/lib/freetype/builds/compiler/gcc.mk
Modified: trunk/reactos/lib/freetype/builds/dos/detect.mk
Modified: trunk/reactos/lib/freetype/builds/dos/dos-wat.mk
Modified: trunk/reactos/lib/freetype/builds/freetype.mk
Modified: trunk/reactos/lib/freetype/builds/unix/aclocal.m4
Modified: trunk/reactos/lib/freetype/builds/unix/config.guess
Modified: trunk/reactos/lib/freetype/builds/unix/config.sub
Modified: trunk/reactos/lib/freetype/builds/unix/configure
Modified: trunk/reactos/lib/freetype/builds/unix/configure.ac
Modified: trunk/reactos/lib/freetype/builds/unix/freetype-config.in
Modified: trunk/reactos/lib/freetype/builds/unix/freetype2.m4
Modified: trunk/reactos/lib/freetype/builds/unix/ft-munmap.m4
Modified: trunk/reactos/lib/freetype/builds/unix/ftsystem.c
Modified: trunk/reactos/lib/freetype/builds/unix/install-sh
Modified: trunk/reactos/lib/freetype/builds/unix/install.mk
Modified: trunk/reactos/lib/freetype/builds/unix/ltmain.sh
Modified: trunk/reactos/lib/freetype/builds/unix/mkinstalldirs
Modified: trunk/reactos/lib/freetype/builds/win32/detect.mk
Modified: trunk/reactos/lib/freetype/builds/win32/visualc/freetype.dsp
Modified:
trunk/reactos/lib/freetype/builds/win32/visualc/freetype.vcproj
Modified: trunk/reactos/lib/freetype/builds/win32/visualc/index.html
Modified: trunk/reactos/lib/freetype/configure
Modified: trunk/reactos/lib/freetype/devel/ftoption.h
Modified: trunk/reactos/lib/freetype/docs/CHANGES
Modified: trunk/reactos/lib/freetype/docs/CUSTOMIZE
Modified: trunk/reactos/lib/freetype/docs/DEBUG
Modified: trunk/reactos/lib/freetype/docs/FTL.txt
Modified: trunk/reactos/lib/freetype/docs/GPL.txt
Modified: trunk/reactos/lib/freetype/docs/INSTALL
Modified: trunk/reactos/lib/freetype/docs/INSTALL.ANY
Modified: trunk/reactos/lib/freetype/docs/INSTALL.GNU
Modified: trunk/reactos/lib/freetype/docs/INSTALL.UNX
Modified: trunk/reactos/lib/freetype/docs/INSTALL.VMS
Modified: trunk/reactos/lib/freetype/docs/PATENTS
Modified: trunk/reactos/lib/freetype/docs/TODO
Modified: trunk/reactos/lib/freetype/docs/TRUETYPE
Modified: trunk/reactos/lib/freetype/docs/UPGRADE.UNX
Modified: trunk/reactos/lib/freetype/docs/VERSION.DLL
Modified: trunk/reactos/lib/freetype/docs/formats.txt
Modified: trunk/reactos/lib/freetype/docs/license.txt
Modified: trunk/reactos/lib/freetype/docs/modules.txt
Modified: trunk/reactos/lib/freetype/docs/raster.txt
Modified: trunk/reactos/lib/freetype/docs/release
Modified: trunk/reactos/lib/freetype/freetype.def
Modified: trunk/reactos/lib/freetype/freetype.xml
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftccache.h
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftcglyph.h
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftcmru.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftconfig.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftheader.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftmodule.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftoption.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftstdlib.h
Modified: trunk/reactos/lib/freetype/include/freetype/freetype.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftbdf.h
Added: trunk/reactos/lib/freetype/include/freetype/ftbitmap.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftcache.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftchapters.h
Modified: trunk/reactos/lib/freetype/include/freetype/fterrors.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftgzip.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftimage.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftlzw.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftmac.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftmoderr.h
Added: trunk/reactos/lib/freetype/include/freetype/ftotval.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftoutln.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftpfr.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftrender.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftsizes.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftstroke.h
Modified: trunk/reactos/lib/freetype/include/freetype/fttypes.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftwinfnt.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftcalc.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/ftmemory.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftobjs.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftserv.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/ftstream.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/fttrace.h
Added: trunk/reactos/lib/freetype/include/freetype/internal/ftvalid.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/internal.h
[truncated at 100 lines; 163 more skipped]
_____
Modified: trunk/reactos/lib/freetype/ChangeLog
--- trunk/reactos/lib/freetype/ChangeLog 2005-07-21 03:26:42 UTC
(rev 16674)
+++ trunk/reactos/lib/freetype/ChangeLog 2005-07-21 04:38:26 UTC
(rev 16675)
@@ -1,3 +1,2006 @@
+2005-06-08 Werner Lemberg <wl(a)gnu.org>
+
+
+ * Version 2.1.10 released.
+ ==========================
+
+
+ * src/pcf/readme: Renamed to...
+ * src/pcf/README: This.
+
+2005-06-07 Detlef W³rkner <TetiSoft(a)apg.lahn.de>
+
+ * builds/amiga/*: Added copyright notes, reworked some comments.
+
+2005-06-05 Werner Lemberg <wl(a)gnu.org>
+
+ * Add copyright notices to all files which don't have one.
+
+ * docs/license.txt: Renamed to...
+ * docs/LICENSE.TXT: This.
+ * docs/FTL.txt: Renamed to...
+ * docs/FTL.TXT: This.
+ * docs/GPL.txt: Renamed to...
+ * docs/GPL.TXT: This.
+
+ * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler
+ <beuc(a)gnu.org>.
+
+2005-06-04 Werner Lemberg <wl(a)gnu.org>
+
+ * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+ FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
+ FT_Outline_CubicToFunc, FT_Raster_RenderFunc),
+ include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+ FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use
+ `const' to stay compatible with FreeType 2.1.9.
+
+2005-06-01 Adam D. Moss <adam(a)gimp.org>
+
+ * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch
from
+ 2004-07-11; this gives much better results under normal
+ circumstances.
+
+2005-05-30 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor
+ documentation improvements.
+
+ * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos.
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for
bitmap
+ of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4.
+ If xstr is larger than 8 and bitmap is of pixel_mode
+ FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error.
+
+2005-05-29 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening
bitmap
+ of mode FT_PIXEL_MODE_GRAY. Also add support for mode
+ FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
+ (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and
FT_PIXEL_MODE_LCD_V
+ should have ppb (pixel per byte) 1.
+ Zero the padding when there's no need to allocate memory.
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle
slot->advance
+ too.
+ More suited emboldening strength.
+
+2005-05-28 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative
pitch.
+ Handle FT_PIXEL_MODE_GRAY with num_gray != 256.
+ Improve speed for FT_PIXEL_MODE_GRAY.
+ (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and
+ FT_PIXEL_MODE_LCD_V.
+
+2005-05-27 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize
`error'.
+
+ * src/base/ftobjs.c (ft_cmap_done_internal): New function.
+ (FT_CMap_Done): Remove cmap from cmap list.
+ (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but
+ ft_cmap_done_internal.
+
+2005-05-26 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/GPL.txt: Update postal address of FSF.
+
+2005-05-26 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve
+ documentation.
+
+ * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed.
+ (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner.
+ Always modify the metrics.
+
+2005-05-24 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2005-05-24 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New
declaration.
+
+ * include/freetype/ftoutln.h (FT_Outline_Embolden): New
declaration.
+
+ * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary
+ function.
+ (FT_Bitmap_Embolden): New function.
+
+ * src/base/ftoutln.c (FT_Outline_Embolden): New function.
+
+ * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and
+ FT_TRIGONOMETRY_H but FT_BITMAP_H.
+ (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or
+ FT_Bitmap_Embolden.
+
+2005-05-24 Werner Lemberg <wl(a)gnu.org>
+
+ * configure: Always remove config.mk, builds/unix/unix-def.mk,
and
+ builds/unix/unix-cc.mk. This fixes repeated calls of the
script.
+ Reported by Nelson Beebe and Behdad Esfahbod.
+
+ * README.CVS: Mention file permissions.
+
+2005-05-23 Werner Lemberg <wl(a)gnu.org>
+
+ * builds/amiga/makefile.os4 (WARNINGS),
builds/compiler/gcc-dev.mk
+ (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
+ -fno-strict-aliasing.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
+ it is currently loaded from ttsbit.c.
+
+2005-05-23 Behdad Esfahbod <behdad(a)cs.toronto.edu>
+
+ Say you have `(Foo*)x' and want to assign, pass, or return it as
+ `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C
compiler
+ would warn you that type casting incompatible pointer types
breaks
+ strict-aliasing. The solution is to cast to `(void*)' instead
which
+ is the generic pointer type, so the compiler knows that it
should
+ make no strict-aliasing assumption on `x'. But the problem with
+ `(void*)x' is that seems like in C++, unlike C, `void*' is not a
+ generic pointer type and assigning `void*' to `Bar*' without a
cast
+ causes an error. The solution is to cast to `Bar*' too, with
+ `(Bar*)(void*)x' as the result -- this is what the patch does.
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
+ include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
+ cast on lvalue, use a temporary pointer instead.
+ Cast temporarily to (void*) to not break strict aliasing.
+
+ * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
+ FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
+ src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to
(void*)
+ to not break strict aliasing.
+
+ * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
+
+ * builds/unix/configure.ac (XX_CFLAGS): Remove
-fno-strict-aliasing.
+
+2005-05-23 David Turner <dturner(a)freetype.org>
+
+ Fix Savannah bug #12213 (incorrect behaviour of the cache
sub-system
+ in low-memory conditions).
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP,
+ FTC_CACHE_TRYLOOP_END): New macros.
+
+ * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
+ (ftc_snode_compare): Use FT_CACHE_TRYLOOP and
FTC_CACE_TRYLOOP_END.
+
+2005-05-23 Werner Lemberg <wl(a)gnu.org>
+
+ * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but...
+ (BASE_EXT_SRC): Here.
+
+2005-05-22 Werner Lemberg <wl(a)gnu.org>
+
+ * src/base/ftrfork.c (raccess_guess_apple_generic): Mark
+ `version_number' and `entry_length' as unused.
+ (raccess_guess_linux_double_from_file_name): Remove `memory'.
+ (raccess_make_file_name): Mark `error' as unused.
+
+ * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'.
+
+ * src/cid/cidobjs.c (cid_face_init): Remove `psnames'.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'.
+
+ * src/truetype/ttgxvar.c (ft_var_readpackedpoints,
+ ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as
unused.
+
+ * src/base/rules.mk (BASE_SRC): Add ftsynth.c.
+
+2005-05-21 David Turner <david(a)freetype.org>
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that
+ produced unpleasant artefacts when trying to embolden very sharp
+ corners.
+
+2005-05-20 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2005-05-20 Chia I Wu <b90201047(a)ntu.edu.tw>
+
+ * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and
FT_IMAGE_H
+ but FT_BITMAP_H.
+ (FT_Bitmap_Copy): New function (from ftglyph.c).
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public
+ definition.
+
+ * src/base/ftglyph.c: Include FT_BITMAP_H.
+ (ft_bitmap_copy): Move to ftbitmap.c.
+ (ft_bitmap_glyph_init): Remove `memory' variable.
+ Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set.
+ (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy.
+ (ft_bitmap_glyph_done): Use FT_Bitmap_Done.
+ (ft_outline_glyph_init): Use FT_Outline_Copy.
+
+ * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target.
+ (FT_Outline_Done_Internal): Check for valid `memory' pointer.
+ (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render,
+ FT_Outline_Transform): Check for valid `outline' pointer.
+
+ * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to
+ face->glyph, otherwise a new second glyph slot cannot be
created.
+ (FT_Done_GlyphSlot): Fix memory leak.
+ (FT_Open_Face): Updated -- face->glyph is already managed by
+ FT_New_GlyphSlot.
+
+ * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated.
+
+2005-05-20 Kirill Smelkov <kirr(a)mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Raster_Params),
+ include/freetype/ftoutln.h (FT_Outline_Translate,
+ FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate,
+ FT_Outline_Transform): Decorate parameters with `const' where
+ appropriate.
+ Update all callers.
+
+ * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c
+ (gray_raster_reset): Remove `const' from `pool_base' argument.
+
+2005-05-18 Kirill Smelkov <kirr(a)mns.spb.ru>
+
+ * src/raster/ftmisc.h: New file. Only needed if ftraster.c is
+ compiled as stand-alone.
+
+ * src/raster/ftraster.c: Add comment how to compile as
stand-alone.
+ s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/.
+ s/TT_STATIC_RASTER/FT_STATIC_RASTER/.
+ [_STANDALONE_]: Include ftimage.h and ftmisc.h.
+ (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define
+ conditionally.
+ (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or
+ Raster_Err_Unsupported).
+ (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'.
+ (ft_black_init, ft_black_reset, ft_black_set_mode,
ft_black_render):
+ Use `ras', not `raster'.
+ (ft_black_done): Use FT_UNUSED_RASTER.
+ (Horizontal_Sweep_Init, Horizontal_Sweep_Step,
+ Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER.
+
+2005-05-18 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/announce: Start updating.
+
+ * docs/CHANGES: Updated.
+
+2005-05-16 Vitaliy Pasternak <v_a_pasternak(a)mail.ru>
+
+ * builds/win32/visualc/freetype.vcproj: Updated.
+ Exclude debug info for `Release' versions to reduce library
size.
+
+2005-05-16 Werner Lemberg <wl(a)gnu.org>
+
+ * src/base/ftobjs.c (FT_Open_Face): Make it work as documented,
this
+ is, ignore `aface' completely if face_index < 0. Reported by
David
+ Osborn <spam(a)habitualhiatus.com>.
+
+2005-05-16 Kirill Smelkov <kirr(a)mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+ FT_Outline_LineTo_Func, FT_Outline_ConicToFunc,
+ FT_Outline_CubicToFunc), src/smooth/ftgrays.c
(gray_render_conic,
+ gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to,
+ gray_cubic_to, gray_render_span, gray_sweep): Decorate
parameters
+ with `const' where appropriate.
+
+2005-05-11 Kirill Smelkov <kirr(a)mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Raster_RenderFunc),
+ include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+ FT_Renderer_Render_Func, FT_Renderer_TransformFunc),
+ src/base/ftglyph.c (ft_outline_glyph_transform),
+ src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render),
+ src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render),
+ src/smooth/ftsmooth.c (ft_smooth_transform,
+ ft_smooth_render_generic, ft_smooth_render,
ft_smooth_render_lcd,
+ ft_smooth_render_lcd_v): Decorate parameters with `const' where
+ appropriate.
+
+ * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed.
Obsolete.
+ (ft_black_render): Decorate parameters with `const' where
+ appropriate.
+
+2005-05-11 Werner Lemberg <wl(a)gnu.org>
+
+ * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo
(FT_PEEK_SHORT ->
+ FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez
+ <ismail(a)kde.org.tr>.
+
+2005-05-08 Werner Lemberg <wl(a)gnu.org>
+
+ * include/freetype/internal/ftserv.h
(FT_FACE_FIND_GLOBAL_SERVICE)
+ [__cplusplus]: Fix typo.
+
+2005-05-07 Werner Lemberg <wl(a)gnu.org>
+
+ Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck
+ Blaskey <listtarget(a)danbala.com>).
+
+ * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
+ * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate.
+
+ (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
+ tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
+ `FT_Error' as return type.
+ (tt_cmap4_validate): Use `FT_Error' as return type.
+ Return error code for unsorted cmap.
+ (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for
unsorted
+ cmaps.
+ (tt_face_build_cmaps): Set `unsorted' variable in cmap.
+
+2005-05-07 Werner Lemberg <wl(a)gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_get_location): Fix typo.
+
+2005-05-06 Werner Lemberg <wl(a)gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Set ppem value in top
+ dictionary for SFNT-based CFF.
+
+2005-05-05 Werner Lemberg <wl(a)gnu.org>
+
+ Handle malformed `loca' table entries.
+
+ * docs/TODO: Add some bugs which should be fixed.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Add
`glyf_len'
+ element.
+
+ * src/truetype/ttpload.c (tt_face_load_loca): Get length of
`glyf'
+ table.
+ (tt_face_get_location): Fix computation of `asize' for malformed
+ `loca' entries.
+
+2005-05-01 David Turner <david(a)freetype.org>
+
+ * Jamfile: Remove `otvalid' from the list of compiled modules.
+
+ * include/freetype/internal/ftserv.h: Add compiler pragmas to
get
+ rid of annoying warnings with Visual C++ compiler in maximum
warning
+ mode.
+
+ * src/autofit/afhints.c, src/autofit/aflatin.c,
src/base/ftstroke.c,
+ src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
+ src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
+ src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
+ src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler
warnings.
+
+2005-04-28 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/TODO: Updated.
+
+2005-04-24 Werner Lemberg <wl(a)gnu.org>
+
+ * src/otvalid/otvcommn.c
+ (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
+
+2005-04-16 Werner Lemberg <wl(a)gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Set default upem value in
top
+ font dict also.
+ Handle font matrix settings in subfonts.
+
+ * src/cff/cffgload.c (cff_slot_load): Use the correct font
matrix
+ for CID-keyed fonts with subfonts.
+
+ * docs/formats.txt: Updated.
+
+2005-04-14 Kirill Smelkov <kirr(a)mns.spb.ru>
+
+ * include/freetype/freetype.h (FT_Vector_Transform),
+ include/freetype/ftimage.h (FT_Raster_Params),
+ include/freetype/ftoutln.h, src/base/ftoutln.c
(FT_Outline_Get_CBox,
+ FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform,
+ FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render),
+ src/smooth/ftgrays.c (gray_raster_render): Decorate parameters
with
+ `const' where appropriate.
+
+2005-04-14 Werner Lemberg <wl(a)gnu.org>
+
+ * src/type1/t1load.c (parse_charstrings): Catch this
non-standard
+ beginning of the /CharStrings dictionary:
+
+ /CharStrings 118 dict def
+ Private begin
+ CharStrings begin
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments
+ to call of tt_sbit_decoder_load_bitmap.
+
+2005-04-13 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/TODO: Updated.
+
+ * autogen.sh: Use `--force' for all commands.
+
+2005-04-09 Werner Lemberg <wl(a)gnu.org>
+
+ * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values
+ only if `fitted' is not zero.
+
+2005-04-06 Werner Lemberg <wl(a)gnu.org>
+
+ * src/truetype/ttgload.c (tt_face_get_metrics)
[FT_OPTIMIZE_MEMORY]:
+ Fix typo which sometimes causes wrong metrics for the last
glyph.
+
+2005-04-04 David Turner <david(a)freetype.org>
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming
2.1.10
+ release.
+ (*_CHESTER_*): Removed. No longer used.
+
+ * src/autofit/afhints.c (af_axis_hints_new_segment,
+ af_axis_hints_new_edge): Small tweak to use less heap memory.
+
+2005-04-03 Werner Lemberg <wl(a)gnu.org>
+
+ * src/type1/t1parse.c (T1_New_Parser): Relax the check for a
valid
+ first line in the font.
+
+2005-04-03 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/CHANGES, include/freetype/freetype.h: Improve
documentation
+ of FT_Set_Pixel_Sizes and FT_Set_Char_Size.
+
+2005-03-26 Detlef W³rkner <TetiSoft(a)apg.lahn.de>
+
+ * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix
buffer
+ offsets after a large read.
+
+2005-03-26 Werner Lemberg <wl(a)gnu.org>
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics):
+ s/index/gidx/.
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler
+ warnings.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
+
+ * src/sfnt/ttsbit0.h: Dummy file for build with `make'.
+
+2005-03-26 Detlef W³rkner <TetiSoft(a)apg.lahn.de>
+
+ Update of the Amiga port.
+
+ * builds/amiga/makefile, builds/amiga/makefile.os4,
+ builds/amiga/smakefile: Included the base extension files
+ (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c).
+
+2005-03-25 Detlef W³rkner <TetiSoft(a)apg.lahn.de>
+
+ Update of the Amiga port.
+
+ * builds/amiga/makefile, builds/amiga/smakefile: Handle new
modules.
+
+ * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK.
+
+ * builds/amiga/README: Updated.
+
+ * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc
for
+ AmigaOS4.
+
+ * builds/amiga/include/freetype/config/ftmodule.h: Handle new
+ modules.
+
+ * builds/amiga/src/base/ftdebug.c: Updated to current version of
+ default ftdebug.c.
+ Add various include files and macros to have proper support for
+ both AmigaOS4 and older AmigaOS versions.
+ Don't declare KVPrintF explicitly.
+ Replace getenv with GetVar.
+ Actually enable debugging code.
+
+ * builds/amiga/src/base/ftsystem.c: Major rewrite.
+
+2005-03-23 Werner Lemberg <wl(a)gnu.org>
+
+ * tests/*: Removed.
+
+2005-03-23 Werner Lemberg <wl(a)gnu.org>
+
+ * docs/CHANGES, docs/INSTALL.ANY: Updated.
+
+ * include/freetype/ftmoderr.h: Replace `Autohint' with
`Autofit'.
+ Add `OTvalid'.
+
+ * src/autofit/aferrors.h: New file.
+
+ * src/autofit/afglobal.c, src/autofit/afhints.c,
+ src/autofit/aflatin.c, src/autofit/afloader.c:
s/FT_Err_/AF_Err_/.
+ Include aferrors.h.
+
+ * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h.
+
+ * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/.
+
+2005-03-22 David Turner <david(a)freetype.org>
+
+ * src/autohint/*: Removed.
+ * Jamfile: Updated.
+
+2005-03-15 David Turner <david(a)freetype.org>
+
+ * src/bdf/bdflib.c: Remove compiler warnings.
+ (hash_rehash, hash_init): Don't call FT_MEM_ZERO.
+ (_bdf_list_t): Add `memory' field.
+ (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New
functions.
+ (_bdf_shift, _bdf_join): Rename to...
+ (_bdf_list_shift, _bdf_list_join): This.
+ (_bdf_split): Renamed to...
+ (_bdf_list_split): This. Use new functions.
+ (bdf_internal_readstream): Removed.
+ (NO_SKIP): New macro.
+ (_bdf_readstream): Rewritten.
+ (bdf_create_property, _bdf_add_comment): Improve allocation.
+ (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve
+ allocation.
+ (_bdf_parse_properties, _bdf_parse_start): Updated.
+ (bdf_load_font): Updated to use new functions.
+
+ * src/type1/t1parse.c (check_type1_format): New function.
+ (T1_New_Parser): Use it to check font header before allocating
+ anything on the heap.
+
+ * src/type42/t42parse.c (t42_parser_init): Modify functions to
check
+ the font header before allocating anything on the heap.
+
+ * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX,
+ FT_ARRAY_CHECK): New macros.
+
+ * src/base/ftstream.c (FT_Stream_TryRead): New function.
+ * include/freetype/internal/ftstream.h: Updated.
+
+ * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c
+ (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and
+ simplifications. Try to protect the PCF driver from doing
stupid
+ things with broken fonts.
+
+ * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header
before
+ doing anything else. This avoids unnecessary heap allocations
+ (400KByte of heap memory for the LZW decoder).
+
+ * src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip
+ decoder, although the code savings are smaller.
+
+ * docs/CHANGES: Updated.
+
+2005-03-10 David Turner <david(a)freetype.org>
+
+ * src/tools/glnames.py: Add comment to explain the compression
+ being used for the Adobe Glyph List.
+
+2005-03-10 Werner Lemberg <wl(a)gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm):
+ Fix serious typo which prevented correct TT rendering.
+
+ * include/freetype/internal/ftmemory.h: Undo change from
2005-03-03.
+ To suppress warnings it is sufficient to use
`-fno-strict-aliasing'.
+
+2005-03-10 Werner Lemberg <wl(a)gnu.org>
+
+ * src/tools/glnames.py: Formatted.
+ Format output to be in sync with other FreeType code.
+ Import `re' and `os.path'.
+ (StringTable) <__init__>: Add parameter to initialize master
table
+ name.
+ (StringTable) <dump>: Don't pass master table name.
+ (StringTable) <dump_sublist>: Emit explanatory comment.
+ Simplify and make output more human readable.
+ (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused.
+ (main): Use `basename' for file name in header.
+
+ * src/psnames/pstables.h: Regenerated.
+
+2005-03-09 David Turner <david(a)freetype.org>
+
+ * src/tools/glnames.py: Rewrite the generator for the
`pstables.h'
+ header file which contains various constant tables related to
glyph
+ names. It now uses a different, more compact storage scheme
that
+ saves about 20KB. This also closes Savannah bug #12262.
+
+ * src/psnames/pstables.h: Regenerated.
+
+ * src/psnames/psmodule.c (ps_unicode_value): Use
+ `ft_get_adobe_glyph_index', a new function defined in
`pstables.h'.
+ (ps_get_macintosh_name, ps_get_standard_strings): Updated.
+
+ * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes
+ more carefully. This fixes Savannah bug #12263.
+
+2005-03-06 David Turner <david(a)freetype.org>
+
+ * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static
tables
+ constant.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah
bug
+ #12212 (auto-hinter refuses to work if no Unicode charmap in
font).
+
+2005-03-05 Werner Lemberg <wl(a)gnu.org>
+
+ * autogen.sh: New script for bootstrapping.
+
+ * README.CVS: New file which documents bootstrapping.
+
+ * builds/unix/aclocal.m4, builds/unix/config.guess,
+ builds/unix/config.sub, builds/unix/configure,
+ builds/unix/ltmain.sh: Removed.
+
+2005-03-04 Werner Lemberg <wl(a)gnu.org>
+
+ * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
+
+2005-03-03 Werner Lemberg <wl(a)gnu.org>
+
+ Various fixes for C and C++ compiling.
+
+ * src/autofit/*: Add copyright messages.
+
+ * src/autofit/afhints.c (af_glyph_hints_done): Don't use
+ `AF_Dimension' but `int' for loop counter.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't
use
+ `AF_Dimension' but `int' for loop counter.
+ Use proper enumeration value for `render_mode'.
+ (af_latin_metrics_scale_dim): Don't shadow variables.
+ (af_latin_hints_compute_segments): Use proper cast for
`major_dir'
+ and `segment_dir'.
+ (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments
of call to
+ `af_latin_compute_stem_width'.
+ (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for
loop
+ counter.
+
+ * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory):
Use
+ proper cast for memory allocation.
+
+ * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for
+ initialization of `sfnt'.
+
+ * src/sfnt/sfdriver.c: Include `ttkern.h'.
+
+ * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow
variables.
+
+ * src/truetype/ttgload.c: Include `ttpload.h'.
+
+2005-03-03 David Turner <david(a)freetype.org>
+
+ * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC,
+ FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions
which
+ avoid compiler warnings.
+ (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY,
+ FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated.
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+ FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE)
[__cpluscplus]:
+ Provide macro versions which avoid compiler warnings.
+
+ * src/base/ftutil.c (ft_highpow2): New utility function.
+
+ * include/freetype/internal/ftobjs.h: Updated.
+
+ * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs,
+ pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is
set.
+ (pfr_phy_font_done): Don't handle `kern_pairs' if
FT_OPTIMIZE_MEMORY
+ is set.
+ (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if
+ FT_OPTIMIZE_MEMORY is set.
+
+ * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which
+ doesn't work with broken fonts.
+ (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement.
+
+ * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types.
+ (PFR_NEXT_KPAIR): New macro.
+ (PFR_PhyFontRec): Don't define `kern_pairs' if
FT_OPTIMIZE_MEMORY is
+ set.
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce
+ temporary variable to avoid gcc warning.
+ (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED.
+
+ * src/truetype/ttpload.c (tt_face_load_loca)
[FT_OPTIMIZE_MEMORY]:
+ Remove redundant variable.
+
+ * include/freetype/config/ftmodule.h: Moving the order of
drivers to
+ speed up font loading. The PCF and BDF loaders are still slow
and
+ consume far too much memory.
+
+2005-03-03 Werner Lemberg <wl(a)gnu.org>
+
+ * devel/ftoption.h: Updated to recent changes.
+
+2005-03-02 Werner Lemberg <wl(a)gnu.org>
+
+ * src/autofit/afdummy.c, src/autofit/afdummy.h
+ (af_dummy_script_class): Fix type.
+
+ * src/autofit/aflatin.c, src/autofit/aflatin.h
+ (af_latin_script_class): Fix type.
+
+ * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo.
+
+2005-03-01 David Turner <david(a)freetype.org>
+
+ * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning),
+ src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes,
+ tt_sbit_decoder_load_byte_aligned,
tt_sbit_decoder_load_compound,
+ tt_sbit_decoder_load_image), src/sfnt/ttload.c
+ (tt_face_load_metrics): Remove compiler warnings
+ -- redundant variables, missing initializations, etc.
+
+ * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY.
+
+ * src/autofit/rules.mk, src/autofit/module.mk,
+ src/autofit/afangles.h: New files.
+
+ * src/autofit/afhints.c (af_axis_hints_new_segment,
+ af_axis_hints_new_edge): New functions.
+ (af_glyph_hints_done): Do proper deallocation.
+ (af_glyph_hints_reload): Only reallocate points array. This
+ drastically reduces heap usage.
+
+ * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize
+ member types and positions.
+ (AF_AxisHintsRec): Add `max_segments' and `max_edges'.
+ (af_axis_hints_new_segment, af_axis_hints_new_edge): New
prototypes.
+
+ * src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call
+ AF_SCALER_EQUAL_SCALES.
+ (af_latin_hints_compute_segments): Change return type to
FT_Error.
+ Update all callers.
+ Improve segment allocation.
+ (af_latin_hints_compute_edges): Change return type to FT_Error.
+ Update all callers.
+ Improve edge allocation and link handling.
+ (af_latin_hints_detect_features): Change return type to
FT_Error.
+ Update all callers.
+
+ * src/autofit/aflatin.h: Updated.
+
+ * src/autofit/afloader.c (af_loader_load_g)
+ <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1. This
fixes
+ a bug with certain fonts.
+
+ * include/freetype/config/ftmodule.h: The auto-fitter is now the
+ only supported auto-hinting module.
+
+ * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
+
+2005-02-28 Werner Lemberg <wl(a)gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_load_loca): Fix typo.
+
+ * src/sfnt/ttkern.c: Include `ttkern.h'.
+ (FT_COMPONENT): Updated.
+
+ * include/freetype/internal/fttrace.h: Add entry for `ttkern'.
+
+ * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/.
+ Decorate constants with `U' and `L' where necessary.
+
+ * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
+
+2005-02-28 David Turner <david(a)freetype.org>
+
+ * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory
+ sources according to decreasing maximum cumulative allocations.
+ (ft_mem_source_compare): New auxiliary function.
+
+ * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized
+ embedded bitmap loader.
+
+ * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H,
+ FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H.
+ Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use
+ file contents.
+ (tt_face_load_sbit_strikes): Set up root fields to indicate the
+ strikes. This fixes Savannah bug #12107.
+ Use `static' keyword for `sbit_line_metrics_field',
+ `strike_start_fields', `strike_end_fields'.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Define
+ `sbit_table', `sbit_table_size', `sbit_num_strikes' if
+ FT_OPTIMIZE_MEMORY is set.
+ Don't define `num_sbit_strikes' and `sbit_strikes' if
+ FT_OPTIMIZE_MEMORY is set.
+
+ * src/cff/cffobjs.c (sbit_size_reset): Handle
FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented
+ loading SFNT fonts without a `kern' table.
+ Properly pass root->face_flags.
+ Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
+
+ * src/sfnt/sfdriver.c (sfnt_interface)
+ [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use
`tt_find_sbit_image'
+ and `tt_load_sbit_metrics'.
+
+ * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format
4.
+ (OPT_CMAP4): New macro.
+ (TT_CMap4Rec) [OPT_CMAP4]: New structure.
+ (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next,
tt_cmap4_reset)
+ [OPT_CMAP4]: New functions.
+ (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and
+ `tt_cmap4_reset'.
+ (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and
+ `tt_cmap4_init'.
+
+ * src/truetype/ttobjs.c (Reset_SBit_Size): Handle
+ FT_OPTIMIZE_MEMORY.
+
+ * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec,
AF_EdgeRec):
+ Optimize member types.
+
+ * src/autofit/afloader.c (af_loader_done): Call
+ `af_glyph_hints_done'.
+
+2005-02-27 David Turner <david(a)freetype.org>
+
+ * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which
+ caused invalid (random) return values for the horizontal
kerning.
+
+2005-02-25 David Turner <david(a)freetype.org>
+
+ Implement several memory optimizations to drastically reduce the
+ heap usage of FreeType, especially in the case of memory-mapped
+ files. The idea is to avoid loading and decoding tables in the
+ heap, and instead access the raw data whenever possible (i.e.,
when
+ it doesn't compromise performance).
+
+ This has several benefits: For example, opening vera.ttf now
uses
+ just a small amount of memory (even when the FT_Library
footprint is
+ accounted for), until you start loading glyphs. Even then, you
save
+ at least 20KB compared to the non-optimized case. Performance
of
+ various operations, including open and close, has also been
+ dramatically improved.
+
+ More optimizations to come, especially for the auto-hinter.
+
+ * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New
+ function type.
+ (SFNT_Interface): Add it.
+
+ * include/freetype/internal/tttypes.h (TT_HdmxEntryRec,
TT_HdmxRec,
+ TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set.
+ (TT_FaceRec): Define `horz_metrics', `horz_metrics_size',
+ `vert_metrics', `vert_metrics_size', `hdmx_table',
+ `hdmx_table_size', `hdmx_record_count', `hdmx_record_size',
+ `hdmx_record_sizes', `kern_table', `kern_table_size,
+ `num_kern_tables', `kern_avail_bits', `kern_order_bits' if
+ FT_OPTIMIZE_MEMORY is set.
+ Don't define `hdmx', `num_kern_pairs', `kern_table_index',
+ `kern_pairs' if FT_OPTIMIZE_MEMORY is set.
+
+ * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable.
+ Fix compiler warning.
+
+ * src/cff/cffdrivr.c (Get_Kerning): Renamed to...
+ (cff_get_kerning): This. Simplify.
+ (cff_driver_class): Updated.
+
+ * src/sfnt/Jamfile (_sources): Add `ttkern'.
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Add
`tt_face_get_kerning'.
+
+ * src/sfnt/sfnt.c: Include `ttkern.c'.
+
+ * src/sfnt/sfobjs.c: Include `ttkern.h'.
+ (sfnt_load_face): Consider the `kern' and `gasp' table as
optional.
+ (sfnt_done_face): Call `tt_face_done_kern'.
+ Handle horizontal metrics for FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has
been
+ taken from `ttload.c' and `ttload.h'.
+ Provide special versions of `tt_face_load_kern',
+ `tt_face_get_kerning', and `tt_face_done_kern' for
+ FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx,
+ tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY.
+ (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved
to
+ `ttkern.c'.
+
+ * src/sfnt/ttload.h: Updated.
+
+ * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword.
+
+ * src/truetype/ttdriver.c (Get_Kerning): Renamed to...
+ (tt_get_kerning): This. Simplify.
+ (tt_driver_class): Updated.
+
+ * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to...
+ (tt_face_get_metrics): This. Provide version for
FT_OPTIMIZE_MEMORY.
+ Update all callers.
+ (Get_Advance_Widths): Replaced with...
+ (Get_Advance_WidthPtr): This. Provide version for
+ FT_OPTIMIZE_MEMORY.
+ Update all callers.
+
+ * src/truetype/ttgload.h: Updated.
+
+2005-02-22 David Turner <david(a)freetype.org>
+
+ * src/base/ftdbgmem.c: Partly rewritten. Added the ability to
list
+ all allocation sites in the memory debugger. Also a new
function
+ FT_DumpMemory() was added. It is only available in builds with
+ FT_DEBUG_MEMORY defined, and you must declare it in your own
code to
+ use it, i.e., with something like:
+
+ extern void FT_DumpMemory( FT_Memory );
+
+ ...
+
+ FT_DumpMemory( memory );
+
+ * include/freetype/config/ftoption.h
+ (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition
--
+ again.
+ (FT_OPTIMIZE_MEMORY): New configuration macro to control various
+ optimizations for reducing the heap footprint of memory-mapped
+ TrueType files.
+
+ * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New
+ convenience macro.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec)
+ [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations'
and
+ `glyph_locations'.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Call
+ `tt_face_get_location'.
+
+ * src/truetype/ttobjs.c (tt_face_init)
+ [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling.
+ (tt_face_done): Call `tt_face_done_loca'.
+
+ * src/truetype/ttpload.c (tt_face_get_location,
tt_face_done_loca):
+ New functions. If FT_OPTIMIZE_MEMORY is set, the locations
table is
+ read directly from memory-mapped streams, instead of being
decoded
+ into the heap.
+ (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation.
+ (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the
+ bytecode interpreter is compiled in.
+
+ * src/truetype/ttpload.h: Updated.
+
+ * src/autohint/ahglyph.c (ah_outline_load): Improve allocation
+ logic.
+
+2005-02-20 Werner Lemberg <wl(a)gnu.org>
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.14.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.9.4.
+
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org.
+
+ * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated
from
+ `texinfo' CVS module at subversions.gnu.org.
+
+2005-02-14 Werner Lemberg <wl(a)gnu.org>
[truncated at 1000 lines; 56801 more skipped]