Commit Graph

623 Commits

Author SHA1 Message Date
Werner Lemberg 2f41b184be Another small fix from Francesco. 2001-05-08 13:54:36 +00:00
Werner Lemberg fc26ecd9d3 formatting 2001-05-08 13:52:13 +00:00
David Turner 750ddcd576 * src/pcfdriver.c: fixed incorrect bitmap width computation
* docs/docmaker.py: updated the DocMaker script in order to add
    command line options (--output,--prefix,--title), fix the erroneous
    line numbers reported during errors and warnings, and other formatting
    issues..

    * src/base/ftcalc.c: various tiny fixes related to rounding in 64-bits
    routines and pseudo"optimisations" :-)
2001-05-08 12:58:07 +00:00
David Turner e6d4518f80 * src/base/ftbbox.c (BBox_Cubic_Check): fixed the coefficient
normalization algorithm (invalid final bit position, and invalid
	shift computation..)
2001-04-27 09:49:27 +00:00
Werner Lemberg 3780273e3e * builds/unix/config.guess, builds/unix/config.sub: Updated to
latest versions from gnu.org.

* builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.

* include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
uncoditionally.
* src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
Fix compiler warnings.
* src/base/ftcalc.c: Fix (potential) compiler warnings.

* src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
fixed-point square root computation.  It is now used even with
64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
* src/base/ftbbox.c: Removed invalid "#include FT_BEZIER_H" line.
* src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
direct computations with 16.16 values instead of sub-divisions.  It
is now slower, but proves a point :-)
* src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
Fixed the bezier stack depths.
* src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
* builds/beos: Added BeOS-specific files to the old build system
(no changes were necessary to support BeOS in the Jamfile though).
* ftconfig.h, ftoption.h: Updated "ftconfig.h" to detect 64-bit int
types on platforms where Autoconf is not available).  Also removed
FTCALC_USE_LONG_LONG and replaced it with
FT_CONFIG_OPTION_FORCE_INT64.
* builds/win32/freetype.dsp: Updated the Visual C++ project file.
Doesn't create a DLL yet.
* cffgload.c: Removed a compilation warning.
2001-04-26 13:34:36 +00:00
David Turner c2cd00443b minor optimisations in ftcalc.c 2001-04-26 00:21:48 +00:00
David Turner ec46b28df7 * src/base/ftcalc.c (FT_SqrtFixed): corrected/optimised the 32-bit
fixed-point square root. it is now used even with 64-bits
	ints, as it's simply _much_ faster than calling FT_Sqrt64 :-)

    * src/base/ftbbox.c : removed invalid "#include FT_BEZIER_H" line
2001-04-25 22:56:30 +00:00
David Turner caf72cd6e5 * src/base/ftbbox.c (BBox_Cubic_Check): rewrote function to use
direct computations with 16.16 values instead of sub-divisions.
        It is now slower, but proves a point :-)

        * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c :
        fixed the bezier stack depths..

        * src/base/ftcalc.c (FT_MulFix): minor rounding fix

        * builds/beos : added BeOS-specific files to the old build system
        (no changes were necessary to support BeOS in the Jamfile though)
2001-04-25 18:11:16 +00:00
David Turner 6d4fbec1b8 * ftconfig.h, ftoption.h: updated "ftconfig.h" to detect 64-bit int
types on platforms where Autoconf is not available). Also removed
	FTCALC_USE_LONG_LONG and replaced it with FT_CONFIG_OPTION_FORCE_INT64

	* builds/win32/freetype.dsp: updated the Visual C++ project file. Doesn't
	create a DLL yet..

	* cffgload.c: removed a compilation warning
2001-04-20 08:50:36 +00:00
Tom Kacvinsky 9d770c90d1 Fix typos (entires -> entries). 2001-04-11 18:40:27 +00:00
Werner Lemberg ef6ebd6351 formatting 2001-04-11 18:09:49 +00:00
Tom Kacvinsky cad797e6f1 In function parse_charstrings, changed code for placing .notdef glyph
into slot 0 so that we no longer have a memory access violation.
2001-04-10 18:15:17 +00:00
Tom Kacvinsky 60ee2812b1 In structure T1_Loader, added swap_table (of type PS_Table) to
facilitate placing the .notdef glyph in slot 0.
2001-04-10 18:13:28 +00:00
Werner Lemberg 800f5096c1 * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
* builds/dos/detect.mk: Add support for bash.
2001-04-10 13:59:58 +00:00
Werner Lemberg cbc9938e68 * builds/os2/*.mk: These files have been forgotten to update to
the structure of similar makefiles.
* builds/dos/*.mk: Ditto.
* builds/ansi/*.mk: Ditto.

* builds/win32/win32-def.mk (BUILD): Fix typo.

* builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
This is already used in the link_*.mk files.


* src/*/Jamfile: Slight changes	to make files more cryptic.
2001-04-06 07:05:50 +00:00
Werner Lemberg a1844e0927 * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
to give files identical structure.
2001-04-03 21:07:36 +00:00
Werner Lemberg 1429db6c4f * README: Formatting.
* Jamfile: Fix typo.

