Commit Graph

4589 Commits

Author SHA1 Message Date
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
Werner Lemberg aa8c7da0bf Don't use -lefence in the demo Makefile.
Added C++ guards in ftmodule.h

Fix error check in ftglyph.c

Formatting; adding copyrights; fixing documentation
2000-07-04 03:37:18 +00:00
Werner Lemberg d0c36e3b5a Formatting; fixing documentation. 2000-07-03 16:45:15 +00:00
David Turner d18388e44b fixed a few 64-bit related bugs in "sfnt/ttload.c" and
"base/ftstream.c"

Note that "TT_PCLT" was incorrectly defined in
<freetype/tttables.h>
2000-07-03 15:00:49 +00:00
Werner Lemberg 768c9561f6 Formatting. Fixing some tracing messages. 2000-07-03 07:09:09 +00:00
Werner Lemberg 5811c7c3a5 Formatting.
Fixed some errors which prevented compiling.
2000-07-02 13:53:16 +00:00
Werner Lemberg fbeb41d93d Formatting.
Adding copyright notices.

Removing an unnecessary file (smooth.h).
2000-07-02 00:27:53 +00:00
David Turner e0bba32291 fixed the PSNames -> Unicode translation table
the Python script "glnames.py" was buggy and
lacked quite a few values in the "names_to_unicode"
table !!
2000-07-01 19:33:40 +00:00
Werner Lemberg 798e70e44c Removing. 2000-07-01 14:09:27 +00:00
Werner Lemberg 11735fe317 A small fix from Tom. 2000-07-01 14:08:31 +00:00
Werner Lemberg a8bbc267a2 Formatting as usual...
Adding trivial argument checking to some functions.

Added dynamic driver interface to cidriver.

Minor `version' fixes for macfont and psnames modules.

Removed unnecessary files
2000-07-01 14:06:46 +00:00
David Turner f9ca2bb58a managed to re-design entirely the API in <freetype/ftglyph.h>
It is now really the "glyph factory" that Stefan was probably
dreaming about..

fixed some recent formatting errors from Werner ;-)

cleaned up the demonstration programs from most of the
rust that they had, though I'm sure someone is going to
re-format them really soon !!

"ftstring" now uses the new ftglyph.h API, and is now
faster and smaller.. yep..
2000-06-30 23:12:55 +00:00
Werner Lemberg ac39ecdca8 Formatting...
Fixing incorrect scaling of vertical advance width.
2000-06-30 22:24:36 +00:00
Werner Lemberg cc9fc49c90 Formatting...
Applying some fixes from Tom.
2000-06-30 06:21:26 +00:00
David Turner 5ae831c101 changes used to implement the auto-hinting support 2000-06-30 01:31:22 +00:00
David Turner 32b85e67cb various bug fixes in the postscript font drivers (mainly they
added one un-necessary point to each contour..)
2000-06-29 21:48:58 +00:00
David Turner 60402683ba small fix in the definition of the convenience functions 2000-06-29 06:19:07 +00:00
Werner Lemberg deb4e98396 Formatting...
Preprocessor lines now always start the line.

Improved error handling in `base' module.

