Commit Graph

789 Commits

Author SHA1 Message Date
David Turner 281679de85 * include/freetype/internal/tttypes.h, src/autofit/afangles.c,
src/autofit/afcjk.c, src/autofit/afhints.c, src/autofit/aflatin.c,
        src/autofit/aftypes.h, src/base/ftcalc.c, src/base/ftoutln.c,
        src/gzip/ftgzip.c, src/psaux/psconv.c, src/truetype/ttgload.c,
        src/type1/t1gload.c:

          this is a major patch used to drastically improve the performance
          of loading glyphs. This both speeds up loading the glypn vector
          themselves and the auto-fitter.

          note that we've started using inline assembler with GCC to
          implement FT_MulFix, given that this function is so damn
          important for the engine's performance.

          the resulting speed-up is about 25%.
2006-05-17 13:34:21 +00:00
Werner Lemberg 22d34421ab Add final newline. 2006-05-12 14:24:33 +00:00
Werner Lemberg e12a471f6a * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
Convert some files to UTF-8.
2006-05-12 14:20:43 +00:00
Werner Lemberg 2ee71f1f01 More minor fixes. Move `version' section to the end of freetype.h so that
the library compiles actually.
2006-05-12 13:55:04 +00:00
Werner Lemberg 6756dc15ba * src/tools/docmaker/sources.py (re_source_keywords): Add word
boundary markers.
* src/tools/docmaker/content.py (re_field): Allow `.' in field names
(but not at the beginning or end).

