Commit Graph

623 Commits

Author SHA1 Message Date
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
David Turner 4e4a43631c - completed the abstract chunk cache class
- started implementin a "small-bitmaps" cache derived from it
- (soon a "metrics" cache will be written too)
2000-10-28 13:17:11 +00:00
David Turner 9b8f5c4ce1 small updates:
- reworked slightly the cache manager to better
   differentiate between the abstract class in "ftcglyph.h"
   and the FT_Glyph sub-class in "ftcimage.h", and
   slightly reduced the size of FTC_GlyphNodeRec, saving
   8 bytes on a 32-bit system. Yes, I'm crazy ;-)

 - added build files to compile with LCC on Unix too
   (compile speeds _are_ insane with it). There is unfortunately
   a bug in the version I'm using (LCC 4.1) that prevents it
   to compile FT_MulTo64 correctly (in src/base/ftcalc.c)

   the generated assembly is incorrect, I don't know what
   to do ?? the build files are ok, though..

   you should invoke "make setup lcc" to select them..
2000-10-28 07:26:59 +00:00
David Turner 47c14b9db3 fixing a small bug in FT_Glyph_To_Bitmap:
the glyph advance wasn't copied to the bitmap !!
2000-10-27 00:53:16 +00:00
Werner Lemberg ddbb8e7b6a Some formatting.
Fixed some data types/added header files to remove compiler warnings.

Added trivial input data check to FT_Outline_Get_BBox().

Fixed type1z -> type1 file inclusions.
2000-10-26 10:04:16 +00:00
David Turner a4e2894e03 simple renaming of directories:
"type1z"  -> "type1"
  "raster1" -> "raster"

note that I didn't rename all files. We'll have to endure
the "z1..." crazyness unless we perform a _big_ sed on
the sources :-)
2000-10-26 00:30:33 +00:00
David Turner 3a3ffedcb2 adding "ftbbox" to build rules 2000-10-26 00:08:15 +00:00
David Turner 54169b35f8 - reviving the "ftbbox" component, used to compute exact bounding
box computations

- minor update to docmaker.py, more is coming
2000-10-26 00:06:35 +00:00
Werner Lemberg 6a4253388b fixes for fixes :-)
formatting; compiles now without warnings on my Linux box
2000-10-24 05:44:59 +00:00
David Turner dc26e7b77f - minor reformatting of "ftmodule.h"
- added missing "const" statements in the source code in order
  to really get rid of writable static variables
2000-10-23 22:46:56 +00:00
Werner Lemberg 05f0ad098f Converting tabs to spaces in z1load.
Edited FT1's convntns.txt and added it to FT2.
2000-10-19 05:12:00 +00:00
Tom Kacvinsky 40822003da In function parse_encoding, initialize encoding_table.elements to have
.notdef in each entry.

In function parse_charstrings, place the .notdef glyph in index 0, and
add a .notdef glyph if it is missing.

In function Z1_Open_Face, only change min/max encoded char if it is not
.notdef.
2000-10-17 20:25:30 +00:00
Werner Lemberg 5a96b07c1f Fixed two typos spotted by Ryan Martindale <ryan@qsicorp.com>. 2000-10-17 14:29:48 +00:00
Werner Lemberg 47a5f41de6 Added copyright messages to all Makefiles.
Added documentation to FT_Get_Sfnt_* stuff (in ftnames.[ch])