* src/cff/cffparse.c: Move error code #defines to...
* include/freetype/internal/cfferrs.h: This file.
* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
`FT_Err_*' with `CFF_Err_*'.
* src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
* src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
* src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
`TT_Err_*'.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
* src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.

* include/freetype/internal/cfferrs.h: Add
`CFF_Err_Unknown_File_Format'.
* include/freetype/internal/t1errors.h: Add
`T1_Err_Unknown_File_Format'.
* include/freetype/internal/tterrors.h: Add
`TT_Err_Unknown_File_Format'.

* src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
references.
* src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.

* src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
FT_LOCAL_DEF.
* src/cid/cidobjs.c (CID_Done_Driver): Ditto.
* src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
Ditto.
* src/type1/t1objs.c (T1_Done_Driver): Ditto.
* src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
* src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
2001-04-02 23:54:01 +00:00
Tom Kacvinsky 4a1bc8fcf6 In function TT_Load_Metrics, fix improper an improper pointer dereference.
Submitted by herbert duerr <duerr@sun.com>
2001-04-02 17:47:16 +00:00
David Turner 5bf0a39485 * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles
to the source tree. see www.freetype.org/jam/index.html for details
2001-03-24 17:10:09 +00:00
Werner Lemberg 521a2d7a13 * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
Renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to
FT_SFNT_NAMES_H.
* docs/docmaker.py: Added generation of INDEX link in table of
contents.
* INSTALL, docs/BUILD: Updated documentation to indicate that the
compilation process has changed slightly (no more `src' required in
* builds/*/*-def.mk: Changed the objects directory from "obj" to
"objs".
* include/freetype/config/ftheader.h: Removed obsolete macros like
FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
were previously defined in <freetype/ftcache.h>.  Added comments to
be included in a new API Reference section.

* src/*/*: Removed the use of FT_SOURCE_FILE, etc.  Now, each
component needs to add its own directory to the include path at
compile time.  Modified all "rules.mk" and "descrip.mms"
accordingly.

* src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
compiler warnings in pedantic modes.
* include/config/ft2build.h, include/config/ftheader.h: The file
top-level <ft2build.h>.

* include/config/ftheader.h: Added new section describing the #include
macros.


the Type 2 glyph charstring (used by conversion programs).
* docs/docmaker.py: Added cross-references generation as well as


seac emulation provided by the Type 2 endchar operator.


* src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
Added support for clipped direct rendering in the smooth renderer.


* src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
2001-03-20 22:58:56 +00:00
David Turner 6ce03efb12 * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to FT_SFNT_NAMES_H

	* docs/docmaker.py: added generation of INDEX link in table of contents
2001-03-20 14:50:04 +00:00
David Turner 8d3a401fa8 * builds/*/*-def.mk: changed the objects directory from "obj" to "objs"
* include/freetype/config/ftheader.h: removed obsolete macros like
	FT_SOURCE_FILE, etc.. and added cache-specific macro definitions that
	were previously defined in <freetype/ftcache.h>. Added comments to be
	included in a new API Reference section.

	* src/*/*: removed the use of FT_SOURCE_FILE, etc.. now, each component
	needs to added its own directory to the include path at compile time.
	Modified all "rules.mk" and "descrip.mms" accordingly..
2001-03-20 11:14:24 +00:00
Tom Kacvinsky f3dad68be8 In function parse_font_matrix(), make sure that the units per em value
is assigned an unsigned short value, first by shifting right 16 bits,
then by casting the results to FT_UShort.
2001-03-19 13:52:31 +00:00
Tom Kacvinsky 70d6f38ed2 Change units per EM assignment in cff_parse_font_bbox(). 2001-03-19 13:44:15 +00:00
David Turner 3798110fc7 fixed a small bug 2001-03-19 11:34:49 +00:00
David Turner 168e39a15b small update to remove compiler warnings 2001-03-17 23:25:34 +00:00
Tom Kacvinsky c24eff8d83 Another minor typo fix in cff_parse_font_bbox(). 2001-03-17 19:01:25 +00:00
Tom Kacvinsky b2712e2ef5 Corrected a typo in function cff_parse_font_bbox(). 2001-03-17 16:46:25 +00:00
Tom Kacvinsky ea48f4588a In function cff_parse_font_bbox(), obtain rounded FT_Fixed values for the
bounding box numbers.
2001-03-17 16:38:49 +00:00
Tom Kacvinsky 8958d03ad1 In function CFF_Init_Face(), when we process a pure CFF font, set
`root->ascender' (`root->descender') to the integer part of the
`root->bbox.yMax' (`root->bbox.yMin', respectively).
2001-03-17 16:36:51 +00:00
Tom Kacvinsky 84ad2a2205 Added function get_cff_glyph_name() in order to facilitate getting a
glyph name for glyph index via FT_Get_Glyph_Name().

