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
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).
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
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.
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)..
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..
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 ;-)
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
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..
- 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..
- 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
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).
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
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 !!
- 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
- 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
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).
- 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..
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).
(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)
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..
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 `;').
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..
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.