Fixed a out-of-bounds error in ttgload.
2000-06-29 03:14:25 +00:00
David Turner 98258619df debugged the CFF driver. The "advance width" problem
was strictly unrelated to our previous worries, it was a
really simple bug in t2gload.c !!
2000-06-28 20:43:07 +00:00
David Turner 075cdf1288 fixed a _nasty_ bug in the CFF driver. Note that there are still escapement problems though.. 2000-06-28 05:35:58 +00:00
David Turner 98c2fde0b3 removed obsolete files... :-( 2000-06-28 04:31:24 +00:00
David Turner 81bb4ad937 latest clean-ups..
The code compiles with NO WARNINGS with GCC and
Visual C++ (also with LCC minus debugging options)
2000-06-28 04:19:49 +00:00
David Turner 9d636b6d14 various cleanups to reduce compiler warnings
+ support for CID-keyed fonts in the CFF driver
(still some unexpected bugs though..)
2000-06-27 23:32:27 +00:00
David Turner 74abee8e2e various cleanups to reduce compiler warnings 2000-06-27 23:31:53 +00:00
David Turner 7ed5a057cf small bugfix 2000-06-27 23:23:22 +00:00
David Turner 385bedb832 formatting 2000-06-27 23:22:49 +00:00
David Turner 728da1c863 changed file names and some functions names to avoid
conflicts with the "type1" driver.
2000-06-27 23:21:51 +00:00
David Turner a1be2dcee3 cleaned up source code to avoid function name
conflicts with Type 1 driver(s)
2000-06-27 23:20:35 +00:00
David Turner 5ae1bad3f6 added new renderer module 2000-06-27 23:18:39 +00:00
Werner Lemberg d7a046838f More formatting.
About previous commitment: Added latest versions of (still unused)
config.guess and config.sub files.
2000-06-25 23:02:11 +00:00
Werner Lemberg dcd2e14c58 forgotten fixes. 2000-06-25 07:43:15 +00:00
Werner Lemberg a929ba9b20 applying formatting again 2000-06-25 06:47:11 +00:00
David Turner 994d7747fb various hacks to the TrueType driver that I cannot
explain now, but they'll be very useful in the near future :-)
2000-06-25 04:49:19 +00:00
David Turner 2a98b3c431 reduced some nasty memory leaks 2000-06-23 13:47:55 +00:00
David Turner 90f68b7272 still more updates to the TrueType driver to make it more
"extensible"..
2000-06-23 12:26:14 +00:00
David Turner c31286153a bugfixes in the Type1 drivers 2000-06-23 05:02:13 +00:00
Pavel Kaňkovský 5b58f5e374 fixed *top++ bug present in type1/t1gload.c as well 2000-06-23 04:19:36 +00:00
Pavel Kaňkovský 7802d4664d *top++-bug was not a compiler bug, therefore the comment about the
affected compiler was misleading and has been removed
2000-06-23 04:18:55 +00:00
David Turner d0079e669e improved the Type1 drivers to deal with the case where
the lenIV field is set to -1 to indicate unencoded charstrings

fixed some source code to prevent a compiler bug on IRIX

fixed the module version's in the "type1z" driver
2000-06-23 00:07:06 +00:00
David Turner 910c597d1a updated for new design 2000-06-22 00:31:01 +00:00
David Turner aa4c28f9fe added new files 2000-06-22 00:27:15 +00:00
David Turner 206297435e small bugfix 2000-06-22 00:26:21 +00:00
David Turner e82a82af6d small bugfix in the "seac" code 2000-06-22 00:26:11 +00:00
David Turner f0df85ba2a - MAJOR INTERNAL REDESIGN:
A lot of internal modifications have been performed lately on the
    source in order to provide the following enhancements:

      - more generic module support:

        The FT_Module type is now defined to represent a handle to a given
        module. The file <freetype/ftmodule.h> contains the FT_Module_Class
        definition, as well as the module-loading public API

        The FT_Driver type is still defined, and still represents a pointer
        to a font driver. Note that FT_Add_Driver is replaced by FT_Add_Module,
        FT_Get_Driver by FT_Get_Module, etc..


      - support for generic glyph image types:

        The FT_Renderer type is a pointer to a module used to perform various
        operations on glyph image.

        Each renderer is capable of handling images in a single format
        (e.g. ft_glyph_format_outline). Its functions are used to:

           - transform an glyph image
           - render a glyph image into a bitmap
           - return the control box (dimensions) of a given glyph image


        The scan converters "ftraster.c" and "ftgrays.c" have been moved
        to the new directory "src/renderer", and are used to provide two
        default renderer modules.

        One corresponds to the "standard" scan-converter, the other to the
        "smooth" one.

        The current renderer can be set through the new function
        FT_Set_Renderer.

        The old raster-related function FT_Set_Raster, FT_Get_Raster and
        FT_Set_Raster_Mode have now disappeared, in favor of the new:

           FT_Get_Renderer
           FT_Set_Renderer

        see the file <freetype/ftrender.h> for more details..

        These changes were necessary to properly support different scalable
        formats in the future, like bi-color glyphs, etc..


      - glyph loader object:

        A new internal object, called a 'glyph loader' has been introduced
        in the base layer. It is used by all scalable format font drivers
        to load glyphs and composites.

        This object has been created to reduce the code size of each driver,
        as each one of them basically re-implemented its functionality.

        See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
        more information..



      - FT_GlyphSlot had new fields:

        In order to support extended features (see below), the FT_GlyphSlot
        structure has a few new fields:

           linearHoriAdvance:  this field gives the linearly scaled (i.e.
                               scaled but unhinted) advance width for the glyph,
                               expressed as a 16.16 fixed pixel value. This
                               is useful to perform WYSIWYG text.

           linearVertAdvance:  this field gives the linearly scaled advance
                               height for the glyph (relevant in vertical glyph
                               layouts only). This is useful to perform
                               WYSIWYG text.

        Note that the two above field replace the removed "metrics2" field
        in the glyph slot.

           advance:   this field is a vector that gives the transformed
                      advance for the glyph. By default, it corresponds
                      to the advance width, unless FT_LOAD_VERTICAL_LAYOUT
                      was specified when calling FT_Load_Glyph or FT_Load_Char

           bitmap_left: this field gives the distance in integer pixels from
                        the current pen position to the left-most pixel of
                        a glyph image WHEN IT IS A BITMAP. It is only valid
                        when the "format" field is set to
                        "ft_glyph_format_bitmap", for example, after calling
                        the new function FT_Render_Glyph.

           bitmap_top:  this field gives the distance in integer pixels from
                        the current pen position (located on the baseline) to
                        the top-most pixel of the glyph image WHEN IT IS A
                        BITMAP. Positive values correspond to upwards Y.

           loader:  this is a new private field for the glyph slot. Client
                    applications should not touch it..


      - support for transforms and direct rendering in FT_Load_Glyph:

        Most of the functionality found in <freetype/ftglyph.h> has been
        moved to the core library. Hence, the following:

          - a transform can be specified for a face through FT_Set_Transform.
            this transform is applied by FT_Load_Glyph to scalable glyph images
            (i.e. NOT TO BITMAPS) before the function returns, unless the
            bit flag FT_LOAD_IGNORE_TRANSFORM was set in the load flags..


          - once a glyph image has been loaded, it can be directly converted to
            a bitmap by using the new FT_Render_Glyph function. Note that this
            function takes the glyph image from the glyph slot, and converts
            it to a bitmap whose properties are returned in "face.glyph.bitmap",
            "face.glyph.bitmap_left" and "face.glyph.bitmap_top". The original
            native image might be lost after the conversion.


          - when using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph
            and FT_Load_Char functions will call FT_Render_Glyph automatically
            when needed.
2000-06-22 00:17:42 +00:00
Werner Lemberg 9ca2af3838 A new formatting orgy.
Added some `#if 0' to completely disable the CID AFM stuff.  In case this is
not correct please fix.
2000-06-21 03:03:28 +00:00
Werner Lemberg 9c05268eae Newly generated. 2000-06-17 20:15:53 +00:00
Werner Lemberg 100d6d47d8 Fixing glyph name typos in glnames.py; more formatting. 2000-06-17 20:15:06 +00:00
David Turner f9b8dec437 major reformatting of the modules source code in order to get
rid of most of the basic types redefinitions (i.e. FT_Int instead
of "FT_Int", etc..)

The format-specific prefixs like "TT_", "T1_", "T2_" & 'CID_"
are now only used in relevant structures..

fixed Werner's fix to t2gload.c :-)
other small bug fixes
2000-06-16 19:34:52 +00:00
Werner Lemberg e3c11d7f00 A new round of formatting, adding/fixing documentation etc. 2000-06-16 06:49:56 +00:00
Werner Lemberg 67d301f305 Fixed the PACK() macro. 2000-06-14 04:13:59 +00:00
Werner Lemberg 7a4fda8821 The next round of formatting, checking documentation, etc. 2000-06-13 23:21:00 +00:00
Werner Lemberg 78575dc0d1 A lot of formatting.
Added more tracing levels.

More Makefile fixes.

Minor other changes.
2000-06-12 19:36:41 +00:00
Werner Lemberg e35cac66c6 A complete revision of FreeType 2's GNU makefiles (of the library):
Tons of unnecessary stuff have been removed; only the essential rules
  have been retained.

  The source files now depend on all header files in include/freetype,
  include/freetype/config, and include/freetype/internal.  This is not
  optimal, I know, and I'll try to improve this, but it is better than
  before (namely no dependencies on `internal').

  FTDEBUG_SRC has been added (similar to FTSYS_SRC) -- I don't know
  exactly whether this is really useful, but it doesn't harm.

  There is now more documentation in the makefiles itself.

io-frames.html: Use of <th>, <code>, and <var> for better tagging.

Reactivating of FT_DEBUG_LEVEL_xxx macros.

Added a lot of #include directives to make `multi' builds possible -- note
that currently the modules cid, t1, and t1z have clashing structures and
functions which means that you can only use one of these three modules for a
multi build.

Added some missing function declarations to (local) header files.

Renamed some T1_Open_Face() to CID_Open_Face() in the cid module -- a lot
of other functions should be renamed also...

Replaced many FT_xxx stuff with T1_xxx in t1z driver -- this isn't finished
yet...

Fixed FT_Free() to allow a NULL pointer without an assertion (this has
always been a valid assumption in FreeType, at least in FT 1.x).

A lot of other, minor fixes (mostly documentation).
2000-06-11 03:46:57 +00:00
Werner Lemberg cb9109fc40 Applied Tom's patches to improve CFF handling. 2000-06-09 05:25:19 +00:00
David Turner 3d99f79669 finally fixed that crazy Type 1 hinter..
it still sucks though .. ;-)
2000-06-07 23:06:10 +00:00
David Turner 24aaddaeed removed invalid #include 2000-06-07 20:19:21 +00:00
David Turner 6cef627d17 added code to correctly scale global metrics 2000-06-07 20:06:54 +00:00
David Turner b770a4ab6d bug fix, suggested by Tor Lillqvist 2000-06-07 20:06:18 +00:00
David Turner de6523ee05 Added code to correctly scale global metrics 2000-06-07 20:05:50 +00:00
David Turner 0f991b4312 new version of the CFF driver, this one works :-) 2000-06-07 20:04:34 +00:00
Werner Lemberg e1d5dd78f4 Moved all *errors.h header files to include/freetype/internal for
consistency.

