Skip to content

Commit

Permalink
This commit was generated by cvs2svn to compensate for changes in r2038,
Browse files Browse the repository at this point in the history
which included commits to RCS files with non-trunk default branches.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2039 a95241bf-73f2-0310-859d-f6bbb57e9c96
  • Loading branch information
weinhold committed Nov 20, 2002
1 parent e7f818f commit 389d576
Show file tree
Hide file tree
Showing 162 changed files with 7,026 additions and 6,073 deletions.
155 changes: 150 additions & 5 deletions docs/freetype2/CHANGES
Original file line number Diff line number Diff line change
@@ -1,17 +1,162 @@
LATEST CHANGES BETWEEN 2.1.1 and 2.1.0
LATEST CHANGES BETWEEN 2.1.3 and 2.1.2

I. IMPORTANT BUG FIXES

- FT_Vector_Transform had been incorrectly modified in 2.1.2, resulting
in incorrect transformations being applied (for example, rotations
were processed in opposite angles).

- The format 8 and 12 TrueType charmap enumeration routines have been
fixed (FT_Get_Next_Char returned invalid values).

- The PFR font driver returned incorrect advance widths if the outline
and metrics resolution defined in the font file were different.

- FT_Glyph_To_Bitmap now returns successfully when called with an
FT_BitmapGlyph argument (it previously returned an error).

- A bug in the Type 1 loader that prevented valid font bounding boxes to
be loaded from multiple master fonts.

- The SFNT validation code has been rewritten. FreeType can now load
"broken" fonts that were usable on Windows, but not with previous
versions of the library.

- The computation of bearings in the BDF driver has been fixed.

- The Postscript hinter crashed when trying to hint certain glyphs (more
precisely, when trying to apply hints to an empty glyph outline).

- The TrueType glyph loader now supports composites in "Apple format"
(they differ slightly from Microsoft/OpenType ones in the way transform
offsets are computed).

- FreeType was very slow at opening certain asian CID/CFF fonts, due
to fixed increment in dynamic array re-allocations. This has been
changed to exponential behaviour to get acceptable performance

II. IMPORTANT CHANGES

- the PCF driver now supports gzip-compressed font files natively. This
means that you'll be able to use all these bitmap fonts that come
with XFree86 with FreeType (and libXft/libXft2, by extension).

- The automatic and postscript hinters have both been updated. This
results in a relatively important increase of rendering quality since
many nasty defaults have been supressed. Please visit the web page:

http://www.freetype.org/hinting/smooth-hinting.html

for additional details on this topic.

- The "load_flags" parameter of FT_Load_Glyph is now an FT_Int32
(instead of just being an FT_Int). This breaks source and binary
compatibility for 16bit systems only, while retaining both of them for
32 and 64 bit ones.

Some new flags have been added consequently:

FT_LOAD_NO_AUTOHINT :: Disable the use of the auto-hinter
(but not native format hinters).

FT_LOAD_TARGET_NORMAL :: Hint and render for normal anti-aliased
displays.

FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays.

FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or BGR
sub-pixel displays (like LCD screens).
THIS IS STILL EXPERIMENTAL!

FT_LOAD_TARGET_LCD_V :: Same as FT_LOAD_TARGET_LCD, for vertical
sub-pixel displays (like rotated LCD
screens). THIS IS STILL EXPERIMENTAL!

FT_LOAD_MONOCHROME is still supported, but only affects rendering, not
the hinting.

Note that the 'ftview' demo program available in the 'ft2demos' package
has been updated to support LCD-optimized display on non-paletted
displays (under Win32 and X11)

- The PFR driver now supports embedded bitmaps (all formats supported),
and returns correct kerning metrics for all glyphs

- The TrueType charmap loader now supports certain "broken" fonts that
load under Windows without problems.

