* 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..
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
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).
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.
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.
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.
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
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
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
- 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..
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.
"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 :-)
.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.
- 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..
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.
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
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 !!
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).
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).
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..
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.