Removed unused error message.
2000-06-07 04:48:12 +00:00
Werner Lemberg 61bd4b9dd1 Added FT_FRAME_SKIP_xxx to skip fields.
More use of READ_Fields() in ttsbit.c

Other minor fixes.
2000-06-07 00:00:08 +00:00
Werner Lemberg 1c0d4acb25 Fine-tuned a lot of tracing levels to make them more functional with ftview.
Added a lot of \n to tracing messages.

Fixed a serious bug in loading SBit offsets (missing parentheses around a
xxx ? yyy : zzz construct).

Replaced most GET_xxx() functions with calls to READ_Frame() in ttsbit.c
2000-06-06 20:41:48 +00:00
Werner Lemberg 920d41e038 Removing trailing whitespace. 2000-06-05 14:32:32 +00:00
Werner Lemberg 4e6dd8587e freetype.h: Adding ft_encoding_xxx values for some CJK encodings.
Fixing copyright notice on many files.

Changed some tracing levels.

A lot of formatting, fixing documentation etc. as usual.
2000-06-05 05:26:15 +00:00
Werner Lemberg 5617726108 ftview now has two new options: -d activates debugging, and -l sets the
trace level.

Since FT2 is still beta, I've activated the FT_DEBUG_xxx macros by default.

To make reasonable output, I've changed some TRACEx macros to other levels.
2000-06-03 21:59:44 +00:00
Werner Lemberg eb81e37825 More preparation for tracing. Formatting. 2000-06-03 06:03:11 +00:00
Werner Lemberg 9a754ce32b Formatting; adding some tracing code. 2000-06-02 21:31:32 +00:00
Werner Lemberg 91e52d416a Finishing first formatting/documenting etc. of the `base' dir. Some modules
are still badly documented, though...
2000-06-02 14:30:38 +00:00
Werner Lemberg 08edde5805 Correct wrong fix. 2000-06-02 00:11:57 +00:00
Werner Lemberg 2fbf7e439f Added a lot of error checking code to the exported functions in the `base'
subdir (not complete yet).
2000-06-02 00:01:14 +00:00
Werner Lemberg d66ea312f6 FT_Outline_Decompose() now returns FT_Error.
Minor bug fixes.

More formatting, adding/fixing documentation.
2000-06-01 15:49:28 +00:00
David Turner 6b0bf34665 slight change to the smooth renderer to make it compile
stand alone with the _STANDALONE_ macro defined..
See comments inside it "src/base/ftgrays.c"
2000-06-01 05:01:01 +00:00
David Turner b3936a1600 small bug fix from Robert :-) 2000-06-01 04:44:36 +00:00
David Turner 04aa800ce9 added a CID-keyed font driver in "src/cid"
fixed two bugs in the smooth renderer
2000-06-01 03:27:48 +00:00
David Turner 3581d06464 changed the SFNT format check to make it less strict.
A certain number of TrueType fonts have invalid values
in the SFNT header..
2000-06-01 03:26:58 +00:00
Werner Lemberg a3b6c6c290 Formatting, fixing and adding documentation. 2000-05-31 06:55:12 +00:00
Werner Lemberg 0c8cde2e05 ftgrays.c: Formatting. It seems to me that _STANDALONE_ doesn't work yet...
Will it ever work?  If not, the unused code should be removed.