minor other doc fixes
2000-10-17 03:38:43 +00:00
Werner Lemberg c1635d44f9 ftnames.c has been erroneously included twice. 2000-10-15 23:32:01 +00:00
Werner Lemberg 0bf381f7ab Make ftsynth.c work again.
Renamed FT_*_Outline to FT_Outline_*
2000-10-15 21:59:58 +00:00
Werner Lemberg dc268f24ba Fix typo (FT_... -> TT_...) 2000-10-15 17:59:17 +00:00
Tom Kacvinsky 95ac657e18 Minor fix in Z1_Open_Face for building char_index table 2000-10-15 08:53:27 +00:00
Werner Lemberg e67e349a0b More fixes to the tutorial.
Added artificial Type 1 pid/eid paors to ttnameid.h.
2000-10-13 21:00:36 +00:00
Werner Lemberg eddd9909e2 formatting
small fixes
2000-10-12 05:05:40 +00:00
David Turner f88969ab6c the function FTC_Manager_Lookup_Size will return a valid
FT_Face handle, even if no size was found..
2000-10-12 00:28:00 +00:00
David Turner b89fb71ce6 fixed a subtle 64-bit problem that only appears with
Compaq C compiler (though it's really a bug)
2000-10-11 23:39:03 +00:00
Werner Lemberg a7096374ee Added new `ft_glyph_bbox_unscaled' enum; fixing documentation of
FT_Glyph_Get_CBox().

ftnames.c has been omitted from the Makefile.
2000-10-11 23:31:12 +00:00
Werner Lemberg 3d568ac772 A fix from Yamano'uchi to get correct font names. 2000-10-11 14:59:46 +00:00
Werner Lemberg eadc8df24d A fix from Tom to fix the last=first point problem if it is a control point. 2000-10-11 05:52:42 +00:00
Werner Lemberg 0634cedb62 patch from Tom to fix a problem with path_begun. 2000-10-09 01:44:40 +00:00
Werner Lemberg 6fbe4db6b7 minor formatting issues 2000-10-05 04:53:31 +00:00
David Turner f00a4de92b fixed two bugs:
- one bug in the auto-hinter that could cause some program
    crashes with certain fonts

  - fixed the loading of the font matrix "offset" parameters
    in Type 1 and CID-keyed fonts..
2000-10-03 22:03:09 +00:00
David Turner ec0b2cd974 small fix:
when in direct rendering mode, the target bitmap buffer
  is not checked..
2000-10-03 19:22:52 +00:00
David Turner 78dd7104ef small fix:
when in direct rendering mode, the target bitmap buffer
  is not checked..
2000-10-03 19:13:11 +00:00
David Turner a0be99f131 changing the linkage type of
FT_New_GlyphSlot and FT_Done_GlyphSlot to
BASE_DEF instead of FT_EXPORT_DEF
2000-10-03 18:02:02 +00:00
Werner Lemberg 8bb45ec8fb Fixing comment in unixddef.mk which caused a trailing blank.
Adding a new error, FT_Err_Invalid_Pixel_Size (used in winfnt.c)

Fixing FT_Read_Fields() which failed for ft_frame_{bytes,skip}.  This bug
disabled the Winfont driver.

Minor formatting issues.
2000-09-29 06:41:56 +00:00
David Turner 42022c8c94 fixed a bug in the Type 1 and CID font drivers:
the value of the descent returned was positive,
  instead of being negative..
2000-09-27 01:01:10 +00:00
Werner Lemberg 8925009f79 Adding missing code for flat compiling mode. 2000-09-26 13:25:15 +00:00
Werner Lemberg f50c2954d4 Fixed typo in ftimage.h
Fixed sbit on/off flag in cache code.
2000-09-22 06:52:20 +00:00
Werner Lemberg 50dd5858a7 Applied a patch from Hidetoshi for embedded bitmap metrics support. 2000-09-22 03:37:45 +00:00
Werner Lemberg 1a2908bbc0 Added support for (3,0) pid/eid. 2000-09-21 14:10:23 +00:00
David Turner 4e38576a97 fixed a bug that happened when rendering spaces
in monochrome mode..

actually, when outline.num_points == 0, it is legal
to have outline.points == 0 too. The code did return
a FT_Err_Invalid_Outline error incorrectly then because
the checks were not performed in the correct order
2000-09-19 19:44:42 +00:00
David Turner ebdce8344a updated the cache sub-system. Major internal rewrite
please be aware that major bug persist..
2000-09-19 01:11:11 +00:00
David Turner b71c6af028 fixed minor bug in the smooth renderer which forced
the span callback to be called with y == -1 and count == 0
2000-09-17 17:17:16 +00:00
David Turner d38a4f6593 removed obsolete files 2000-09-15 22:42:43 +00:00
David Turner b8817177a0 small bug-fix, the linearHoriBearing value was not
loaded not computed correctly
2000-09-15 17:17:17 +00:00
David Turner c9ce9e4e3f small bug-fix 2000-09-15 17:16:49 +00:00
David Turner f2545e8078 fixed a very stupid bug that prevented FT_Outline_Render from
working correctly..
2000-09-15 03:37:16 +00:00
Werner Lemberg f9b0375002 small formatting issues. 2000-09-11 22:50:13 +00:00
David Turner a8194a97db - added a new function called FT_SqrtFixed to compute the
16.16 square root of a 16.16 number (this could come handy
  in a later version of the auto-hinter)

- small fixes to the smooth renderer. It used to use way too
  much line segments when drawing beziers !!
2000-09-02 00:20:42 +00:00
Werner Lemberg 21a27ee3cb Fixed a long outstanding bug with an incorrect offset for reading post
tables.
2000-09-01 14:36:39 +00:00
David Turner 7909673992 - the file "ftlist.h" was moved from <freetype/internal/..> to
<freetype/...>

- bugfix for the cache sub-system..
2000-08-30 21:40:45 +00:00
Werner Lemberg 353dfeafa3 More warnings fixed. 2000-08-29 18:58:41 +00:00
Werner Lemberg 4a5c142a40 Minor fixes. 2000-08-29 18:37:25 +00:00
Werner Lemberg 4e9dae68b7 Introducing new macro LOCA_VAR to solve some problems with structures
containing function pointers.

FT will now compile again with C++.
2000-08-29 16:50:01 +00:00
David Turner 80b96f350c fixed some bugs in the caching sub-system and improved
its API to enable many kinds of glyph images..

(note that the "ftview" program has been changed to
use the caching sub-system, "ftmulti" and "ftstring"
should come soon).
2000-08-29 16:04:28 +00:00
David Turner e12e313a04 a small optimisation that should speed things a bit.
I'm surprised I didn't do it before..
2000-08-29 16:03:28 +00:00
David Turner 5878a6d2ad a fix to the computation of the font "text height" (i.e. the
baseline-to-baseline distance).

Unfortunately, we cannot rely on the OS/2 fields, like
sTypoAscender or usWinAscent to compute it. Rather,
we only look at the horizontal header's content. In case
the "line gap" is set to 0, we compute the text height as
115% of the ascender+descender value..

(this percentage is based on the values found in many
Windows fonts).
2000-08-29 16:03:01 +00:00
Werner Lemberg 95853c87f5 Introducing new error code FT_Err_Invalid_Cache_Handle.
Regrouping of error codes.
2000-08-26 22:16:44 +00:00
Just van Rossum 9b4bb291d9 #include <freetype/internal/ftdebug.h> /* for FT_ERROR() */ 2000-08-25 20:00:58 +00:00
Werner Lemberg d1b7475be1 Formatting, small fixes.
Adding basic input parameter checking for exported functions.
2000-08-24 16:29:15 +00:00
David Turner 35db73220c - fixed an horrible FT_LOAD_RENDER bug that returned empty
bitmaps !!

- tested and fixed the image cache object. I'm performing a
  few more checks though, and we'll call the cache sub-system
  completed !!
2000-08-24 12:39:40 +00:00
David Turner 98d2701c58 changed the FTC_Manager_New function to accept "max_faces" and
"max_sizes" parameters

fixed some bugs. the cache manager is now tested and validated
(now, it's time for the glyph image cache)
2000-08-24 11:53:35 +00:00
Just van Rossum 4a47f668a1 fixed typo in FT_FLAT_COMPILE section 2000-08-24 00:43:08 +00:00
David Turner fcf5e68650 renamed "psmodule.c" to "psauxmod.c" 2000-08-24 00:30:24 +00:00
David Turner 888706a317 removing obsolete files 2000-08-23 22:50:39 +00:00
David Turner b8a7a0bdea removing obsolete files. These are moved to a new
CVS module called "ftlayout"
2000-08-23 22:48:50 +00:00
David Turner 34f1c2f5f4 finally, the CID and Type1z driver are finished !!
Werner, please have a look at the code and start
re-formatting it :-)
2000-08-23 22:47:44 +00:00
David Turner 3b2c50eb3b completing the FreeType Cache subsystem files 2000-08-23 21:11:13 +00:00
Werner Lemberg 8728f294bc Formatting, small fixes.
Adding copyright notices etc.
2000-08-23 17:32:42 +00:00
David Turner b466a7650c The FreeType Caching Subsystem - first lines of code
beware, this code is not tested, and probably doesn't compile
correctly.. more information will follow..
2000-08-23 11:22:30 +00:00
David Turner a39acf55f7 updated "psaux" and "type1z".
The Type 1 driver now completely relies on "psaux". I
now need to change the CID driver accordingly, then
finally move the Type 2 parsing routines to "psaux"
when appropriate..
2000-08-23 02:47:57 +00:00
David Turner d8b4514d43 added preliminary emboldening code.. still _very_
experimental
2000-08-22 22:53:03 +00:00
David Turner 9748807412 the psaux module is now nearly completed
the "type1z" driver uses it to parse Type 1 charstrings
(not to parse the Type 1 token stream yet though)..
2000-08-22 22:36:33 +00:00
David Turner f95a603117 minor updates to the "psaux" module.
Werner, please do not start re-formatting my experimental
code until I declare it "finished", because I still make big
changes to it that create lots of CVS conflicts..

thanks for your work, anyway :-)
2000-08-21 04:58:49 +00:00
David Turner c38ddff8ac fixed a _serious_ bug in FT_Glyph_Get_CBox 2000-08-21 04:43:01 +00:00
Werner Lemberg b1c8bf0683 Minor formatting.
Adding copyright/C++ guards to psaux files.
2000-08-17 07:18:04 +00:00
David Turner 24d7024c44 added draft "psaux" code
the t1 driver now reads the complete font matrix

and applies it (some fonts do not work properly without
hinting though...)
2000-08-17 01:09:06 +00:00
David Turner 710354b8e9 fixed the bug that prevented bitmap formats to be loaded
correctly when the auto-hinter is used (symptom: "winfonts"
driver didn't load bitmaps correctly).
2000-08-16 17:04:22 +00:00
Werner Lemberg 9a814fabbf Yamano-uchi added support for SFNT-wrapped CID bitmap font files (with
minor modifications from WL).
2000-08-06 19:48:47 +00:00
Werner Lemberg 29a90e2610 Updating unix/ftconfig.in to recent config/ftconfig.h changes.
More C++ fixes: Introducing LOCAL_FUNC_X for local functions used in
function pointers (there are no local anonymous functions in C++) and
FT_CPLUSPLUS (instead of FT_EXPORT_VAR) to define linkage of structures
which contain function pointers.
2000-08-03 00:03:08 +00:00
Just van Rossum 4174350526 Added little know adx offset to t1operator_seac() -- accent positioning now seems correct. 2000-08-02 02:44:25 +00:00
Just van Rossum 2fd491d5f3 Fixed Z1_Parse_CharStrings() to work correctly with "open" paths (ie. missing closepath operator) 2000-08-01 23:37:25 +00:00
Just van Rossum dd81f42282 fixed t1_tofixed() to handle floats of the form .001 and -.001 correctly. 2000-08-01 20:47:48 +00:00
Werner Lemberg 3a89c2a4ac Removing FT_MAKE_OPTION_SINGLE_LIBRARY_OBJECT. It has never worked.
Instead, define BASE_DEF() and BASE_FUNC() similarly to FT_EXPORT_DEF() and
FT_EXPORT_FUNC(), respectively, allowing the programmer to define proper
types and/or export lists for multiple DLLs if necessary (e.g. ftbase.dll --
standalone, fttype1.dll -- needs ftbase.dll, etc.).

The library is finally compiling and linking natively with a C++ compiler!
2000-08-01 17:05:20 +00:00
Werner Lemberg c713d924d8 Added #ifdef's for C++ to all header files. 2000-08-01 13:17:04 +00:00
Just van Rossum 80a330afe8 fixed two bugs related to T2 real numbers: the "skipping" code didn't behave correctly (leaving a bad stack ptr), and the actual parsing code also parsed the code (30) as two nibbles. 2000-08-01 07:12:31 +00:00
Just van Rossum 7c64409e86 Some simple patches that allow synthetic fonts to be rendered. *However*: although the FontMatrix is read correctly, it does _not_ seem to be used! I don't understand this... 2000-08-01 04:29:25 +00:00
Werner Lemberg b1dd3535d5 Added autoconf tests FT_MUNMAP_DECL and FT_MUNMAP_PARAM to fix some devils.
Updating unix/ftsystem.c accordingly.

More warning fixes.
2000-07-31 22:51:00 +00:00
Werner Lemberg e72c9fec17 Simplifying the FIELD_* and FRAME_* macros. Before calling these macros,
you should #define FT_STRUCTURE to the structure which will be filled.

Replaced FT_FIELD_REF with FT_FIELD_SIZE, FT_FIELD_SIZE_DELTA, and
FT_FIELD_OFFSET to make the code more readable; additionally, it should be
more portable because we no longer cast a pointer to an FT_UShort (which
e.g. fails with Sun's C++ compiler) but computes the difference between two
pointers which is guaranteed to work.

Fixing warnings (and C++ errors) while using Sun's latest cc and CC
incarnations.  Most of them are related to variable shadowing.
2000-07-31 18:59:02 +00:00
Werner Lemberg 35ca3426eb Fixing gcc warnings on Solaris. 2000-07-31 12:14:27 +00:00
Werner Lemberg 05c21b8f3d Formatting. 2000-07-29 20:38:19 +00:00
Just van Rossum e97cb9127d FT_Done_Stream(): do stream->close = 0 after calling stream->close(); this makes it safe to call FT_Done_Stream() more than once.
David: please review this; I hope you agree with this minor change.
2000-07-28 03:13:31 +00:00
Just van Rossum 5fe94ff636 Adapted to new external stream semantics. 2000-07-28 02:25:23 +00:00
David Turner 08d78b62e3 removed warning 2000-07-28 01:51:49 +00:00
Just van Rossum 622f514c3f Obsolete; Mac FOND support now lives in src/base/ftmac.c. 2000-07-28 01:13:29 +00:00
Just van Rossum 9e830c5d3f Put FT_New_Face() in an #ifndef macintosh switch; ftmac.c provides an extended implementation. 2000-07-28 01:12:34 +00:00
Just van Rossum 6012037b2d Removed Mac fond driver #ifdefs 2000-07-28 01:11:20 +00:00
Just van Rossum ae4bceefa9 Brand new Mac support -- no more muching with changing drivers and reinitializing streams, but a clean layer on top of FT_Open_Face(): an extended version of FT_New_Face(). 2000-07-28 01:10:35 +00:00
Werner Lemberg 58b17f9647 Formatting. 2000-07-27 23:29:08 +00:00
David Turner c5cdf8bcf1 re-adding a "unix-dev.mk". Debugging libtool output
is just too much of a pain for me, I prefer a good old
static lib without optimizations :-)

"make devel" is back on Unix then..
2000-07-27 21:40:22 +00:00
Werner Lemberg c703b1bf6d *slight* formatting only. Congratulations, David! :-) 2000-07-27 16:57:35 +00:00
David Turner 666b11d59c small fix to the auto-hinter:
the filling direction of each glyph is now re-computed on the
fly, given that we cannot rely on the "flags" field of the
source outline..

this fixes problems with many fonts, including the Arphic ones
(not to say that CJK fonts are handled better for now though..)
2000-07-27 15:59:08 +00:00
Werner Lemberg 321cd27d0f Removing compiler warnings about unused portions of code.
Now unix.in uses absolute paths also to overcome problems with libtool.
To do that in a consistent way I had to modify the rules how to handle
$OBJ_DIR (and consequently $LIB_DIR): You should set $OBJ_DIR explicitly
on the command line (or environment).
2000-07-27 11:20:20 +00:00
Just van Rossum 1fd410bbe1 now that "type1z" is renamed to "type1"; revert to hardcoding "type1".. 2000-07-26 20:31:18 +00:00