In function cff_get_interface(), added support for getting a glyph
name via the "glyph_name" module interface (used in the function
FT_Get_Glyph_Name()).  We use the new function get_cff_glyph_name().
2001-03-16 15:03:13 +00:00
Tom Kacvinsky b9561b78c3 In function CFF_Init_Face(), logical or the face flags with
FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
not defined.  This is to add support for getting a glyph name from a
glyph index vi FT_Get_Glyph_Name().
2001-03-16 13:40:50 +00:00
Tom Kacvinsky 8316bc596d In function CFF_Parse_CharStrings(), added support for deprecated
operator "dotsection".

Submitted by Sander van der Wal <svdwal@xs4all.nl>
2001-03-16 13:35:56 +00:00
Werner Lemberg 9a8b536fb9 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
messages.

* INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
2001-03-12 22:33:52 +00:00
Tom Kacvinsky 68621135db In cid_read_subrs, decode subroutines only if lenIV >= 0. 2001-03-12 02:17:50 +00:00
Tom Kacvinsky e355d008b3 In cid_load_glyph, decrypt charstrings only if lenIV >= 0. 2001-03-12 02:05:17 +00:00
Tom Kacvinsky 9b59f2c385 In function T1_Decoder_Parse_Charstrings, take into account lenIV seed
bytes at the start of a decrypted subroutine.
2001-03-12 01:42:38 +00:00
Werner Lemberg 22e812a8c4 * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
avoid compiler warnings.
2001-03-11 13:11:43 +00:00
Werner Lemberg 29bac136cb * TODO: Updated.
* src/cid/cidload.c (parse_font_matrix): Added units_per_EM
* src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
2001-03-11 11:28:39 +00:00
Tom Kacvinsky e5b8bbb892 In function T1_Init_Face, changed the assignment code for ascender,
descender, and max_advance_width.
2001-03-10 19:10:25 +00:00
Tom Kacvinsky 5d362b6b44 Changed parse_font_bbox to use FT_Fixed values for the bbox
assignment, and use rounded values instead.
2001-03-10 19:08:44 +00:00
Tom Kacvinsky 00169a309e In CID_Init_Face, use calculated units_per_EM, and if that is not available, default
to 100 units per EM.  Changed assignment code for ascender and descender values.
2001-03-10 19:06:54 +00:00
Tom Kacvinsky 025c2f3fb6 Added units_per_EM processing to parse_font_matrix, and added FT_Fixed
number handling to parse_font_bbox.
2001-03-10 19:04:41 +00:00
Tom Kacvinsky c2f44c1608 Added implementation of three new functions: FT_RoundFix, FT_CeilFix,
and FT_FloorFix.
2001-03-10 19:02:51 +00:00
Werner Lemberg 914b289f16 * src/*/*.c: Added many casts to make code more 64bit-safe. 2001-03-10 17:07:42 +00:00
Tom Kacvinsky bdcfd5246d Minor correction in T1_Init_Face: we must wait until parse_font_bbox
is changed before we use logical shift rights in the assignments of
`root->ascender', `root->descender', and `root->max_advance_width'.
2001-03-07 20:53:08 +00:00
Tom Kacvinsky 3f06635b12 2001-03-07 Tom Kacvinsky <tjk@ams.org>
* src/type1/t1objs.c (T1_Done_Face): Free `char_name' table to
	avoid a memory leak.
	Submitted by Sander van der Wal <svdwal@xs4all.nl>
2001-03-07 20:42:18 +00:00
Werner Lemberg 2e35c9b406 formatting 2001-03-06 13:56:42 +00:00
Tom Kacvinsky e20035ae3c 2001-03-05 Tom Kacvinsky <tjk@ams.org>
* src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
	the Type 2 glyph charstring (used by conversion programs).
	Submitted by Ha Shao <hashao@chinese.com>.
2001-03-05 16:22:25 +00:00
Werner Lemberg e274cfd3ef * src/autohint/ahtypes.h (AH_Hinter): Add elements
`disable_horz_edges', `disable_vert_edges'.
* src/autohint/ahhint.c	(ah_hint_edges_3, ah_hinter_hint_edges): Use
them (and remove static variables with the same names).
* src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
* docs/glnames.py: Updated to latest pstables.h changes.
* src/psnames/pstables.h: Add more `const'.
* src/pcf/pcfutil.c: Ditto.
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
(FT_Glyph_Done -> FT_Done_Glyph).
* include/freetype/ttnameid.h: Added some new Microsoft language
codes and LCIDs as found in Office Xp.

* builds/hurd/detect.mk: New file.  Added support to detect the GNU
Hurd operating system as Unix-like.  Fix submitted by Anthony Fok
<foka@debian.org>.

* src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
the Type 1 glyph charstring (used by conversion programs).
Submitted by Ha Shao <hashao@chinese.com>.


* src/base/ftgrays.c (grays_sweep): The function didn't exit
immediately if `num_cells' was 0 as it should.  Thanks to Boris for
finding this out.

* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
bitmap rendering fails (thanks to Graham Asher).

* docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
script to support chapters and section block ordering.  Updated the
public header files accordingly.
* src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
were not correctly copied.
2001-03-04 21:53:08 +00:00
David Turner 8a8d5c88b5 the Type 1 glyph loader now sets the glyph control data to the
T1 charstrings program.
2001-02-28 09:36:13 +00:00
David Turner 5aeaad6c39 fixed a bug reported by Graham Asher 2001-02-23 17:47:41 +00:00
David Turner 8fe916ca51 fixed a small bug (the advance and format were not copied in
FT_Glyph_Copy)
2001-02-16 16:27:35 +00:00
Werner Lemberg 500dc854f6 formatting 2001-02-10 17:45:01 +00:00
Tom Kacvinsky 1e5f0ee609 Removed an unnecessary fprintf( stderr, ... ) from cff_parse_font_matrix 2001-02-08 23:23:46 +00:00
Tom Kacvinsky 97094311aa In function is_alpha, make `-' a legal alphanumeric character. This
is so that font names with `-' are fully parsed, etc...
2001-02-07 03:45:49 +00:00
Tom Kacvinsky 7b91beadab In function T1_Init_Face, added code to get the units_per_EM from the
value assigned in parse_font_matrix, if available.  Default to 1000 if
not available.
2001-02-07 01:14:53 +00:00
Tom Kacvinsky c27cd28e22 In function cff_parse_font_matrix, added logic to get the units_per_EM
from the FontMatrix.

Added a new function (cff_parse_fixed_thousand) that gets a real
number fromt he CFF font, but multiplies by 1000 (this is to avoid
rounding errors when placing this real number into a 16.16 fixed
number).

In function cff_parse_real, added code so that the integer part is
moved into the high sixtenn bits of the 16.16 fixed number.
2001-02-07 01:11:54 +00:00
Tom Kacvinsky c97cf17acd In function CFF_Init_Face, added logic to get the units per EM from
the CFF dictionary, if available.
2001-02-07 01:08:34 +00:00
Werner Lemberg e56b411f32 * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
obsolete now).

(reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
+ MEM_Copy() to avoid a memory bug.
2001-02-03 04:34:53 +00:00
Tom Kacvinsky b2d5fefea8 In function parse_font_matrix, added heuristic to get units_per_EM
from the font matrix.

In parse_dict, deleted test to see if the FontInfo keyword has been
seen.  Deletion of this test allows fonts without FontInfo
dictionaries to be parsed by the Type 1 driver.

In T1_Open_Face, deleted empty subroutines array test to make sure
fonts with no subroutines still are parsed.
2001-01-24 22:41:20 +00:00
Werner Lemberg 3dac27d9fd * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
pcf_get_bitmaps): Fix compiler errors.

* src/pcf/pcfread.c: Removed some compilation warnings related
2001-01-18 04:00:12 +00:00
David Turner db0717879f some minor changes to allow compilation in all modes, without warnings 2001-01-12 21:49:08 +00:00
Werner Lemberg d573c7e76b formatting 2001-01-03 07:14:12 +00:00
Werner Lemberg c3e987e2aa * builds/vms: Support files for VMS architecture added.
* descrip.mms, src/*/descrip.mms: VMS makefiles added.
* README.VMS: New file.