- The cache API has been slightly modified (it's still a beta!):

- The type FTC_ImageDesc has been removed; it is now replaced by
FTC_ImageTypeRec. Note that one of its fields is a `load_flag'
parameter for FT_Load_Glyph.

- The field "num_grays" of FT_SBitRec has been changed to "max_grays"
in order to fit within a single byte. Its maximum value is thus 255
(instead of 256 as previously).


III. MISCELLANEOUS

- Added support for the DESTDIR variable during "make install". This
simplifies packaging of FreeType.

- included modified copies of the ZLib sources in 'src/gzip' in order
to support gzip-compressed PCF fonts. We do not use the system-provided
zlib for now, though this is a probable enhancement for future releases

- The DocMaker tool used to generate the on-line API reference has been
completely rewritten. It is now located in
"src/tools/docmaker/docmaker.py". Features:

- better cross-referenced output
- more polished output
- uses Python regular expressions (though it didn't speed the
program)
- much more modular structure, which allows for different "backends"
in order to generate HTML, XML, or whatever format.

One can regenerate the API reference by calling:

python src/tools/docmaker/docmaker.py \
--prefix=ft2 \
--title=FreeType-2.1.3 \
--output=<outputdirectory>
include/freetype/*.h \
include/freetype/config/*.h \
include/freetype/cache/*.h

- A new, experimental, support for incremental font loading (i.e.,
loading of fonts where the glyphs are not in the font file itself, but
provided by an external component, like a Postscript interpreter) has
been added by Graham Asher. This is still work in progress, however.

- A new, EXPERIMENTAL, path stroker has been added. It doesn't suffer
from severe rounding errors and treat bezier arcs directly. Still
work in progress (i.e. not part of the official API). See the file
<freetype/ftstroker.h> for some of the details.

- The massive re-formatting of sources and internal re-design is still
under-way. Many internal functions, constants, and types have been
renamed.


========================================================================

LATEST CHANGES BETWEEN 2.1.2 and 2.1.1

I. IMPORTANT BUG FIXES

- Many font drivers didn't select a Unicode charmap by default when
a new face was opened (with the FT_CONFIG_OPTION_USE_CMAPS options
enabled), causing many applications to not be able to display text
correctly with the 2.1.x releases.

- The PFR driver had a bug in its composite loading code that produces
incorrectly placed accents with many fonts.

- The Type42 driver crashed sometimes due to a nasty bug.

- The Type 1 custom encoding charmap didn't handle the case where the
first glyph index wasn't 0.

Expand Down Expand Up @@ -87,7 +232,7 @@ LATEST CHANGES BETWEEN 2.1.1 and 2.1.0

- The cache sub-system has been optimized in important ways. Cache hits
are now significantly faster. For example, using the CMap cache is
about twice faster than calling FT_Get_Char_Index on most platforms.
about twice faster than calling FT_Get_Char_Index on most platforms.
Similarly, using an SBit cache is about five times faster than loading
the bitmaps from a bitmap file, and 300 to 500 times faster than
generating them from a scalable format.
Expand Down
8 changes: 0 additions & 8 deletions headers/libs/freetype2/freetype/cache/ftccache.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@
/* define to allow cache lookup inlining */
#define FTC_CACHE_USE_INLINE

/* define to use linear hash table */
#define FTC_CACHE_USE_LINEAR_HASHING


FT_BEGIN_HEADER

Expand Down Expand Up @@ -181,14 +178,9 @@ FT_BEGIN_HEADER
FT_UInt cache_index; /* in manager's table */
FT_Pointer cache_data; /* used by cache node methods */

#ifdef FTC_CACHE_USE_LINEAR_HASHING
FT_UFast p;
FT_UFast mask;
FT_Long slack;
#else
FT_UFast nodes;
FT_UFast size;
#endif
FTC_Node* buckets;

FT_LruList_ClassRec family_class;
Expand Down
107 changes: 54 additions & 53 deletions headers/libs/freetype2/freetype/cache/ftcimage.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
/* */
/* FreeType Image cache (specification). */
/* */
/* Copyright 2000-2001 by */
/* Copyright 2000-2001, 2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
Expand Down Expand Up @@ -53,65 +53,43 @@ FT_BEGIN_HEADER
/*************************************************************************/


#define FTC_IMAGE_FORMAT( x ) ( (x) & 7 )


#define ftc_image_format_bitmap 0x0000
#define ftc_image_format_outline 0x0001

#define ftc_image_format_mask 0x000F

#define ftc_image_flag_monochrome 0x0010
#define ftc_image_flag_unhinted 0x0020
#define ftc_image_flag_autohinted 0x0040
#define ftc_image_flag_unscaled 0x0080
#define ftc_image_flag_no_sbits 0x0100

/* monochrome bitmap */
#define ftc_image_mono ftc_image_format_bitmap | \
ftc_image_flag_monochrome

/* anti-aliased bitmap */
#define ftc_image_grays ftc_image_format_bitmap

/* scaled outline */
#define ftc_image_outline ftc_image_format_outline


/*************************************************************************/
/* */
/* <Struct> */
/* FTC_ImageDesc */
/* */
/* <Description> */
/* A simple structure used to describe a given glyph image category. */
/* Note that this is different from @FTC_Image_Desc. */
/* */
/* <Fields> */
/* size :: An @FTC_SizeRec used to describe the glyph's face and */
/* size. */
/* */
/* type :: The glyph image's type. Note that it is a 32-bit uint. */
/* */
/* <Note> */
/* This type deprecates @FTC_Image_Desc. */
/* */
typedef struct FTC_ImageDesc_
/**************************************************************************
*
* @struct:
* FTC_ImageTypeRec
*
* @description:
* A simple structure used to describe the type of glyph image to be
* loaded into the cache.
*
* @fields:
* font :: An @FTC_FontRec used to describe the glyph's face and size.
*
* flags :: The load flags to be applied when loading the glyph; see
* the @FT_LOAD_XXX constants for details.
*
* @note:
* This type completely replaces the @FTC_Image_Desc structure which is
* now obsolete.
*/
typedef struct FTC_ImageTypeRec_
{
FTC_FontRec font;
FT_UInt32 type;
FT_Int32 flags;

} FTC_ImageDesc;
} FTC_ImageTypeRec;

typedef struct FTC_ImageTypeRec_* FTC_ImageType;

/* */

#define FTC_IMAGE_DESC_COMPARE( d1, d2 ) \
#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \
( FTC_FONT_COMPARE( &(d1)->font, &(d2)->font ) && \
(d1)->type == (d2)->type )
(d1)->flags == (d2)->flags )

#define FTC_IMAGE_DESC_HASH( d ) \
#define FTC_IMAGE_TYPE_HASH( d ) \
(FT_UFast)( FTC_FONT_HASH( &(d)->font ) ^ \
( (d)->type << 4 ) )
( (d)->flags << 4 ) )


/*************************************************************************/
Expand Down Expand Up @@ -160,7 +138,7 @@ FT_BEGIN_HEADER
/* <Input> */
/* cache :: A handle to the source glyph image cache. */
/* */
/* desc :: A pointer to a glyph image descriptor. */
/* type :: A pointer to a glyph image type descriptor. */
/* */
/* gindex :: The glyph index to retrieve. */
/* */
Expand Down Expand Up @@ -193,13 +171,36 @@ FT_BEGIN_HEADER
/* */
FT_EXPORT( FT_Error )
FTC_ImageCache_Lookup( FTC_ImageCache cache,
FTC_ImageDesc* desc,
FTC_ImageType type,
FT_UInt gindex,
FT_Glyph *aglyph,
FTC_Node *anode );

/* */

#define ftc_image_format( x ) ( (x) & 7 )


#define ftc_image_format_bitmap 0x0000
#define ftc_image_format_outline 0x0001

#define ftc_image_format_mask 0x000F

#define ftc_image_flag_monochrome 0x0010
#define ftc_image_flag_unhinted 0x0020
#define ftc_image_flag_autohinted 0x0040
#define ftc_image_flag_unscaled 0x0080
#define ftc_image_flag_no_sbits 0x0100

/* monochrome bitmap */
#define ftc_image_mono ftc_image_format_bitmap | \
ftc_image_flag_monochrome

/* anti-aliased bitmap */
#define ftc_image_grays ftc_image_format_bitmap

/* scaled outline */
#define ftc_image_outline ftc_image_format_outline

/*************************************************************************/
/* */
Expand Down
Loading

0 comments on commit 389d576

Please sign in to comment.