Commit Graph

580 Commits

Author SHA1 Message Date
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
David Turner
5fe4c00ed2 - fixed the incorrect SO extension for Visual C++
- disabled the TrueType interpreter by default
- disabled the "type1" driver, "type1z" is now used
  by default (the internal driver name is "type1" now !!)
2000-07-26 19:04:08 +00:00
Werner Lemberg
c3dd151b0f autohint:
Formatting.

  Replacing many enums with #defines since we do arithmetics (especially
  ORing which would produce undefined enum values). The ideal thing instead
  of #defines is `const int' as provided in C++...

  Adding header files to rules.mk
2000-07-26 14:11:15 +00:00
Werner Lemberg
d082cd6801 formatting 2000-07-25 17:25:32 +00:00
Just van Rossum
1f46fed3a7 Use the "type1z" driver instead of the old one. 2000-07-25 16:40:23 +00:00
Just van Rossum
53fb1f5437 Changed parse_subrs() so that it'll work correctly both with wrongly sorted subr indices *and* non-contiguous subr arrays. Thanks to Tom K. for helping to isolate the problem. 2000-07-25 16:20:57 +00:00
Werner Lemberg
0456354658 `make install' is available now.
Formatting.
2000-07-24 06:01:34 +00:00
Werner Lemberg
db578ae090 Adding $(SO) and $(SA), denoting objects and library for a static build.
This is currently used for Unix only -- it should be extended that it is
possible to build DLLs and static libs on other platforms also.

Formatting.
2000-07-23 21:27:52 +00:00
Just van Rossum
d1ab7f5a4c Hardcode loading the Mac FOND driver here, as config/ftmodule.h sometimes gets regenerated. 2000-07-23 16:23:12 +00:00
Just van Rossum
70e5aa2320 updating the Mac stuff to the current situaton 2000-07-23 16:21:52 +00:00
Werner Lemberg
81991cd203 Fix file inclusion. 2000-07-21 16:43:55 +00:00
Werner Lemberg
d060a75b0d Formatting.
Rudimentary support for autoconf (still using GNU make)

Say `make unix'.
2000-07-20 06:57:41 +00:00
David Turner
c49f69cb8c some welcome fixes related to the auto-hinter:
- removed a stupid memory leak

  - fixed the weird metrics hinting (the horizontal edges were used,
    instead of the vertical one, to compute the metrics adjustments,
    silly, silly, silly).

there is still some bugs that I'm looking at though, but we're
very near the release..
2000-07-20 03:44:50 +00:00
David Turner
bca332875d Boris's patch regarding glyph index 0 2000-07-19 20:17:37 +00:00
David Turner
3469d0d038 added auto-hinter module. Note that the code has been
cleaned up, and it seems a bug was introduced ???

I'll start checking this under Linux, as debugging is a lot
easier under this environment..
2000-07-19 20:02:14 +00:00
David Turner
6930b45f78 - introduced FT_Get_Glyph_Name (see freetype.h)
to access individual glyph names. Changed some
  drivers to support it through a new interface named
  "glyph_name".

- introduced FT_Get_Sfnt_Name (see ftnames.h)
  to access the SFNT name table in a TrueType/OpenType
  file..
2000-07-19 17:13:03 +00:00
Werner Lemberg
a4367e0819 Formatting.
Fixing documentation.

Removing unused configuration macros.
2000-07-19 16:17:55 +00:00
Werner Lemberg
e1bbc017ce Formatting.
Fixing documentation.
2000-07-19 06:25:56 +00:00
Werner Lemberg
c8f9cf37d3 Formatting. 2000-07-19 02:59:31 +00:00
Werner Lemberg
0959a8777a Formatting. 2000-07-18 06:50:03 +00:00
David Turner
2f8f154241 Boris patches for ascender/descender/text height 2000-07-17 22:14:12 +00:00
Werner Lemberg
5aa646c565 Formatting.
Fixing a bug in FT_Get_Kerning().