* LICENSE.TXT: Added info about PCF driver license.
2001-01-03 06:47:10 +00:00
Tom Kacvinsky 8d1f604993 Changed to use cffgload.{c,h} instead of t2gload.{c,h}. Also, all
occurences of t2_ (T2_) were replaced with cff_ (CFF_, resp.).
2001-01-03 00:21:59 +00:00
Tom Kacvinsky 8050a6b85d This file was previously known as t2gload.h. 2001-01-03 00:17:58 +00:00
Tom Kacvinsky 167e2be410 Renamed to cffgload.h. 2001-01-03 00:17:15 +00:00
Tom Kacvinsky ceac7b9f66 Changed to reflect the changes made in the source files:
we now use cffgload.{c,h} instead of t2gload.{c,h}.
2001-01-03 00:16:24 +00:00
Tom Kacvinsky cd92b11dc6 This file was previously known as t2gload.c. 2001-01-03 00:15:00 +00:00
Tom Kacvinsky fa3d6e9422 Renamed t2gload.c to cffgload.c. 2001-01-03 00:14:11 +00:00
Werner Lemberg 389acc625e * src/pcf/*: New driver module for PCF font format (used in
X Windows).
* include/freetype/internal/ftdebug.h (FT_Trace): Added values for
PCF driver.
* include/freetype/internal/pcftypes.h: New file.
* include/freetype/config/ftmodule.h: Added PCF driver module.


* src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.


* builds/modules.mk (clean_module_list): Fixed deletion of module
file in case `make make_module_list' is called before `make setup'.
2001-01-01 17:25:21 +00:00
Werner Lemberg f28b7bfaea Initial revision 2001-01-01 17:24:31 +00:00
Werner Lemberg 6b76663625 * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
(CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
definition.

* src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
t2_operator_seac): Added these functions for use in implementing the
seac emulation provided by the Type 2 endchar operator.
(T2_Parse_CharStrings): Added seac emulation for the endchar
operator.
CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
charset/encoding tables, and free the memory used by them when the
CFF driver is finished with them.  Added tables
2000-12-30 22:14:58 +00:00
Tom Kacvinsky abe0d47265 Added functions t2_lookup_glyph_by_stdcharcode and t2_operator_seac
for use in implementing the seac emulation provided by the Type 2
endchar operator.

Extended T2_Parse_CharStrings to add seac emulation for the endchar
operator.
2000-12-30 00:39:40 +00:00
Tom Kacvinsky 4ba1c0ad6f Added tables
cff_isoadobe_charset
    cff_expert_charset
    cff_expertsubset_charset
    cff_standard_encoding
    cff_expert_encoding

Extended functions CFF_Load_Encoding, CFF_Load_Charset, CFF_Done_Encoding,
and CFF_Done_Charset to load and parse the charset/encoding tables, and
free the memory used by them when FreeType is finished with them.
2000-12-30 00:37:14 +00:00
Tom Kacvinsky 91a0b65f46 In function T2_Load_Glyph, added code so that the font transform is
applied.
2000-12-24 10:01:54 +00:00
Tom Kacvinsky a05c02c9ca Added code to cff_parse_font_matrix so that the font matrix numbers
are scaled by 1/(matrix->yy).  Also, the offset vector now contains
integer values instead of 16.16 fixed numbers.
2000-12-24 09:57:28 +00:00
Tom Kacvinsky 45fbecbba3 Removed unnecessary comments and commented-out code from ah_hinter_load_glyph. 2000-12-22 07:24:02 +00:00
David Turner 55b7403b58 removing obsolete "cidafm" files 2000-12-22 03:40:14 +00:00
Tom Kacvinsky f8d841a746 Changed functions ah_hinter_load and ah_hinter_load_glyph so that
synthetic fonts render correctly.  Previously, the first glyph
rendered from such a font did not have the FontMatrix applied.
2000-12-21 01:25:13 +00:00
Werner Lemberg 594f0c965d * *.mk: Added lots of `.PHONY' targets.
* *.mk: Implemented `platform' target to disable auto-detection.


Added support for clipped direct rendering in the smooth renderer.
This should not break binary compatibility of existing applications.
* include/freetype/fttypes.h, include/freetype/ftimage.h: Move
definition of the FT_BBox structure from the former to the latter.
* include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
FT_Raster_Flag enumeration.
Add `clip_box' element to FT_Raster_Params structure.
* src/smooth/ftgrays.c (grays_convert_glyph): Implement it.

* src/raster/ftraster.c (ft_black_render): Test for unsupported
direct rendering before testing arguments.
2000-12-20 22:09:41 +00:00
David Turner 1eb9a43aa1 fixed small bug (no need to test target pixmap in direct rendering mode) 2000-12-14 21:24:27 +00:00
David Turner 859a18a358 support for clipped direct rendering
updated INSTALL file for Win32 case
2000-12-14 18:50:40 +00:00
Werner Lemberg 63408a1299 include/freetype/internal/internal.h: Fixed header inclusion macros
to use direct definitions.  This is the only way to do these things
in a portable way :-(  The rest of the code should follow shortly
though everything compiles now.
* builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.

* builds/win32/detect.mk: Added support for the Intel C/C++
compiler, as well as _preliminary_ (read: doesn't work!) support for
Watcom.  Also added a new setup target.  Type "make setup list" for
a list of supported command-line compilers on Win32.

* src/base/ftdebug.c: Added dummy symbol to avoid empty file if
conditionals are off.
2000-12-13 23:44:37 +00:00
David Turner 170c0d4c0d * include/freetype/config/ft2build.h,
include/freetype/internal/internal.h: fixed header inclusion macros
	to use direct definitions. This is the only way to do these things
	in a portable way :-( The rest of the code should follow shortly
	though everything compiles now..

	* builds/compiler/intelc.mk, builds/compiler/watcom.mk,
	builds/win32/detect.mk: added support for the Intel C/C++ compiler,
	as well as _preliminary_ (read: doesn't work !!) support for Watcom.
	Also added a new setup target. Type "make setup list" for a list
	of supported command-line compilers on Win32..
2000-12-13 19:55:11 +00:00
Werner Lemberg d5c1b27d58 * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
Removed.  ANSI C doesn't (explicitly) allow macro expansion in
arguments using `##'.
(FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
names directly.  Make them configurable.  Use `##' to strip leading
and trailing spaces from arguments.

* builds/unix/ft2unix.h: Adapted.

* src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
ft_close_stream): Use FT_CALLBACK_DEF.

* builds/unix/ftsystem.c: Use new header scheme.
(FT_Done_Memory): Use free() from FT_Memory structure.

* src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.

* include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
2000-12-12 22:28:12 +00:00
Werner Lemberg 16a60e872f next try 2000-12-12 16:29:46 +00:00
Werner Lemberg 6d5d719d9e * include/freetype/config/build.h (FT2_CONFIG_ROOT, FT2_PUBLIC_FILE,
FT2_CONFIG_FILE, FT2_INTERNAL_FILE, FT_SOURCE_FILE): Use `##'
operator to be really ANSI C compliant.


* builds/unix/detect.mk: Remove unused USE_CFLAGS variable.


* src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
2000-12-12 06:36:55 +00:00
Werner Lemberg 90d9964ec9 * */*.h: Changed body inclusion macro names to start and end with
`__' (those which haven't converted yet).  Fixed minor conversion
issues.

* src/winfonts/winfnt.c: Updated to new header inclusion scheme.

* */*.[ch]: Changed source files to adhere to the new
* src/cff/cff.c, src/cff/rules.mk: Updated.

* */*.[ch]: Now using <ft2build.h> as the default build and setup
2000-12-09 00:45:38 +00:00
Werner Lemberg cc069beb2d cleanups 2000-12-08 16:17:16 +00:00
David Turner 19ed8afe60 - updated all source files to adhere to the new inclusion scheme
- the CFF loader now loads the encodings and charset tables
  though doesn't use them for now
2000-12-08 02:42:29 +00:00
David Turner 508409434c * src/cache/ftlru.c (FT_Lru_Done): fixed a small memory leak 2000-12-06 18:02:01 +00:00
Werner Lemberg 33d023680f * builds/module.mk: Replaced `xxx #' with `xxx$(space).
* builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
avoid trailing spaces in variable.
* builds/freetype.mk: Use $(D) instead of $D to make statement more
readable.

