src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
with Make on Windows 2000, as well as problems when "make distclean" is
invoked on a non-Unix platform when there is no "config.mk" in the
current directory..
* builds/freetype.mk: fixed a problem with object deletions under
Dos/Windows/OS/2 systems
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* src/tools/docmaker.py: improved the script to add the current date
at the footer of each web page (useful to distinguish between versions)
* Jamfile: fixed incorrect HDRMACRO argument.
* TODO: removed the cubic arc bbox computation note, since it has been
fixed recently..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
* docs/docmaker.py: updated the DocMaker script in order to add
command line options (--output,--prefix,--title), fix the erroneous
line numbers reported during errors and warnings, and other formatting
issues..
* src/base/ftcalc.c: various tiny fixes related to rounding in 64-bits
routines and pseudo"optimisations" :-)
latest versions from gnu.org.
* builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
* include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
uncoditionally.
* src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
Fix compiler warnings.
* src/base/ftcalc.c: Fix (potential) compiler warnings.
* src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
fixed-point square root computation. It is now used even with
64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
* src/base/ftbbox.c: Removed invalid "#include FT_BEZIER_H" line.
* src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
direct computations with 16.16 values instead of sub-divisions. It
is now slower, but proves a point :-)
* src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
Fixed the bezier stack depths.
* src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
* builds/beos: Added BeOS-specific files to the old build system
(no changes were necessary to support BeOS in the Jamfile though).
* ftconfig.h, ftoption.h: Updated "ftconfig.h" to detect 64-bit int
types on platforms where Autoconf is not available). Also removed
FTCALC_USE_LONG_LONG and replaced it with
FT_CONFIG_OPTION_FORCE_INT64.
* builds/win32/freetype.dsp: Updated the Visual C++ project file.
Doesn't create a DLL yet.
* cffgload.c: Removed a compilation warning.
fixed-point square root. it is now used even with 64-bits
ints, as it's simply _much_ faster than calling FT_Sqrt64 :-)
* src/base/ftbbox.c : removed invalid "#include FT_BEZIER_H" line
direct computations with 16.16 values instead of sub-divisions.
It is now slower, but proves a point :-)
* src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c :
fixed the bezier stack depths..
* src/base/ftcalc.c (FT_MulFix): minor rounding fix
* builds/beos : added BeOS-specific files to the old build system
(no changes were necessary to support BeOS in the Jamfile though)
types on platforms where Autoconf is not available). Also removed
FTCALC_USE_LONG_LONG and replaced it with FT_CONFIG_OPTION_FORCE_INT64
* builds/win32/freetype.dsp: updated the Visual C++ project file. Doesn't
create a DLL yet..
* cffgload.c: removed a compilation warning
Renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to
FT_SFNT_NAMES_H.
* docs/docmaker.py: Added generation of INDEX link in table of
contents.
* INSTALL, docs/BUILD: Updated documentation to indicate that the
compilation process has changed slightly (no more `src' required in
* builds/*/*-def.mk: Changed the objects directory from "obj" to
"objs".
* include/freetype/config/ftheader.h: Removed obsolete macros like
FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
were previously defined in <freetype/ftcache.h>. Added comments to
be included in a new API Reference section.
* src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each
component needs to add its own directory to the include path at
compile time. Modified all "rules.mk" and "descrip.mms"
accordingly.
* src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
compiler warnings in pedantic modes.
* include/config/ft2build.h, include/config/ftheader.h: The file
top-level <ft2build.h>.
* include/config/ftheader.h: Added new section describing the #include
macros.
the Type 2 glyph charstring (used by conversion programs).
* docs/docmaker.py: Added cross-references generation as well as
seac emulation provided by the Type 2 endchar operator.
* src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
Added support for clipped direct rendering in the smooth renderer.
* src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
* include/freetype/config/ftheader.h: removed obsolete macros like
FT_SOURCE_FILE, etc.. and added cache-specific macro definitions that
were previously defined in <freetype/ftcache.h>. Added comments to be
included in a new API Reference section.
* src/*/*: removed the use of FT_SOURCE_FILE, etc.. now, each component
needs to added its own directory to the include path at compile time.
Modified all "rules.mk" and "descrip.mms" accordingly..
X Windows).
* include/freetype/internal/ftdebug.h (FT_Trace): Added values for
PCF driver.
* include/freetype/internal/pcftypes.h: New file.
* include/freetype/config/ftmodule.h: Added PCF driver module.
* src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
* builds/modules.mk (clean_module_list): Fixed deletion of module
file in case `make make_module_list' is called before `make setup'.
to use direct definitions. This is the only way to do these things
in a portable way :-( The rest of the code should follow shortly
though everything compiles now.
* builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
* builds/win32/detect.mk: Added support for the Intel C/C++
compiler, as well as _preliminary_ (read: doesn't work!) support for
Watcom. Also added a new setup target. Type "make setup list" for
a list of supported command-line compilers on Win32.
* src/base/ftdebug.c: Added dummy symbol to avoid empty file if
conditionals are off.
include/freetype/internal/internal.h: fixed header inclusion macros
to use direct definitions. This is the only way to do these things
in a portable way :-( The rest of the code should follow shortly
though everything compiles now..
* builds/compiler/intelc.mk, builds/compiler/watcom.mk,
builds/win32/detect.mk: added support for the Intel C/C++ compiler,
as well as _preliminary_ (read: doesn't work !!) support for Watcom.
Also added a new setup target. Type "make setup list" for a list
of supported command-line compilers on Win32..
Removed. ANSI C doesn't (explicitly) allow macro expansion in
arguments using `##'.
(FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
names directly. Make them configurable. Use `##' to strip leading
and trailing spaces from arguments.
* builds/unix/ft2unix.h: Adapted.
* src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
ft_close_stream): Use FT_CALLBACK_DEF.
* builds/unix/ftsystem.c: Use new header scheme.
(FT_Done_Memory): Use free() from FT_Memory structure.
* src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
* include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
`__' (those which haven't converted yet). Fixed minor conversion
issues.
* src/winfonts/winfnt.c: Updated to new header inclusion scheme.
* */*.[ch]: Changed source files to adhere to the new
* src/cff/cff.c, src/cff/rules.mk: Updated.
* */*.[ch]: Now using <ft2build.h> as the default build and setup
* 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.
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..
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
as the build directory. This is used to specify a specific
"ftoption.h" that toggles all traces and logging on.
Hence, the default build doesn't need the traces
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!
- disabled the TrueType interpreter by default
- disabled the "type1" driver, "type1z" is now used
by default (the internal driver name is "type1" now !!)
- 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..