ftconfig.h, ftobjs.h: Fix my last fix of the UNUSED() macro.
2000-05-30 20:10:06 +00:00
Werner Lemberg f13e6333f9 Formatting; minor improvements. 2000-05-30 16:49:14 +00:00
Werner Lemberg 026bd17b41 ftmulti.c: Will now accept any filename. It will no longer append `.ttf'
or `.ttc'.  Reformatted.

ftcalc.c, ftdebug.c: Minor formatting stuff.
2000-05-30 05:13:30 +00:00
David Turner 5b401bb918 additional changes to the CFF/Type2 driver 2000-05-29 23:03:15 +00:00
Werner Lemberg c3c344c76e Fixing the fixes :-) More formatting. 2000-05-29 22:40:57 +00:00
David Turner 4f99c3c423 fixed divide by zero bug
added CFF/OpenType driver source (not working for now)
2000-05-29 20:55:13 +00:00
Werner Lemberg a519b3b7a3 Formatting, fixing descriptions. 2000-05-29 20:46:12 +00:00
David Turner b1677a87ca changed the SFNT driver slightly to add more robust
checking based on the "search_rang", etc.., fields of
the sfnt header..

This avoids problems (like certain Type 1 multiple masters
incorrectly recognized as trueType files)..
2000-05-29 20:37:41 +00:00
David Turner 241e151eb2 oops, forgot to commit these files 2000-05-28 17:15:37 +00:00
David Turner 2e421319fc moved a lot of things from the TrueType driver to the SFNT
module (whose interface has changed, by the way)

This allows even more code re-use between TrueType and
OpenType formats..
2000-05-26 22:13:17 +00:00
David Turner 2c5f482b48 removed obsolete files 2000-05-26 22:10:08 +00:00
David Turner 5413644b5e added a new demonstration program called "ftmulti" to
demonstrate the multiple masters support

fixed a few bugs
2000-05-26 17:52:06 +00:00
David Turner 1118720679 finalised the multiple masters support
fixed some nasty little bugs too
2000-05-26 17:13:23 +00:00
David Turner fea68c6800 fixed two minor bugs:
- the glyph index was not checked in FT_Load_Glyph
  - the "type1" driver didn't read the FontBBox and FontMatrix
    correctly..
2000-05-26 06:40:49 +00:00
David Turner 936d2e072b a small change to allow the "type1" driver to detect
multiple master fonts and return an error code that allows
the "type1z" driver to load them after..
2000-05-26 02:16:06 +00:00
David Turner 7c388ba491 added support for multiple master fonts in "type1z". It is
now working, but there is no way currently to change the default
weight vector (tested with custom vectors though).

Note that you should remove the "type1" driver from the
module list to be able to test it..
2000-05-26 02:07:40 +00:00
David Turner 1c9a1cab3f important modifications to the Type1z driver
these are used to prepare for multiple master fonts
2000-05-24 21:12:02 +00:00
David Turner 1fb6eea7d1 EXPORT_DEF renamed to FT_EXPORT_DEF +
reformating/spacing
2000-05-24 00:31:14 +00:00
David Turner f5dcdd5cfb minor fix to the Type1 driver(s) to apply the font matrix when
necessary..
2000-05-23 22:16:27 +00:00
David Turner 5e4c2cb3bf fixed some header files inclusions
added C++ stubs to public header files
2000-05-22 16:25:14 +00:00
David Turner 51179f0ae3 some fixes for 64-bit systems. Mainly changed some
FT_TRACE calls to use %p instead of %lx when dumping
a pointer address
2000-05-18 16:18:05 +00:00
David Turner 109fcf6086 fixed the sbit loader (src/base/sfnt/ttsbit.c)
introduced a new load flag (FT_LOAD_CROP_BITMAP) used
to indicate that we want embedded bitmaps to be cropped..

Thanks a lot to Yamano-uchi, Hidetoshi
2000-05-17 23:35:37 +00:00
David Turner 3475e7fba3 removed TT_MAX_SUBGLYPHS macro, there is no static
limit on the number of subglyphs in a TrueType font..

changed the default number of gray levels used by the
smooth renderer to 256 (instead of 128). Of course, the
human eye can't tell a difference ;-)
2000-05-17 20:56:01 +00:00
David Turner e49ab25c08 formatting - removed trailing spaces 2000-05-16 23:44:38 +00:00
David Turner ea44d5ec3d formatting 2000-05-16 23:22:41 +00:00
David Turner 701d754665 removed obsolete header file 2000-05-16 23:21:59 +00:00
David Turner 414f38c572 at last, fixed the bug, and re-enabled 5-gray levels support
for backwards compatibility..
2000-05-16 22:37:30 +00:00
David Turner 0a29c6979d implemented FT_Select_Charmap and FT_Set_Charmap
(at last :-)
2000-05-12 17:09:38 +00:00
David Turner c60c61c684 fixed a potential memory leak when loading embedded bitmaps 2000-05-12 15:26:58 +00:00
David Turner c30aea9846 another massive changes in order to completely avoid
compiler warnings with GCC + "-ansi -pedantic -Wall -W"
and LCC.

Also fixed the compilation of "type1z" with Win32-LCC
(its pre-processor is broken !!)

Updated the BUILD document too
2000-05-12 15:01:18 +00:00
David Turner bfe2f98f1f a new massive grunt work. Redefined the EXPORT_DEF,
EXPORT_FUNC, BASE_DEF and BASE_FUNC macros to
let them take an argument..

This is needed to compile the library as a DLL on some platforms
that have different compiler conventions..
2000-05-12 12:17:15 +00:00
David Turner 4f2c5544bb additional changes, this time in order to pass extra parameters
to font drivers when creating a new face object.