Moving FT_Get_Module_Interface() to ftoutln.c.
2000-07-14 06:16:47 +00:00
David Turner
8cfcf6e057 more patches from Tom (to fix its former patches :-) 2000-07-13 00:21:51 +00:00
David Turner
49bd4f054a removed some warnings with Visual C++
that prevented compilation
2000-07-12 16:57:37 +00:00
Werner Lemberg
2405d14f77 Formatting/Synchronizing.
Updating OS/2 bits in ttnameid.h to latest version (as posted on the
opentype@ list).
2000-07-11 06:12:20 +00:00
David Turner
e161ee449c fixed a bug that caused invalid clipping of monochrome bitmaps
when they were blitted on the left edge of an 8-bit pixmap..
2000-07-10 22:03:10 +00:00
Werner Lemberg
93ac3e3985 Formatting.
Synchronizing docs.
2000-07-10 21:41:32 +00:00
David Turner
e208f4e020 fixed a really tupid bug in the Multiple Master support
of "type1z"
2000-07-10 20:30:59 +00:00
Werner Lemberg
97b2de5898 More formatting.
Synchronizing docu in include/freetype with src/base.
2000-07-10 00:06:22 +00:00
Werner Lemberg
b48a6094b2 Formatting.
Moving some internal structures and constants from freetype.h to ftobjs.h.

Finally removing FT_LOAD_ANTI_ALIAS.

Cleaning up all error codes.  Only the used ones have survived :-)

Removed unused FT_MAX_GLYPH_FORMATS constant.

T2 error codes are now in the range 0x500-0x5FF (instead of `TrueDoc').

Some minor improvements of error return values.

Finally fixing error code values in ftraster and ftgrays to be compliant
with all other FT error codes.
2000-07-09 19:15:30 +00:00
Werner Lemberg
681e8eea5f formatting
fixing minor `make multi' problem
2000-07-09 00:48:37 +00:00
Werner Lemberg
415cc7c905 Formatting.
Adding proper trace level.
2000-07-08 22:52:21 +00:00
Werner Lemberg
7fa51b5535 Formatting.
Adding some trivial error checking.

Adding/Fixing tracing levels.
2000-07-08 19:51:42 +00:00
David Turner
e1075ceabb the font driver now supports CEF fonts and needs a few
more work to fully support pure CFF fonts..

yet another patch inspired by Tom !! Aaaaa :-)
2000-07-08 02:07:27 +00:00
David Turner
9eeea990cc fixes from Tom related to 64-bitness and strange
compiler behaviour on DEC Unix

also preliminary support for CEF fonts. I can
see the glyphs in "ftview" but need to complete
the Unicode charmap support..
2000-07-08 01:49:28 +00:00
David Turner
52b430abea fixed a rather stupid bug in the last patch (one of those with
dire consequences..)
2000-07-08 01:18:38 +00:00
David Turner
a90663f591 vast clean-up of the sources in order to allow flat
directory compilation (by defining the FT_FLAT_COMPILE
macro at compile time..)

moved "freetype2/BUILD" to "freetype2/docs/BUILD"
2000-07-08 00:41:13 +00:00
David Turner
62952153fe removed a compiler warning.. 2000-07-07 20:14:22 +00:00
David Turner
9b3d1c75ad - fixed a leak in the Type 1 driver
- updated the CFF driver to support flex opcodes
2000-07-07 19:47:34 +00:00
David Turner
607358967f removed obsolete files.. 2000-07-07 19:46:30 +00:00
David Turner
ab9cc277c2 added Windows FNT/FON font driver 2000-07-07 19:46:01 +00:00
David Turner
43a2f656a7 fixed a few bugs, cleaned up some code 2000-07-05 18:23:38 +00:00
Werner Lemberg
bd5ae40006 Run g++ on the FreeType library. This should make the use of code in
C++ programs easier:

  Renamed FT_WordXX to FT_UIntXX.

  Changed a lot of void* to FT_Byte* if related to i/o streams -- FreeType
  always accesses streams byte-wise, so this makes sense IMHO.

  Added a lot of #ifdef __cplusplus to header files (and removed a few).

  Other minor syntax fixes (mostly casts).

  Replaced the variable `private' with `private_dict' -- `private' is
  reserved in C++.
2000-07-05 04:32:02 +00:00
David Turner
c6a92202c2 various clean-ups:
- using FT_UNUSED instead of UNUSED
- using FT_LONG64 and FT_INT64 instead of LONG64 & INT64
- using FT_SIZEOF_INT & FT_SIZEOF_LONG instead of...

- removed the #ifdefs that used SIZEOF_INT, instead we now
  use FT_Int32 and FT_UInt32 when needed to support
  32-bits quantity correctly on 64-bits systems..
2000-07-04 18:12:13 +00:00