* docs/docmaker.py: Formatting.

* src/psaux/psauxmod.c: Fixed a broken inclusion of component
header files (an FT_FLAT_COMPILE test was missing).
* src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
an occasional crash when the function was called (due to a dangling
pointer).
* src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
The ANSI "free()" function was called instead of "memory->free()".
* docs/docmaker.py: Added section filtering, multi-page generation
(index page generation is still missing though).
* builds/unix/install.mk, builds/unix/ft2unix.h: The file "ft2unix.h"
is now installed as <ft2build.h> for Unix systems.  Note that we
still use the "freetype2/freetype" installation path for now.

* many files: Now using <ft2build.h> as the default build and setup
configuration file in all public headers.  Internal source files
still need some changes though.
* builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
Win32 developer builds.
builds/win32/w32-dev.mk: Changed the developer build targets to
"devel-gcc" and "devel-bcc" in order to be able to develop with the
Borland C++ compiler.
2000-12-06 16:31:30 +00:00
David Turner 940d30640f re-fixed FTC_Manager_Done :-) 2000-12-05 23:07:16 +00:00
David Turner 00004eef27 fixed a broken inclusion of header files (a FT_FLAT_COMPILE test
was missing !!)
2000-12-05 22:28:15 +00:00
David Turner 91bb16583b fixed a bug in FTC_Manager_Done 2000-12-05 22:23:12 +00:00
David Turner ca8d1cda94 fixed small error in last update of FT_Done_Memory 2000-12-05 21:32:02 +00:00
David Turner e646ff6fe2 fixed an obvious bug in FT_Done_Memory. The ANSI "free" function
was called, instead of "memory->free" !!
2000-12-05 08:39:14 +00:00
David Turner d3c8e064a5 - updating the header inclusion scheme to use <ft2build.h> by
default..

