2006-02-25 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-02-25 David Turner <david@freetype.org>
Fix compiler warnings as well as C++ compilation problems.
Add missing prototypes.
* src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
initialize variables, and decorate functions with FT_CALLBACK_DEF,
etc., to fix compiler warnings (and C++ compiling errors).
* src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
gcc.
* builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
FT_INTERNAL_STREAM_H.
* src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
* include/freetype/config/ftheader.h (FT_PFR_H): New macro.
* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
define for C++.
* include/freetype/internal/services/svotval.h: Don't include
FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
* include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
* src/gzip/ftgzip.c: Include FT_GZIP_H.
* src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
* src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
ft_contour_enclosed, ft_outline_get_orientation): Commented out. We
have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
(FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
documentation.
* include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
sure a glyph slot owns its bitmap. It is also marked experimental
and due to change.
(FT_GlyphSlot_Embolden): Undo the last change. It turns out that
rendering the outline confuses some applications.
2006-02-24 David Turner <david@freetype.org>
* Release candidate VER-2-2-0-RC3.
----------------------------------
* src/cache/ftcbasic.c: Correct compatibility hack bug.
2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/freetype.h (FT_Size_RequestRec): Change the type
of `width' and `height' to `FT_Long'.
(enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
directly.
2006-02-23 David Turner <david@freetype.org>
Two BDF patches from Debian libfreetype6 for 2.1.10.
* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
glyphs.
Fix a problem with large encodings.
Fix binary compatibility issues for gnustep-back (GNUstep backend
module) which still crashes under Sarge.
* src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
structures and enumerations.
(FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
compatibility code.
2006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/ftoutln.h (enum FT_Orientation): New value
`FT_ORIENTATION_NONE'.
* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
ft_contour_enclosed, ft_outline_get_orientation): Another version of
`FT_Outline_Get_Orientation'. This version differs from the public
one in that each part (contour not enclosed in another contour) of the
outline is checked for orientation.
(FT_Outline_Embolden): Use `ft_outline_get_orientation'.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
use bitmap's embolden routine when the outline one failed.
2006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
* modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
compatibility.
* src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
loading. (Only tested with bit aligned sbit with x_pos == 0.)
* src/truetype/ttpload.c (tt_face_load_hdmx,
tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
actually used.
2006-02-21 David Turner <david@freetype.org>
Add a new API named FT_Get_TrueType_Engine_Type to determine whether
we have a patented, unpatented, or unimplemented TrueType bytecode
interpreter.
The FT_Get_Module_Flags API was removed consequently.
* include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
Replaced with...
(FT_Get_TrueType_Engine_Type): This.
(FT_TrueTypeEngineType): New enumeration.
* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
New macro.
* src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
(FT_Module_Get_Flags): Removed. Replaced with...
(FT_Get_TrueType_Engine_Type): This.
* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
(tt_service_truetype_engine): New service structure.
(tt_services): Register it.
* include/freetype/internal/services/svtteng.h: New file.
* src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
embedded bitmaps from being correctly listed and used.
* src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
libXfont is directly accessing the HMTX data, unfortunately.
Fix some compiler warnings.
(tt_face_get_metrics): Ditto.
* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
character advances.
2006-02-20 David Turner <david@freetype.org>
Support binary compatibility with the X.Org server's Xfont library.
Note that this change unfortunately prevents memory optimizations
for the embedded bitmap loader.
* include/freetype/internal/sfnt.h (SFNT_Interface): Move
`set_sbit_strike' and `load_sbit_metrics' fields to the location of
version 2.1.8.
* src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
FT_Size_Request.
(sfnt_interface): Updated.
* src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
ttsbit0.c.
(tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
* src/sfnt/ttsbit.h: Updated.
2006-02-17 David Turner <david@freetype.org>
* builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
functions anymore. This ensures that all FT_BASE internal functions
are available for dynamic linking.
* include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
[FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
cache sub-system. We try to recognize old legacy signatures with a
gross hack (hope it works).
2006-02-17 Werner Lemberg <wl@gnu.org>
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-02-16 David Turner <david@freetype.org>
Massive changes to the internals to respect the internal object
layouts and exported functions of FreeType 2.1.7. Note that the
cache sub-system cannot be fully retrofitted, unfortunately.
* include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
* include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
include/freetype/cache/ftccmap.h,
include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h,
include/freetype/internal/tttypes.h, src/base/ftcalc.c,
src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
structures.
Move newly added structure elements to the end of the affected
structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
defined) to assure binary compatibility with older FreeType
versions.
Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
functions:
ft_stub_set_char_sizes
ft_stub_set_pixel_sizes
Rename the following internal functions to provide the old function
names as stubs:
FT_Alloc -> ft_mem_alloc
FT_QAlloc -> ft_mem_qalloc
FT_Realloc -> ft_mem_realloc
FT_QRealloc -> ft_mem_qrealloc
FT_Free -> ft_mem_free
FT_Alloc_Debug -> ft_mem_alloc_debug
FT_QAlloc_Debug -> ft_mem_qalloc_debug
FT_Realloc_Debug -> ft_mem_realloc_debug
FT_QRealloc_Debug -> ft_mem_qrealloc_debug
FT_Free_Debug -> ft_mem_free_debug
2006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
unused `max_points' and `max_contours'.
* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
* include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
`max_components'.
* src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
`loadSize' and `loadStack'.
* src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
src/sfnt/ttload.c (tt_face_load_maxp): Update.
* src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
(sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
defined.
* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
(finally!)
For most OpenType tables, `tt_face_load_xxxx' simply loads the table
and `face->root' is set later in `sfnt_load_face'. Here, we try to
make this work for _all_ tables. Also improve tracing messages.
* src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
then exit. Error handling or setting face->root is done later in
`sfnt_load_face'.
* src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
Mac bitmap-only fonts are not scalable.
Check that `face->header.Units_Per_EM' is not zero.
(LOAD_, LOADM_): Emit pretty trace messages.
* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
from `eblc'.
* src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
(load_format_20, load_format_25, tt_face_get_ps_name): Use
face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2006-02-14 Werner Lemberg <wl@gnu.org>
* include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
documentation that negative strength values are possible.
Give an example call.
* include/freetype/freetype.h (FT_GlyphSlotRec): Improve
documentation of `outline' field.
* src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
* src/sfnt/sfdriver.c: Include ttmtx.h.
* src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
return error if table is missing.
Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
* src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
tables. The last change makes Mac bitmap-only font not load and
this fixes it.
* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
error when FT_CONFIG_OPTION_INCREMENTAL is defined.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
splitted from `load_hhea'.
* include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
* src/sfnt/sfobjs.c (sfnt_load_face): Update.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
code...
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. In this pass, we want to treat the
font directory (offset table and table directory) as a normal table
like the others. This also means that TTCs are no longer recognized
there but in `init_face'.
* include/freetype/internal/sfnt.h (SFNT_Interface),
src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
combined and renamed to `load_font_dir'.
* src/sfnt/ttload.h, src/sfnt/ttload.c:
s/sfnt_dir_check/check_table_dir/.
`sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
`tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
and renamed to `tt_face_load_font_dir'.
* src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the
code is moved to the truetype module; `get_metrics' is moved here
from the truetype module so that the code can be shared with the cff
module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
tables' loading and parsing code is moved to here.
Move `tt_face_get_metrics' here from the truetype module. The
return value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
* src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
AF_LatinMetricsRec as the dummy metrics because we cast the metrics
to it later in `af_latin_hints_link_segments'.
2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
to enable autofit CJK script support. (#define'd by default.)
* src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
* src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
that `edge_distance_threshold' is always set.
(af_latin_hints_link_segments): Potential divide-by-zero bug.
Use latin constant in the scoring formula.
* src/autofit/afcjk.c: Minor updates due to the above three changes.
* docs/TODO, docs/CHANGES: Updated.
2006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
Introduce experimental autofit CJK module based on akito's autohint
patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
* src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
Add CJK module based on akito's autohint patch.
* src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
overlap length of the segments.
(AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
* src/autofit/aflatin.h (af_latin_metrics_init_widths),
src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
`FT_LOCAL'.
Use the character given by the caller.
(af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
the thresholds.
* src/autofit/afloader.c (af_loader_load_g): Respect
AF_SCALER_FLAG_NO_ADVANCE.
2006-02-09 Werner Lemberg <wl@gnu.org>
* src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
2006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
2005-11-02).
2006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
option on UNIX platform. It has been broken since 2006-01-11.
2006-02-01 Werner Lemberg <wl@gnu.org>
* src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
* src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
* builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
change from 2006-01-31).
(TOP_DIR, OBJ_DIR): Update.
* builds/unix/install.mk (install): Fix path for ftmodule.h.
* Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
`?=' where appropriate.
* builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
2006-01-31 Werner Lemberg <wl@gnu.org>
Implement new, simplified module selection. With GNU make it is now
sufficient to modify a single file, `modules.cfg', to control the
inclusion of modules and base extension files.
This change also fixes the creation of ftmodule.h; it now depends on
`modules.cfg' and thus is rebuilt only if necessary.
Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
default location.
* modules.cfg: New file.
* builds/freetype.mk: Don't include `modules.mk'.
Include all `rules.mk' files as specified in `modules.cfg'.
(FTOPTION_FLAG, FTOPTION_H): New variables.
(FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
Add FTOPTION_FLAG.
($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
(CONFIG_H): Add FTMODULE_H and FTOPTION_H.
(INCLUDES): Add DEVEL_DIR.
(INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
OBJ_M, OBJ_S): Use `:=', not `='.
(remove_ftmodule_h): New phony target to delete `ftmodule.h'.
(distclean): Add remove_ftmodule_h.
* builds/modules.mk: (MODULE_LIST): Removed.
(make_module_list, clean_module_list): Replace targets
with...
(FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
variables. Reason for the change is that it is not possible to have
a phony prerequisite which is run only if the target file must be
rebuilt (phony prerequisites act like subroutines and are *always*
executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
changed.
Update all callers.
($FTMODULE_H)): Rule to create `ftmodule.h', depending on
`modules.cfg'.
* builds/toplevel.mk: Rewrite and simplify module handling.
(MODULES_CFG, FTMODULE_H): New variables.
Include MODULES_CFG.
(MODULES): New variable to include all `module.mk' and `rules.mk'
files. We no longer use make's `wildcard' function for this.
* Makefile (USE_MODULES): Remove. Update all users.
(OBJ_DIR): Define it here.
* src/*/module.mk: Change
make_module_list: foo
foo: ...
to
FTMODULE_H_COMMANDS += FOO
define FOO
...
endef
in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
* builds/unix/detect.mk (setup): Always execute `configure' script.
(have_mk): Rename to...
(have_Makefile): This.
Don't use `strip' function.
* builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
defined.
(have_mk): Don't use `strip' function.
Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
accordingly).
* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
* builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
BUILD_DIR but DEVEL_DIR for development header files.
* builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
(TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
* builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
development header files.
Don't define PLATFORM.
* configure: Copy `modules.cfg' to builddir if builddir != srcdir.
Update snippet taken from autoconf's m4sh.m4 to current CVS version.
Be more verbose.
* include/freetype/config/ftmodule.h: Add comments -- this file is
no longer used if FreeType is built with GNU make.
* docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
Other minor updates.
* modules.txt: Removed. Contents included in `modules.cfg'.
* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
* src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
[FT_STRICT_ALIASING]: Implement.
2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
(cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
units_per_EM, ascender - descender).
2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/t1types.h (AFM_FontInfo),
src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
`Ascender', and `Descender' from an AFM.
* src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
* include/freetype/freetype.h (FT_FaceRec): Mention that fields may
be changed after file attachment.
2006-01-28 Werner Lemberg <wl@gnu.org>
* src/*/module.mk (.PHONY): Add.
2006-01-27 Werner Lemberg <wl@gnu.org>
* README, docs/FTL.TXT: Fix email address for bug reports.
Other minor formatting.
* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
* src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
(add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
whitespace.
* src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
renderer classes.
2006-01-27 David Turner <david@freetype.org>
* builds/unix/configure.ac: Fix build problem on Cygwin.
* builds/unix/install.mk (install): Don't install the internal
headers, and remove existing ones if found in the target install
directory.
* src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
if the warp hinter isn't active (it shouldn't, still experimental).
* Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
and `otvalid' from the list of modules that are linked statically
to a given FreeType library. Functionality has been moved to the
`ftvalid' CVS module.
Note also that current Make-based build system still compiles the
modules though.
* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
which controls the definitions of the memory management functions to
avoid warnings with recent versions of GCC. This macro is only here
to be disabled, in case we detect problems with the new scheme.
NOTE: Disable macro to use the memory debugger -- this will be fixed
later!
* include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
New versions.
* builds/win32/visualc/freetype.dsp: Updating project file to
define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
compilation.
* builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
macro FT2_BUILD_LIBRARY when compiling the library.
* include/freetype/config/ftheader.h: Remove inclusions of internal
headers except if the macro FT2_BUILD_LIBRARY is defined.
* include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
AFM_FontInfo): Move structure declarations to...
* include/freetype/internal/t1types.h: This file.
* (many files): Fix compiler warnings.
Various minor reorganizations.
* src/cff/cffload.c (cff_font_done): Don't free static array
`subfonts'.
* src/otvalid/otvcommn.c (otv_ClassDef_validate),
src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
Get rid of writable static variables (i.e., the string table) in
afmparse, and fix compilation in FT2_MULTI mode.
* src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
(AFM_MAX_ARGUMENTS): Define...
* src/psaux/afmparse.h: Here.
* src/psaux/Jamfile (_sources): Add afmparse.
* src/psaux/psconv.c: Include psconv.h.
* src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
FT_INTERNAL_POSTSCRIPT_AUX_H.
* src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/freetype.h (FT_Select_Size): Rename the second
argument from `idx' to `strike_index'.
(FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
this enum.
* include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
FT_REQUEST_HEIGHT): New macros to get the width and height of a
request, in fractional pixels.
* include/freetype/internal/ftobjs.h (FT_Select_Metrics,
FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
FT_Request_Metrics): New base functions to set the font metrics. They
were part of FT_Select_Size/FT_Request_Size and are made independent
functions so that metrics are not set again and again.
* src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
only when driver's size_select/size_request is NULL. That is, drivers
should set the metrics themselves.
(FT_Match_Size): Round before matching. This was what we did and it
does cause some problems without rounding.
* src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
(tt_size_select): Set the font metrics.
s/index/strike_index/.
The scaled metrics are always preferred over strikes' metrics, even
when some strike is selected. This is done because the strikes'
metrics are not reliable, e.g., the sign of the descender is wrong for
some fonts.
* src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
(tt_size_request): Set the font metrics.
Call cff_size_select/tt_size_select when some strike is matched.
* src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
Set the font metrics.
s/index/strike_index/.
* src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
files were committed. Just a catch-up.
(PS_Conv_ToFixed): Remove the `goto'.
(PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
* src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
(tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
advertised metrics in `available_sizes' are different from those
actually used.
2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
* src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2006-01-22 Werner Lemberg <wl@gnu.org>
* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
`texinfo' CVS module at savannah.gnu.org.
2006-01-21 Werner Lemberg <wl@gnu.org>
* src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
* src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
to avoid compiler warnings.
* src/autofit/afwarp.c (af_warper_compute_line_best): Remove
shadowing variable declarations.
Fix warning parameters and replace printf with AF_LOG.
(af_warper_compute): Remove unused variable.
2006-01-20 David Turner <david@freetype.org>
Adding experimental implementation of `warp hinting' (new hinting
algorithm for gray-level and LCD rendering). It is disabled by
default, you need to #define AF_USE_WARPER in aftypes.h.
* src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
New function.
* src/autofit/afhints.h: Updated.
* src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
(af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
FT_RENDER_MODE_NORMAL if an LCD mode is selected.
(af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
appropriately.
* src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
Isolate code for adjusting metrics.
* src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
default).
* src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
* src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
* src/autofit/Jamfile (_sources): Add afwarp.
2006-01-19 David Turner <david@freetype.org>
* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
2006-01-19 Brian Weed <bw@imaginengine.com>
* builds/win32/visualc/freetype.dsp: Updated.
2006-01-17 Werner Lemberg <wl@gnu.org>
Use pscmap service in CFF module.
* src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
(cff_sid_to_glyph_name): New function.
(cff_cmap_unicode_init, cff_cmap_unicode_done,
cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
service.
(cff_cmap_unicode_class_rec): Updated.
* src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
* src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
return value.
* src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
to avoid compiler warnings regarding type-punning.
2006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
implement an AFM parser.
* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
conversion functions (e.g., PS real number => FT_Fixed) for the
PS_Parser and AFM_Parser. Some of the functions are taken, with
some modifications, from the file psobjs.c.
* src/psaux/psobjs.c: Use functions from psconv.c.
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
`AFM_Parser' to the `psaux' service.
* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
those new files.
* src/tools/test_afm.c: A test program for AFM parser.
* include/freetype/internal/services/svkern.h: New file providing a
`Kerning' service. It is currently only used to get the track
kerning information.
* include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
macro.
* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
src/type1/t1afm.h: Update to use the AFM parser.
Provide the `Kerning' service.
* include/freetype/freetype.h, src/base/ftobjs.c: New API
`FT_Get_Track_Kerning'.
2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
* docs/CHANGES: Mention that vertical metrics are synthesized for
fonts not having this info.
2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
vertical metrics.
* src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
which are monotone.
* src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
formattings in vertical metrics faking. There is still room for
improvements (and so does the CFF module).
2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
(PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
the linear advance fields as they are only used by the outline
glyphs.
* include/freetype/freetype.h: Documentation updates and
clarifications.
The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
change need be made to the code.
* src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
decide whether to use the auto-hinter according to documentation.
There should to be no real difference.
Some checks (e.g., is text height positve?) after the glyph is
loaded.
(FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
Be careful that scales won't be negative.
2006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
* docs/CHANGES: Mention the size selection change.
* src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
matching for requests of type NOMINAL and REAL_DIM.
* src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
`pixel_height' is used for nominal height.
* src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
face is bitmap only and driver doesn't provide `request_size'. This
is added merely for completion as no driver satisfies the conditions.
2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
Introduce new size selection interface.
* include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
`select_size'.
* include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
(FT_Select_Size, FT_Request_Size): API additions to export the new
size selection interface.
* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
`FT_Request_Size'.
* include/freetype/internal/ftobjs.h (FT_Match_Size),
src/base/ftobjs.c (FT_Match_Size): New function to match a size
request against `available_sizes'. Drivers supporting bitmap strikes
can use this function to implement `request_size'.
* src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
Update to new size selection interface.
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
selection interface.
Make `strike_index' FT_ULong and always defined.
Use `load_strike_metrics' provided by SFNT interface.
2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/sfnt.h (SFNT_Interface): New method
`load_strike_metrics' used to load the strike's metrics.
* src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
nominal size unless it is obviously incorrect.
* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
FNT driver.
2006-01-12 Werner Lemberg <wl@gnu.org>
Prepare use of pscmap service within CFF module.
* include/freetype/internal/services/svpscmap.h: Include
FT_INTERNAL_OBJECTS_H.
(PS_Unicode_Index_Func): Removed. Unused.
(PS_Macintosh_Name_Func): Renamed to...
(PS_Macintosh_NameFunc): This.
Update all callers.
(PS_Adobe_Std_Strings_Func): Renamed to...
(PS_Adobe_Std_StringsFunc): This.
Update all callers.
(PS_UnicodesRec): This is the former `PS_Unicodes' structure.
Add `cmap' member.
Update all callers.
(PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
Update all callers.
(PS_Glyph_NameFunc): New typedef.
(PS_Unicodes_InitFunc): Change arguments to expect a function
and generic data pointer which returns a glyph name from a given
index.
* src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
ps_unicodes_char_next, pscmaps_interface): Updated.
* include/freetype/internal/t1types.h (T1_FaceRec): Updated.
* src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
(T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
* src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
(t1_cmap_unicode_init, t1_cmap_unicode_done,
t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
t1_cmap_unicode_class_rec): Updated.
* src/type42/t42types.h (T42_FaceRec): Updated.
2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* include/freetype/ftmac.h: Add declaration of new functions
FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
were introduced by the jumbo patch on 2006-01-11.
2006-01-11 Werner Lemberg <wl@gnu.org>
Fix Savannah bug #15056 and use pscmap service in psaux module.
* include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
FT_UInt32 for `glyph_index'.
(PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
(PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
(PS_Unicodes_CharNextFunc): Make second argument a pointer to
FT_UInt32.
* src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
(ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
variant glyph (this is, it has non-leading `.' in its name).
(compare_uni_maps): Sort base glyphs before variant glyphs.
(ps_unicodes_init): Use FT_String for `glyph_names' argument.
Reallocate only if number of used entries is much smaller.
Updated to handle variant glyphs.
(ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
over variant glyphs.
Simplify code.
* src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
(t1_cmap_unicode_init, t1_cmap_unicode_char_index,
t1_cmap_unicode_char_next): Use pscmap service.
(t1_cmap_unicode_done): Updated.
* src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
(T1_CMapUnicode): Use PS_Unicodes structure.
2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
Intel, as reported by Sean McBride <sean@rogue-research.com> on
2005-08-24.
* src/base/ftmac.c: Heavy change to build without deprecated Carbon
functions on Tiger.
* builds/unix/configure.ac: Add options and autochecks for Carbon
functions availabilities, for MacOS X.
* builds/mac/ascii2mpw.py: Add converter for character `\305'.
* builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
macros to avoid unavailable functions.
ftmac.c must be compiled without `-strict ansi', because it disables
cpp macro to use ToolBox system call.
* builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
macros to avoid unavailable functions.
* builds/mac/README: Detailed notes on function availabilities.
* docs/CHANGES: Notes about (possible) incompatibilities.
2006-01-08 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.
2006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
* include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
declaration.
* src/base/ftobjs.c (FT_Module_Get_Flags): New function.
2006-01-07 Werner Lemberg <wl@gnu.org>
* src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
`bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
* src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
Reported by Niels Boldt <nielsboldt@gmail.com>.
2005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
MPW compiler.
2005-12-23 David Turner <david@freetype.org>
* Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
refdoc' works correctly to generate the API reference in
`docs/reference'.
* src/tools/docmaker/tohtml.py (print_html_field,
print_html_field_list): Update to output nicer fields lists in the
API reference.
* src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
forces auto-hinting.
* freetype/freetype.h: Updating the documentation for
FT_LOAD_TARGET_XXX and FT_Render_Mode values.
2005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
unsupported formats (fbit, NFNT). The number of available faces are
passed via face->num_faces. If bitmap faces are embedded in sfnt
resource, face->num_fixed_size is correctly set. In public API,
FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
* doc/CHANGES: Mention the changes.
2005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
* src/truetype/ttinterp.c (Update_Max): Set current size of buffer
correctly (so that memory debug system won't panic).
2005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
* include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
* src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
(cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
* doc/CHANGES: Mention the changes.
2005-12-13 David Turner <david@freetype.org>
Change the implementation of the LIGHT hinting mode to completely
disable horizontal hinting. This is an experimental effort to
integrate David Chester's latest patch without affecting the other
hinting modes as well.
Note that this doesn't force auto-hinting for all fonts, however.
* src/autofit/afhints.c (af_glyph_hints_reload): Don't set
scaler_fiags here but...
(af_glyph_hints_rescale): Here.
* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
hinting for `light' hinting mode.
* Jamfile: Small fix to ensure that ftexport.sym is placed into the
same location as other generated objects (i.e., within the `objs'
directory of the current directory).
Add support for an embedded `BDF ' table within SFNT-based bitmap
font files. This is used to store atoms & properties from the
original BDF fonts that were used to generate the font file.
The feature is controlled by TT_CONFIG_OPTION_BDF within
`ftoption.h' and is used to implement FT_Get_BDF_Property for these
font files.
At the moment, this is still experimental, the BDF table format
isn't cast into stone yet.
* include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
macro.
* include/freetype/config/ftstdlib.h (ft_memchr): New macro.
* include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
[TT_CONFIG_OPTION_BDF]: New structure.
(TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
* include/freetype/ttags.h (TTAG_BDF): New macro.
* src/sfnt/Jamfile (_sources): Add ttbdf.
* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
* src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
FT_SERVICE_BDF_H.
(sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
(sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
(sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
* src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
* src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
(sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
tt_face_free_bdf_props.
* src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
2005-12-07 Werner Lemberg <wl@gnu.org>
* src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
* src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
2005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
* src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
initialized twice.
size->strike_index is not initialized.
2005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
* src/type42/t42objs.c (T42_Face_Init): Replace call to
FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
2005-11-30 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Document ftdump's `-v' option.
Document latest charmap code changes.
* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
tt_cmap12_char_map_binary): Fix compiler warnings.
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
Major update to distinguish between unsorted and overlapping
segments for cmap format 4. For overlapping but sorted segments,
which is previously considered unsorted, we still use binary search.
* src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
* src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
(TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
(tt_cmap4_reset): Removed.
(tt_cmap4_init): Updated accordingly.
(tt_cmap4_next): Updated accordingly.
Take care of overlapping segments.
(tt_cmap4_validate): Make sure the subtable is large enough.
Do not check glyph_ids because some fonts set the length wrongly.
Also, if all segments have offset 0, glyph_ids is always invalid.
It does not cause any problem so far only because the check misses
equality.
Distinguish between unsorted and overlapping segments.
(tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
to do `charcode => glyph index' by linear/binary search.
(tt_cmap4_char_index, tt_cmap4_char_next): Use
tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
(tt_face_build_cmaps): Treat the return value of validator as flags
for cmap.
2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
* src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
New structures and functions for fast `next char'.
(tt_cmap12_char_map_binary): New function to do `charcode => glyph
index' by binary search.
(tt_cmap12_char_index, tt_cmap12_char_next): Use
tt_cmap12_char_map_binary.
(tt_face_build_cmaps): Check table and offset correctly (equality is
missing).
2005-11-15 Detlef W