The FT_Open_Args structure has been changed to simplify
its use and allow generic parameters too..
2000-05-12 10:19:41 +00:00
David Turner 2561b24537 I knew the first CVS commit wouldn't be good :o)
Here, the build system seems to be cured now..
(I'll need to try it on Unix too though..)
2000-05-11 18:47:39 +00:00
David Turner efce08d67c major re-organisation of the FreeType 2 directory hierarchy 2000-05-11 18:23:52 +00:00
David Turner 5d6b82d9c9 formatting 2000-05-09 22:08:52 +00:00
David Turner f382328131 added experimental emboldening/outlining code. This
is incomplete and will not compile so turned off
2000-05-05 13:11:36 +00:00
David Turner 4d3e56392f closed most of the memory leaks in the Type 1 driver(s)
this is required before any serious work to implement
multiple masters
2000-05-05 12:33:23 +00:00
David Turner c1205799f5 changes the type of the "mode" parameter in FT_Set_Raster_Mode
to unsigned long (easier than string to compare)
2000-05-05 01:38:46 +00:00
David Turner 81d02dbc04 finally a auto-hinter module interface I'm satisfied with,
it's now time to change other font drivers to take advantage
of it :-)
2000-05-05 01:37:32 +00:00
David Turner d50941dc8c fixed a compilation problem that occurred with the
LCC C pre-processor. really minor
2000-05-05 01:36:56 +00:00
David Turner c136b409eb an update to FT_Outline_Funcs used to improve
the accuracy of outline decomposition
2000-05-04 17:24:54 +00:00
David Turner d186a361a1 various updates to reduce the compilation warnings 2000-05-02 17:41:41 +00:00
David Turner 1119baee54 added support for version 2 of the OS/2 table
five additional fields (see OT Spec 1.2)
2000-05-02 11:01:49 +00:00
David Turner b7ef2b0968 in order to ensure that the bytecode interpretation is exactly
equivalent to the one in FT 1.4, moved some code from the
old version of FreeType in order to compute vector normalization
a bit differently
2000-05-02 11:01:12 +00:00
David Turner 48641d60ae added a simple line to set "glyph.control_len" when loading
a simple glyph. This is used to compute statistics on font files..
2000-05-02 11:00:06 +00:00
David Turner 9a9315faae changes to reflect the new files
include/tttables.h
  include/t1tables.h
2000-05-02 10:59:01 +00:00
David Turner 488cd71e4b a few updates to the OpenType Layout code
still far to go, but I'll dedicate most of my time on
it next week
2000-05-02 10:54:12 +00:00
David Turner e608a3e0d2 moved the smooth renderer to the base layer directory
it is compiled as a separate object, and its interface is
available in "include/ftgrays.h"
2000-05-02 10:53:11 +00:00
David Turner 271106133a added FT_Sqrt64 to ensure that all bytecode operations are
strictly equivalent to the ones in FT 1.4 when compiling with
the configuration macro FT_CONFIG_OPTION_OLD_CALCS
defined..
2000-05-02 10:52:28 +00:00
David Turner a8bcdf8ef6 added FT_Done_Stream 2000-05-02 10:51:41 +00:00
David Turner 68ebd1bee4 typo 2000-05-02 10:51:22 +00:00
David Turner 33ec7d473b removed an over-zealous assertation that halted the engine
with a few weird fonts.
2000-05-02 10:51:04 +00:00
David Turner 61492029a5 added macros to read little endian words from a byte stream
(e.g. NEXT_ShortLE(buffer))
2000-05-02 10:50:18 +00:00
David Turner f8a116fb93 implemented extra interface for "FT_Get_Sfnt_Table" 2000-04-25 16:11:12 +00:00
David Turner 99a4d93b2d added FT_Get_Sfnt_Table from "include/tttables.h" 2000-04-25 16:10:50 +00:00
David Turner 2dbc54dd13 typo 2000-04-25 16:10:14 +00:00
David Turner 8ce47b1da6 added new auto-hinter driver interface !
modified tttypes.h to use the new "include/tttables.h"
2000-04-25 16:09:55 +00:00
David Turner d8723b4fb2 fixed another small bug. The metrics were not computed
correctly..
2000-04-14 11:29:14 +00:00
David Turner 1216e434cc fixed a small bug that prevented the loading of certain
fonts that use the DOS linefeed convention.., including
the newest XFree86 4.0 B&H Type 1 fonts !!
2000-04-14 11:22:17 +00:00
David Turner 90a36c5522 a small improvement to the Type 1 hinter, that
comes from research with the auto-hinter. Nothing
fancy but gets rid of the un-normalized widths :-)
2000-04-04 18:21:45 +00:00
David Turner 82942cc279 simple fix required by the auto-hinting module
(sets the ft_outline_reverse_fill bit_flag)
2000-03-30 08:43:03 +00:00
Just van Rossum 3562d014e6 minor improvements, mainly to the PFB testing code... 2000-03-28 19:41:56 +00:00
David Turner 37379e2170 major changes to the library:
- there is now a "convenience" API to manage glyphs in
   "include/ftglyph.h". See the demo program "ftstring" for
   an example..

  - the raster interface has been changed in order to allow
    direct composition through user-provided callbacks. This
    has been tested but isn't demonstrated for now in "demos"

 - the FT_LOAD_NO_RECURSE flag is supported, as this is
   required by some new code in the auto-hinting engine

 - some bug fixed in FT_MulFix which made FT_xxx_Transform
   return incorrect results..