- created "builds/devel" to hold developer builds options
  for both Win32 and Unix

- fixed a bug in the winfonts driver, where the glyph image format
  wasn't set correctly..
2000-12-04 22:53:55 +00:00
David Turner efa80f2b43 fixed a few warnings with Borland C++ 2000-12-01 21:43:05 +00:00
David Turner b1aabf4c5e - added support for the free command-line Borland C++ compiler
in the "builds" directory

- modified a few files because BCC32 didn't like certain comparisons
  (UInt compared with a UShort, apparently the UShort is promoted to
  an Int)

- updated the INSTALL file to include IDE compilation, prevent against
  BSD Make, and clarify the use of "make setup" (instead of "make")
  for build configuration
2000-11-30 23:48:22 +00:00
Tom Kacvinsky 16bf6da6d9 Fixed computation of `face->height'. 2000-11-30 21:56:55 +00:00
Tom Kacvinsky 21da848451 Added calculation of `face->height' for pure CFF fonts. 2000-11-30 21:53:39 +00:00
David Turner ac83e7e09f fixed a bug in the Conic bezier extrema computation formula.. 2000-11-29 23:59:08 +00:00
Werner Lemberg ada9503d22 * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
(FT_Set_Renderer): Use FT_EXPORT_DEF.
* src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
FTC_Manager_Register_Cache), src/cache/ftcsbits.c
(FTC_SBit_Cache_Lookup): Ditto.

