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 :-)
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.
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!
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.
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..)
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).
- disabled the TrueType interpreter by default
- disabled the "type1" driver, "type1z" is now used
by default (the internal driver name is "type1" now !!)
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
- 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..
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..