2000-03-28 11:22:31 +00:00
David Turner ed7f62aca5 support for FT_LOAD_NO_RECURSE needed by the auto-hinter 2000-03-28 11:19:28 +00:00
David Turner 7024ca1a37 ftoutln.c is now mandatory. The optional parts of this
component can be disabled with the config macro
FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
2000-03-28 11:18:39 +00:00
David Turner e01a41d5eb fixed a stupid bug in FT_MulFix 2000-03-28 11:17:58 +00:00
David Turner 14d340ce2e fixed a _really_ stupid bugs in the TrueType Collection
loading !!
2000-03-17 23:33:07 +00:00
Just van Rossum 5a34a7bac2 use stream->memory instead of malloc/free. 2000-03-17 13:07:21 +00:00
Just van Rossum 65a60dc12e Here's the Mac FOND driver! It seems to work well, but it turns out the Type 1 drivers (old as well as new) reject about half the fonts I have. 2000-03-17 11:53:17 +00:00
Just van Rossum 5ae477c4f2 Added prototype for T1_Done_Parser() 2000-03-17 11:51:33 +00:00
David Turner a6415244f1 updated documentation for Beta 4 2000-03-13 14:25:00 +00:00
David Turner c3c7e7fb0c updated CHANGES
added BUILD & INSTALL
2000-03-13 14:19:31 +00:00
David Turner 757429fdc9 fix to get rid of compile warning 2000-03-13 13:02:57 +00:00
David Turner 7f7aadf4f7 finished moving all configuration macros to
"config/ftoption.h"
2000-03-13 12:57:27 +00:00
David Turner 3246efedcd first step towards moving all configuration options
to the single "config/ftoption.h"
2000-03-13 12:12:46 +00:00
David Turner 06d508c1de removed the unused/obsolete "ftbbox.c" 2000-03-13 11:52:44 +00:00
David Turner 4258c4fe9f removed src/shared/ttnameid.h (redundant) 2000-03-13 11:50:38 +00:00
David Turner 7f615aef5e renamed all outlines functions to the
FT_Outline_<action> syntax..
2000-03-13 11:49:20 +00:00
David Turner 41dbcbf628 reformatting, changing the FT_Outline structure:
- "flags" have been renamed to "tags"
  - "outline_flags" have been renamed to "flags"

Look for more re-formatting today..
2000-03-09 11:46:25 +00:00
David Turner e98e4af73c fixed a nasty bug that occured with CMAP format 4.. 2000-03-06 17:01:07 +00:00
David Turner 0f99ddda5f changed the structure of FT_Outline in order to pack
all outline flags in a single integer..

Changed the rest of the library and demo programs
accordingly..
2000-03-06 13:23:32 +00:00
David Turner 9d76a8d67a a few fixes to get rid of unwanted compile-time warnings 2000-03-06 09:51:19 +00:00
Just van Rossum 80f4b060e3 fixed typo in comment 2000-03-05 16:10:10 +00:00
Just van Rossum 7eef5364b8 - ft_new_input_stream: don't make a new copy of the pathname
- ft_done_stream: remove the FREE(pathname) call, which wasn't
  kosher
- FT_Open_Face: after calling open_face, don't assume driver is
  the same as face->driver, use face->driver instead
2000-03-05 16:07:58 +00:00
Just van Rossum 59d8ac4615 formatting: some tabs replaced by spaces 2000-03-05 15:59:09 +00:00
Werner Lemberg febe3fbeba A first check of FT2's Make system. Many smaller and larger bugs have been
fixed:

. Removing unused variables.

. detect.mk files now must provide $(CONFIG_FILE) and not $(CONFIG_RULE).

. ansi.mk will now be really used as a fallback if the detect mechanism
  fails.

. ANSIFLAGS will now be really used (fixing a typo).

. `make clean' now works (again two typos).

. Detection of gcc on Unix has been fixed (using the `-v' option instead of
  `--version').

. `make devel' now works (on Unix).