* src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
2000-11-29 17:48:57 +00:00
Werner Lemberg f1ca234473 * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
conditionally.

* src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
`size->strike_index' only conditionally.

* src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
conditionally.

* src/winfonts/winfnt.h: Move all type definitions to...
* src/include/freetype/internal/fnttypes.h: New file.
* src/winfonts/winfnt.c: Use it.


* include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
with a direct solution (which also satifies picky compilers).
2000-11-29 15:18:54 +00:00
Werner Lemberg d157fcf091 * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
disabled interpreter also.

* src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
parentheses.
2000-11-29 04:45:26 +00:00
Werner Lemberg 053e24eace formatting 2000-11-27 19:23:05 +00:00
Tom Kacvinsky 6dc51e9cbd T2_Parse_CharStrings: Added more logic to glyph width setting code to
take into account even/odd argument counts.
2000-11-27 08:22:23 +00:00
Tom Kacvinsky 834b53ed0e Simplied glyph width processing code and the comments pertaining to it. 2000-11-27 03:23:50 +00:00
Tom Kacvinsky 6037f08474 In function T2_Parse_CharStrings, modified glyph width assignment code
to be more robust.  The code now takes into account glyphs that

   1. have the width given as it is, rather than as a difference against
      `nominal_width', and

   2. have the width operand specified before one of the h/r/vmoveto
      commands or the endchar command.
2000-11-27 00:57:13 +00:00
Werner Lemberg 6dd303db0d * builds/ansi/ansi.mk: Fix inclusion order of files.
* src/type1/t1objs.c (T1_Init_Face): Compute style flags.
2000-11-26 21:25:53 +00:00
Werner Lemberg 27695e5dbf * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
function from PSAux module.