* include/freetype/*: Many minor documentation improvements (adding
links, spelling errors, etc.).
2006-05-12 08:00:13 +00:00
Werner Lemberg fd74ec68b4 * README: Minor updates.
* include/freetype/*: s/scale/scaling value/ where appropriate.
Many other minor documentation improvements.

* src/tools/docmaker/sources.py (re_italic, re_bold): Handle
trailing punctuation.
* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
warning message for undefined cross references.
Update handling of re_italic and re_bold.
2006-05-12 04:00:44 +00:00
Werner Lemberg 1639c79482 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
* builds/unix/configure.ac (version_info): Set to 9:10:3.

* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
Minor updates.

* docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
Updated.

* builds/unix/install-sh: Updated from `texinfo' CVS module at
savannah.gnu.org.

* devel/ftoption.h: Synchronize with
include/freetype/config/ftoption.h.
2006-05-06 16:44:58 +00:00
Werner Lemberg a94746caee Formatting. 2006-05-03 20:39:55 +00:00
David Turner 679a252c24 * include/freetype/internal/ftmemory.h: allow compilation with
C++ compilers
2006-05-03 09:40:33 +00:00
Werner Lemberg 58eed04d5a * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed. 2006-05-02 22:26:09 +00:00
Werner Lemberg c6afa1221a * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
(FT_ALLOC): Remove redundant redefinition.

* builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
`-Wstrict-prototypes'.

* src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.

Formatting, copyright years.
2006-05-02 22:22:16 +00:00
David Turner 9482ba50b7 * include/freetype/ftstream.h, src/base/ftstream.c: modifying
various frame-related functions to report the place where the
    frames were entered/extracted/exited/released in the memory debugger.
2006-05-02 10:21:28 +00:00
David Turner 9ca782569c * include/freetype/internal/ftmemory.h, src/base/ftbitmap.c,
src/base/ftmac.c, src/base/ftrfork.c, src/lzw/ftzopen.c,
    src/raster/ftrend1.c, src/sfnt/ttpost.c, src/truetype/ttgxvar.c,
    src/type42/t42parse.c, src/winfonts/winfnt.c: hardening the code
    against out-of-bounds conditions when allocating arrays. This is
    for the cases where FT_NEW_ARRAY and FT_RENEW_ARRAY are not used
    already. Introducing the new FT_ALLOC_MULT and FT_REALLOC_MULT
    macros.
2006-05-02 09:00:29 +00:00
David Turner 264f307e66 * include/freetype/fterrdef.h, include/freetype/config/ftconfig.h,
include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c,
    src/base/ftutil.c: udpating the memory management functions and
    macros to safely deal with array size buffer overflows, this
    corresponds to attemps to allocate arrays that are too large. For
    an example, consider the following code:

         count = read_uint32_from_file();
         array = malloc( sizeof(Item) * count );
         for ( nn = 0; nn < count; nn++ )
           array[nn] = read_item_from_file();

    if 'count' is larger than FT_UINT_MAX/sizeof(Item), the multiplication
    will overflow and the array allocated will be smaller than the data
    read from the file. In this case, the heap will be trashed, and this
    can be used as a denial-of-service, or make the engine crash later.

    the FT_ARRAY_NEW and FT_ARRAY_RENEW macro now check that the new
    count is no more than FT_INT_MAX/item_size, otherwise, a new error,
    named 'FT_Err_Array_Too_Large' will be returned.

    note that the memory debugger now works again when FT_DEBUG_MEMORY
    is defined, and FT_STRICT_ALIASING has disappeared, the corresponding
    code being now the default.
2006-05-02 06:34:27 +00:00
Werner Lemberg 8fe6539026 Further C library abstraction. Based on a patch from
msn2@bidyut.com.

* include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
C library functions.  Update all users accordingly (and catch some
other places where the C library function was used instead of the
wrapper functions).

* src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
* src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
include malloc.h.
2006-04-29 07:31:16 +00:00
Werner Lemberg 8a8c6022bf Formatting, copyright years, documentation. 2006-04-22 12:24:52 +00:00
David Turner 8e438ead71 * include/freetype/ftincrem.h, include/freetype/ftmodapi.h,
include/freetype/freetype.h: Documentation update
2006-04-21 08:35:11 +00:00
David Turner 7dc7f21533 doc updates
- fixing FT_Stroker_New to use a FT_Library instead of a FT_Memory

i know, i know, the ChangeLog will be updated later
2006-04-13 16:31:02 +00:00
Werner Lemberg 4091786c81 Formatting. 2006-04-01 18:49:07 +00:00
David Turner 0f15e1c181 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
updating documentation comments
2006-04-01 16:11:53 +00:00
David Turner 9da74d844b updating cache documentation 2006-04-01 09:14:12 +00:00
Werner Lemberg 26170df08b * src/bdf/bdflib.c (ERRMSG4): New macro.
(_bdf_parse_glyphs): Handle invalid BBX values.

* include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
macro.
2006-03-26 07:19:07 +00:00
Werner Lemberg b6f6d2479a _not filtered_ -> _not_ _filtered_ 2006-03-25 03:08:26 +00:00
Werner Lemberg d6e2498f74 * src/tools/docmaker/tohtml.py (make_html_para): Convert `...' quotations
into real left and right single quotes.
Use `para_header' and `para_footer'.

* src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'" also.
2006-03-24 18:31:47 +00:00
Werner Lemberg af16820a12 Normalize quotation to `...'. 2006-03-24 12:46:49 +00:00
Werner Lemberg 4db32ecbc5 * docs/CHANGES: Updated.
* src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
padding between table elements.


Formatting, copyright years.
2006-03-24 11:54:53 +00:00
David Turner 2ce9203735 - added FT_Get_SubGlyph_Info API to freetype.h
- small fix to lsb/rsb delta computations
- cleaning up Jamfile
2006-03-23 20:58:20 +00:00
Werner Lemberg d8776b3439 Improve documentation of `FT_LOAD_MONOCHROME'. 2006-03-22 20:33:48 +00:00
Werner Lemberg 5a73d8d20f * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
(FREETYPE_H): Updated.

* src/cache/rules.mk (CACHE_H_DIR): Remove.
(CACHE_DRV_H): Updated.

Formatting, copyright years.
2006-03-20 16:55:32 +00:00
David Turner 256de4b18f * include/freetype/cache/ftccache.h,
include/freetype/cache/ftccmap.h,
    include/freetype/cache/ftcglyph.h
    include/freetype/cache/ftcimage.h
    include/freetype/cache/ftcmanag.h
    include/freetype/cache/ftcmru.h
    include/freetype/cache/ftcsbits.h:
      removing these header files from the public include directory.

    * include/freetype/config/ftheader.h:
      changing the definition of FT_CACHE_INTERNAL_XXX_H macros to
      redirect to FT_CACHE_H instead

    * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccache.h,
    src/cache/ftccback.h, src/cache/ftccmap.c, src/cache/ftcglyph.c,
    src/cache/ftcglyph.h, src/cache/ftcimage.c, src/cache/ftcimage.h,
    src/cache/ftcmanag.c, src/cache/ftcmanag.h, src/cache/ftcmru.c,
    src/cache/ftcmru.h, src/cache/ftcsbits.c, src/cache/ftcsbits.h:
      modifications to prevent using the FT_CACHE_INTERNAL_XXX_H macros,
      and grab the headers in 'src/cache' instead (see below).
2006-03-20 12:10:24 +00:00
Werner Lemberg c07ee52005 * include/freetype/cache/ftccache.h
[FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
ftc_node_done.
2006-02-27 18:13:12 +00:00
Werner Lemberg 7f049f4221 Formatting, copyright years. 2006-02-25 16:52:16 +00:00
David Turner de271ab8f0 * builds/unix/ftsystem.c, include/freetype/config/ftheader.h,
include/freetype/internal/services/svotval.h,
    include/freetype/internal/services/svpfr.h,
    src/base/ftsystem.c, src/bdf/bdfdrivr.c, src/cache/ftcbasic.c,
    src/cff/cffcmap.c, src/gzip/ftgzip.c, src/lzw/ftlzw.c,
    src/lzw/ftlzw2.c, src/psaux/t1cmap.c, src/sfnt/ttbdf.c,
    src/smooth/ftgrays.c:

       solved -Wmissing-prototypes warnings with GCC
2006-02-25 14:53:02 +00:00
David Turner 6c71c6b968 * include/freetype/config/ftoption.h, src/autofit/afcjk.c,
src/base/ftobjs.c, src/base/ftutil.c, src/cff/cffobjs.c,
    src/psaux/afmparse.c, src/sfnt/ttbdf.c, src/tools/apinames.c,
    src/truetype/ttdriver.c:

       solved compiler warnings as well as C++ compilation problems
2006-02-25 12:49:40 +00:00
Werner Lemberg d7e6b76739 Formatting, copyright years, minor cleanups. 2006-02-25 06:24:28 +00:00
Wu, Chia-I (吳佳一) 032646139d * 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 rendering
the outline confuses some applications.
2006-02-24 11:18:40 +00:00
Wu, Chia-I (吳佳一) a8e7a01965 * 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-24 06:11:30 +00:00
Werner Lemberg d4303da035 formatting, copyright years. 2006-02-23 21:01:34 +00:00
Wu, Chia-I (吳佳一) 890f807a7b * 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 20:47:39 +00:00
Werner Lemberg 0d9be1c31e Fix comment so that it is included into the HTML documentation. 2006-02-22 14:28:06 +00:00
David Turner cdb610f624 adding missing file 2006-02-22 12:55:04 +00:00
Werner Lemberg 5edafed12a Clean-ups, copyright years, formatting. 2006-02-22 08:23:35 +00:00
David Turner 0b5dc4df88 * include/freetype/ftmodapi.h, include/internal/ftserv.h,
include/internal/services/svtteng.h, src/base/ftobjs.c,
    src/truetype/ttdriver.c:

    adding a new API named FT_Get_TrueType_Engine_Type to determine
    wether we have a patented, unpatented or unimplemented TrueType
    bytecode interpreter.

    the FT_Get_Module_Flags API was removed consequently.
2006-02-21 22:36:23 +00:00
Werner Lemberg d41aecdbc0 formatting, doc improvements 2006-02-21 08:08:14 +00:00
David Turner dd0f3609d7 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit.c: moving the definition
        of 'set_sbit_strike' and 'load_sbit_metrics' to their 2.1.8
        location. This is used to support binary compatibility with
        the X.Org server's libXfont library.

        note that this disables memory optimizations for the embedded
        bitmap loader.Sigh....
2006-02-20 23:50:21 +00:00
Werner Lemberg f145e312df Formatting, copyright years, minor doc fixes. 2006-02-19 16:12:18 +00:00
David Turner 0880ac333a * builds/unix/unix-cc.in: don't filter-out exported functions
anymore, this is used to ensure that all FT_BASE internal
    functions are available for dynamic linking

    * include/freetype/ftcache.h, src/cache/ftcbasic.c,
    src/cache/ftccmap.c: try to revive old functions of the
    cache sub-system. We also try to support FTC_ImageCache_Lookup
    and FTC_ImageCache_SBit with legacy signatures through a gross
    hack (hope it works)
2006-02-17 17:23:13 +00:00
Werner Lemberg 8e6f8c4d79 Formatting, copyright years, documentation improvements. 2006-02-17 08:07:09 +00:00
David Turner cda2d957dc * builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
      include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
      include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
      include/freetype/internal/ftdriver.h,
      include/freetype/internal/ftmemory.h,
      include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.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/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
      src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
      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:

    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.
2006-02-16 22:45:31 +00:00
Wu, Chia-I (吳佳一) 0d565fdc1d * 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.

* 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'.
Pretty trace messages.

* 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_): 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-15 07:44:31 +00:00