. Fixing *again* a bug in demos/graph/x11/rules.mk to allow multiple use
  of `-L' compiler options.

. $(BASE_H) now contains a few more header files.

As usual, a lot of formatting (not finished yet).
2000-03-05 01:14:19 +00:00
Just van Rossum 8c5c932e46 fixed typo in comment 2000-03-02 10:53:32 +00:00
Just van Rossum 1e5754f2d6 added missing "else": without it FT_Open_Face() would still scan the list of drivers when specifying an explicit driver 2000-03-02 10:52:57 +00:00
Just van Rossum d35aea7090 ft_new_input_stream(): set the pathname field of the stream to args->pathname. Needed for the Mac fond driver.
ft_done_stream(): free the pathname field, if not null
2000-03-02 01:07:50 +00:00
David Turner ca13392d83 a few changes to really compile font drivers in
independent single objects..
2000-03-01 13:24:38 +00:00
David Turner e595014a64 simple minor fix in t1afm.h/t1afm.c 2000-02-29 17:14:02 +00:00
David Turner e755002ddc moved the ANSI "ftsystem.c" to src/base 2000-02-29 17:11:53 +00:00
David Turner 9c84887db3 remaining fixes from Just 2000-02-28 11:32:54 +00:00
David Turner 7b63d2ea1b fixed a bug that prevented the reading of AFM
files..
2000-02-28 11:25:01 +00:00
David Turner 7bb7fedef1 fixed a bug which appeared when loading
unscaled composite glyphs
2000-02-28 11:23:36 +00:00
David Turner 63cb46dd1a simple fixes 2000-02-22 13:34:26 +00:00
David Turner 08fdac980a fixed a bug in the glyph loader that caused a memory
block to be freed twice. Also performed changes to use
the new glyph zone object that has appeared in ftobjs.h
2000-02-21 16:01:33 +00:00
David Turner cbfaedcefa added glyph zone objects 2000-02-21 16:00:36 +00:00
Werner Lemberg 547a252af1 Formatting. Adding/Fixing documentation. 2000-02-16 08:23:58 +00:00
David Turner d16a4b8111 removed obsolete hinter source code 2000-02-15 12:56:44 +00:00
David Turner 95bec28220 updated version of the experimental Type 1 driver
(this thing now works even better than the "regular"
driver, but is much smaller).

Provides no hinter !!
2000-02-15 12:55:57 +00:00
David Turner 861ba624db small fix (reduce compiler warnings) 2000-02-15 12:54:51 +00:00
David Turner 24ea09fcbd small fix 2000-02-15 12:54:06 +00:00
David Turner 18789bfe9f Added prototype OpenType Layout support
sources. This is not a port of the OTL extension
of FT 1.x, as it uses a very different design.

These sources are placed here for comments
and peer-review
2000-02-15 12:53:31 +00:00
David Turner dbe4872bf0 removed obsolete source file 2000-02-14 16:45:40 +00:00
David Turner a56489e01f The code has been updated to use the finite-state
table loader in "ftstream" (when the macro READ_FIELDS)
is defined.

This is experimental..
2000-02-13 13:41:56 +00:00
David Turner 33263421f8 formatting 2000-02-13 13:38:45 +00:00
David Turner 851688057d small bug fix used to compile when the SFNT
module doesn't support embedded bitmaps and
postscript names..
2000-02-13 13:38:27 +00:00
David Turner 7663f22288 Added support for the "attach_file" format-specific driver
interface, used to implement FT_Attach_File.

Note, this is currently very lightly tested..
2000-02-13 13:37:38 +00:00
David Turner 818336fdf4 Added the function FT_Read_Fields, it acts as a
finite-state automata to load large TrueType tables
in object structures.

This is experimental, don't mess too much with it,
thanks :-)
2000-02-13 13:36:53 +00:00
David Turner 3188a3a112 Sorry, forgot some changes needed to get rid of
t1encode.[hc]. Here they come..
2000-02-13 13:34:18 +00:00
David Turner 5ae1259c03 removed the "t1encode" files which are now
obsolete with the "psnames" module
2000-02-10 19:17:24 +00:00
David Turner 7433655cbd Some changes. The SFNT driver is able to return
Postscript glyph names even when the "psnames"
module is not used..
2000-02-10 19:14:48 +00:00
David Turner c3122c98ce added some comments 2000-02-10 19:11:30 +00:00
David Turner 1ab77fdfff some updates to make everything compile clean 2000-02-10 18:08:17 +00:00
David Turner 5dc8aba72b some modifications used to introduce the Type 1 AFM parser
and psnames module
2000-02-10 17:01:24 +00:00
David Turner 1a26888da3 some changes to ensure that the code compiles
cleanly when TT_CONFIG_OPTION_POSTSCRIPT_NAMES
is undefined..
2000-02-10 16:17:23 +00:00
David Turner a8635cc626 Very simple AFM Parser 2000-02-10 16:15:11 +00:00
David Turner cda32b71ba added the FT_Attach_File function to enable AFM
parsing.

Also, changed the API for FT_Open_Face to allow
broader stream descriptions..
2000-02-10 16:14:35 +00:00
David Turner 71ec10efe5 support for the IGNORE_GLOBAL_ADVANCE_WIDTH
loading flag
2000-02-10 16:09:35 +00:00
David Turner dba4b3243a small update to the kerning code 2000-02-10 16:08:59 +00:00
David Turner afdc4c4c2b Updates to the Type 1 driver
Now with a simple AFM parser in order
to read the kerning table..
2000-02-10 16:08:36 +00:00
David Turner 51d4e28daf New version of the Type 1 driver.
Generates a Unicode charmap on the fly
through the "psnames" module..

Now, we only need to support afm/pfm
files (and maybe multiple masters) to call
this driver finished !!
2000-02-10 13:11:43 +00:00
David Turner 5c9a571a5a new psnames module 2000-02-10 13:10:32 +00:00
David Turner 0dd3434801 The Type 1 experimental driver was updated
- small reduction of the code size of "t1encode.c"
- removed the hinter (not useful with the upcoming
  auto-hinter..)
- updated "t1load.c" to reduce warnings with Visual C++
- considerably changed the glyph loader (it is simpler)

Beware, this code is still experimental, and is _not_
debugged. I don't even guarantee that it works for
now

- David
2000-02-02 12:20:53 +00:00
David Turner 8f43c714a5 A major refresh of the TrueType driver :
- some #ifdefs were included in order to _not_
  compile support for the bytecode interpreter
  when FT_CONFIG_OPTION_BYTECODE_INTERPRETER
  is not defined in "ttconfig.h"

- the glyph loader has been seriously re-designed. It is now
  smaller, simpler and should load composites a bit faster

- works with the TrueType debugger
2000-02-02 12:16:19 +00:00
David Turner 2dfb5aca28 added a new experimental Type 1 driver. This version sports several
improvements compared to "src/type1". Briefly :

  - the postscript-like interpreter is now gone. We now perform
    pattern-matching to load our font content. The resultant code
    is much faster, smaller, and easier to maintain.

    For a more detailed description, see the comments at the start
    of "src/type1z/t1objs.c"

  - the glyph loader will be greatly simplified really soon, and the
    clumsy hinter will be ditched in favor of a more general auto-hinting
    module (when we get one).

    The goal is to strip down the Type1 driver to about 15-20 Kb.

This is still an experimental version. It is added to the repository
for archiving. You should not try to use it for now (it won't work
because some crucial parts are _knowingly_ ignored for now !).

Note that the "old" type1 driver will probably move to the "demos/src"
directory, in order to show how one can replace one given font driver
at runtime (and to provide the functionality of the "t1dump" program).
2000-01-27 14:02:04 +00:00
David Turner d42c68e855 many new small, but important, changes there:
- modified the interface of the "sfnt" module. There is now a function
    called "load_format_tag", and another called "load_directory".

    The first one is in charge of returning the 4-byte tag located at
    the beginning of a given font file. It understand TrueType collections
    and parses them automatically

    The second loads the table directory that is located just after
    the format tag.

    This is useful, because the "SFNT" storage scheme can be used by
    several distinct formats, each with its own format tag.

    The TrueType driver now checks the format tag in "src/truetype/ttobjs.c"

  - made some changes to "src/shared/t1types.h" to clearly separate the
    Type 1 font content from the rest of the T1_Face structure. This
    will be useful when adding the CFF/Type2 driver that will be able
    to reuse the "T1_Font" structure within a "TT_Font" one (which
    really describes a SFNT-based font file).

    Some changes in "src/type1" were thus performed to reflect this.
    Note that the current type1 driver will be discontinued in a
    distant future. More on this later..
2000-01-27 13:56:02 +00:00
David Turner 76bbd5793f the T1_Face definition changed slightly to clearly separate the
Type 1 font content from the rest. This implied some changes to
the following files.
2000-01-27 13:35:16 +00:00
David Turner 3ba47068a6 some updates to the "rules.mk" files. Basically, we now
use "$(FT_COMPILE)" instead of "$(FT_CC)" in order to
compile the library.

$(FT_COMPILE) uses the $(ANSI_FLAGS) variable used to
define ANSI-compliance flags for the current compiler. It is used
to compile the library exclusively (some demo programs will _not_
compile properly with these flags set).
2000-01-17 11:25:57 +00:00
David Turner 3b925ef744 fixed a minor bug in the computation of the vertical
metrics top-side bearing
2000-01-17 11:22:59 +00:00
David Turner fdc225b153 fixed another small bug in the FT_Read_xxxx functions
(they didn't updated the stream position in the case of
disk-based streams. This went un-noticed under Linux
which uses memory-mapped files by default)
2000-01-17 11:21:49 +00:00
David Turner 8cd9575c27 fixed small bug 2000-01-17 11:21:00 +00:00
Werner Lemberg 7dff772e59 Added ftraster.h for better support of standalone mode.
Fixed cleaning rules for the demo programs.
2000-01-17 08:24:22 +00:00
Werner Lemberg 9ab7c3c37e Fixed compilation bug for standalone mode. 2000-01-15 12:43:27 +00:00
David Turner cef95a09d7 Yet another improvements to the scan-converter. Some macros were
introduced to use a constant precision and dynamic bezier decomposition
thresholding, leading some performance improvements.

Note that by now, the "high_precision" field of a FT_Outline
is ignored by the raster..
2000-01-14 15:36:00 +00:00
David Turner 4f2d5b9a48 fixed a bug which prevented the raster from correctly
performing horizontal dropout control..
2000-01-13 18:20:28 +00:00
David Turner 454a428542 fixed a bug which caused some font family and style
names to be incorrectly ignored..
2000-01-13 18:19:51 +00:00
David Turner ef87970dfb A few modifications to allow more broken fonts to
be loaded by the driver.
2000-01-13 18:19:10 +00:00
Werner Lemberg 40b4ef1ebd Remove double increment of charmap. 2000-01-12 22:44:03 +00:00
Werner Lemberg 7880dd6630 ftcalc.c, ftextend.c, ftoutln.c, ftraster.c, ftstream.c:
Removing trailing spaces.

ftlist.h:
  Removing duplicated documentation (which is in ftlist.c also).

ftinit.c, ftlist.c, ftobjs.c:
  Formatting, adding documentation.
2000-01-10 17:19:45 +00:00
Werner Lemberg 0db8d1ab84 Formatting. 2000-01-09 17:54:56 +00:00
Werner Lemberg f697866ec2 Bugfix: prep table is optional. 2000-01-08 20:00:54 +00:00
Werner Lemberg f993b6a033 demos/config/x11/rules.mk:
support for multiple X11R6 entries in $(PATH) added.

ftxbbox.c, ftcalc.c, ftdebug.c, ftdriver.h:
  doc fixes.

ftdebug.c:
  formatting.

ftdebug.h:
  making makros `;'-safe (i.e., they can now be used within if-else clauses
  without side effects resp. don't produce a single `;').