* src/type1/t1parse.c (T1_Done_Parse): Renamed to...
(T1_Finalize_Parser): New function (to avoid name clash with a
function in the PSAux module).
(T1_Decrypt): Removed since it it duplicated in the PSAux module.
(T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
function from PSAux module.

* src/type1/t1parse.h: Adapted.
2000-11-23 08:21:13 +00:00
Tom Kacvinsky 3da9d565ee In function T2_Get_String, we called T2_Get_Name with an string id
that was off by one.
2000-11-23 03:43:14 +00:00
Tom Kacvinsky a51b45c607 Make sure that parse_t2_real correctly parses a CFF real number. Added more comments
to the function.
2000-11-22 23:34:56 +00:00
Tom Kacvinsky c3dfbde074 In function T2_Init_Face, make sure that root->num_faces gets
set when loading a pure CFF font, and change units_per_EM to
1000 for a pure CFF font.
2000-11-22 14:34:22 +00:00
Werner Lemberg 5c4f5ebd0d formatting 2000-11-18 04:42:41 +00:00
David Turner e006675e67 added support to synthetic Type 1 fonts. Why didn't
this thing get committed ??
2000-11-16 19:06:28 +00:00
Werner Lemberg 34e52707f0 Formatting; removing tabs. 2000-11-13 16:58:01 +00:00
Tom Kacvinsky 200a1a41e3 In function TT_Load_Generic_Header, change tracing output to indicate
if a `bhed' or `head' table is being read.

In function TT_LookUp_Table, change tracing output to indicate success
or failure of table loading, and place output on one line.
2000-11-13 07:31:21 +00:00
Tom Kacvinsky e0bd0c01d9 In function SFNT_Load_Face, set has_outline to true only if
the font has a `CFF ' or `glyf' table.
2000-11-13 07:26:31 +00:00
Werner Lemberg a82cd844fb Small fixes and formatting. 2000-11-10 22:43:37 +00:00
David Turner c9d7b5e3ed minor warning with VC++ solved 2000-11-09 03:18:32 +00:00
David Turner cd1afc4ef1 fixed a bug in "docs/glnames.py" which caused he generation of an
invalid Mac names table in the file "src/psnames/pstables.h".

This caused FT_Get_Glyph_Name to return invalid glyph names
for certain TrueType fonts..
2000-11-09 00:47:05 +00:00
David Turner a6c747d2b5 fixed a small bug: the "linearHoriAdvance" and "vertHoriAdvance" were
not set correctly when the auto-hinter is used to load/hint a glyph..
2000-11-08 19:44:48 +00:00
David Turner 5387d894a9 fixed max advance width for fixed-pitch T1 fonts 2000-11-08 19:40:08 +00:00
David Turner 23a0670b98 removed the file <freetype/internal/ftlist.h> and corrected
files that depended on it.

the ftlist.c function definitions are now FT_EXPORT_DEF
instead of FT_BASE_DEF
2000-11-08 00:20:25 +00:00
David Turner 94e3bfafa0 fixed a small bug in the abstract chunk cache class 2000-11-08 00:15:58 +00:00
Werner Lemberg 8ec9dfd991 Moving doc comments for BASE functions from source to header files. 2000-11-07 23:56:02 +00:00
Werner Lemberg 90a0330142 All function comments are now removed from source files (and moved to the
header files if necessary).

Some minor fixes to have `make multi' run successfully (with gcc and g++).

Fixing compiler warnings.
2000-11-07 17:21:11 +00:00
Werner Lemberg 4b68007b4f Complementing David's changes with formatting, adding documentation, etc.
More `*'-convention formatting, adding the `a' resp. `an' prefix to
variables.
2000-11-07 06:30:29 +00:00
David Turner f96594faf0 integrated Yamano-Uchi changes to the base source code. However,
I've made a few modifications:

  - there is no new field named "driver" in "FT_SizeRec"

  - the new fields in "TT_SizeRec" are:

       strike_index   :: value 0xFFFF means "no sbit strike selected"
       strike_metrics :: the FT_Size_Metrics structure corresponding to
                         the currently selected strike

  - the code in "ttload.c" has been somewhat cleaned up too

thanks a lot, Y-U !!

- David
2000-11-06 23:07:51 +00:00
David Turner 25dee217ab some updates to the cache sub-system. some methods were moved from
the concrete "FTC_Image_Cache" and "FTC_SBit_Cache" to the abstract
"FTC_Glyph_Cache" and "FTC_Chunk_Cache", respectively..

note: this is not the end of changes to the cache sub-system
2000-11-06 19:29:06 +00:00
Werner Lemberg 8c883fb542 minor fixes.
Add more gcc warnings for development on UNIX.
2000-11-05 23:41:08 +00:00
Werner Lemberg 77fb4cedff removed redundant checks. 2000-11-04 09:41:45 +00:00
Werner Lemberg dc72aff43d Finishing David's latest changes (there were some errors in it). 2000-11-04 08:33:38 +00:00
David Turner 54e7574946 defining new types to hold "internal" fields of public
objects:

  FT_Face_Internal, FT_Size_Internal, FT_Slot_Internal

these contain some fields that may change between releases
of FreeType, without affecting the size of FT_FaceRec,
FT_SizeRec, FT_GlyphSlotRec, etc.., which means that
drivers wouldn't need to be recompiled if we only add new
fields to an internal structure..

I plan to hack a few things related to the auto-hinter and
I need this move to ensure that we will not break binary
compatibility between 2.0 and 2.1 :-)

- David
2000-11-04 02:52:02 +00:00
David Turner 76a5f62323 major reformatting of the sources:
FT_EXPORT_DEF    => FT_EXPORT
  FT_EXPORT_FUNC => FT_EXPORT_DEF
  BASE_DEF               => FT_BASE
  BASE_FUNC            => FT_BASE_DEF
  LOCAL_DEF             => FT_LOCAL
  LOCAL_FUNC          => FT_LOCAL_DEF
  LOCAL_FUNC_X     => FT_CALLBACK_DEF
  LOCAL_DEF_X       => FT_CALLBACK_TABLE
  FT_CPLUSPLUS     => FT_CALLBACK_TABLE_DEF
2000-11-04 01:55:49 +00:00
Werner Lemberg 4091109486 Don't access freed variables... 2000-11-03 07:57:51 +00:00
Werner Lemberg 7b45c28dd5 Remove redundant code; fix computation of `last'. 2000-11-03 07:34:29 +00:00
Werner Lemberg a13a473dd9 More C++ fixes. 2000-11-02 15:14:38 +00:00
Werner Lemberg 21fb2d9513 Adding header file for labs(). 2000-11-02 08:20:15 +00:00
Werner Lemberg ab8552321c Fixing include header for a `make multi' build.
Finishing formatting of cache stuff.

Fixed getDriverClass stuff -- added it to winfnt.c also.  Note that this
still has to be documented.
2000-10-31 22:13:54 +00:00
Werner Lemberg e4b32a5dc5 Removing trailing whitespace. 2000-10-31 20:42:18 +00:00
Werner Lemberg 3dc4374f43 Formatting.
Removed double src/cache/ftcimage.h.

Replaced FTC_Image_Type with #defines since this contains bit flags and not
enumerated values.
2000-10-31 17:49:07 +00:00
David Turner 2909475716 at last, the infamous cache bug is fixed !! 2000-10-31 10:58:23 +00:00
Tom Kacvinsky 6043b2404e In function FTC_ChunkSet_Destroy, changed `manaher' to `manager'. Just
a fix for a silly typo.
2000-10-29 01:47:51 +00:00
David Turner ece6379859 completed the sbit cache, though it's still buggy :-(
major reformatting of the cache subsystem (again)
added substantial documentation too in header files
2000-10-28 23:34:45 +00:00
Werner Lemberg b5084e11f7 Renamed z1* files back to t1*; the same transition for Z1_* structures
Removed obsolete raster1/* files.
2000-10-28 17:10:06 +00:00