2000-01-08 17:10:33 +00:00
David Turner fc1f989446 Finally, the TrueType driver was completely audited. The code should
now be 100% compatible with the implementation in FreeType 1.x.

It's now time to make a new tag for the repository :-)

- David
2000-01-07 18:44:50 +00:00
Werner Lemberg 2b94ffad74 More docs added. 2000-01-07 15:02:05 +00:00
David Turner 30a0c6264f Update some copyrights here and there 2000-01-07 14:07:21 +00:00
David Turner 2fce88c6b9 Removed some unused source code (it came from the old
FT2 beta, and was moved to "src/sfn")
2000-01-07 14:01:59 +00:00
Werner Lemberg 17ae985d38 ftbbox.h: FT_Get_Outline_BBox() must be called FT_Raster_GetBBox().
ftcalc.c: Added a missing closing paranthesis in 64bit version of
          FT_MulFix().

Some formatting; updating copyright.
2000-01-02 09:41:30 +00:00
David Turner 433bc53fb6 Additional improvements to make the anti-aliasing even faster :-)
As previously, this is only noticable for sizes over 64 pixels.
1999-12-30 12:28:03 +00:00
David Turner 5951ce9fc6 updated the CHANGES file
+ some basic formatting cleaning
1999-12-29 00:53:44 +00:00
David Turner 10effdf61e Added the rules files `module.mk' to "sfnt", "truetype" and "type1" to
reflect the new modules/drivers list management performed through the
file `freetype2/config/modules.mk'

Changed the driver header files to reflect the new modules/drivers
list management. We get rid, at last, of the infamous pre-processor
tricks used to build the list at compile time.

`src/base/ftinit.c' is also modified to reflect the changes..
1999-12-29 00:22:24 +00:00
David Turner 34b3032045 Some improvements to make the new anti-alias algorithm faster when
large glyph images are generated (e.g. ` fttimer -g' runs 20% faster).

For small pixel sizes (i.e. typically less than 64 pixels), rendering
speed is unaffected.
1999-12-28 18:36:10 +00:00
David Turner d2b1f35704 Initial revision 1999-12-16 23:11:37 +00:00