* src/cid/cidobjs.c (CID_Size_Init): Renamed to...

(cid_size_init): This.
* src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
(t1_builder_add_point1): This.

Updated all affected code.

* src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
* src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.

Formatting, minor doc fixes.
This commit is contained in:
Werner Lemberg 2002-09-05 15:10:54 +00:00
parent 08840150b7
commit 6b5c669b7b
33 changed files with 1029 additions and 846 deletions

238
ChangeLog
View File

@ -1,56 +1,198 @@
2002-09-05 Werner Lemberg <wl@gnu.org>
* src/cid/cidobjs.c (CID_Size_Init): Renamed to...
(cid_size_init): This.
* src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
(t1_builder_add_point1): This.
Updated all affected code.
* src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
* src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
2002-09-04 David Turner <david@freetype.org>
* include/freetype/freetype.h: corrected the definition of
ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
the erroneous FT_ENCODING_SYMBOL)
* builds/unix/unix-def.in: added "datadir" definition
(thanks to Anthony Fok)
* include/freetype/freetype.h: Corrected the definition of
ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
the erroneous FT_ENCODING_SYMBOL).
* builds/unix/unix-def.in (datadir): Initialize it (thanks to
Anthony Fok).
2002-08-29 David Turner <david@freetype.org>
* src/pshinter/pshalgo.c: slight modification to the Postscript hinter
to slightly increase the contrast of smooth hinting. This is very similar
to what the auto-hinter does when it comes to stem width computations.
However, it produces better results with well-hinted fonts..
Slight modification to the Postscript hinter to slightly increase
the contrast of smooth hinting. This is very similar to what the
auto-hinter does when it comes to stem width computations. However,
it produces better results with well-hinted fonts.
* README, docs/CHANGES: updating for the 2.1.3 release
* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
mode to `init' member function.
(T1_DecoderRec): Add hint mode.
* include/freetype/internal/pshints (T1_Hints_ApplyFunc,
T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
* src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
* src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
hint flags.
* src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
* src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
(STRONGER): New macro.
(psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
of `hint_flags'.
Implement announced changes.
* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
vertical and horizontal hints and snapping.
* README, docs/CHANGES: Updating for the 2.1.3 release.
2002-08-27 David Turner <david@freetype.org>
* massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all logical
transformations of the sources:
* Massive re-formatting changes to many, many source files. I don't
want to list them all here. The operations performed were all
logical transformations of the sources:
- trying to convert all enums and constants to CAPITALIZED_STYLE, with
#define definitions like
- trying to convert all enums and constants to CAPITALIZED_STYLE,
#with define definitions like
#define my_old_constants MY_NEW_CONSTANT
#define my_old_constants MY_NEW_CONSTANT
- big, big update of the documentation comments
- big, big update of the documentation comments
* include/freetype/freetype.h, src/base/ftobjs.c, src/smooth/ftsmooth.c,
include/freetype/ftimage.h: adding support for LCD-optimized rendering
though the new constants/enums:
* include/freetype/freetype.h, src/base/ftobjs.c,
src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
for LCD-optimized rendering though the new constants/enums:
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
this is still work in progress, don't expect everything to work correctly
though most of the features have been implemented.
This is still work in progress, don't expect everything to work
correctly though most of the features have been implemented.
* adding new FT_LOAD_XXX flags, used to specify both hinting and rendering
targets:
* Adding new FT_LOAD_XXX flags, used to specify both hinting and
rendering targets:
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated hinting & rendering
FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
FT_LOAD_TARGET_MONO :: monochrome bitmaps
FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated
hinting & rendering
FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated
hinting & rendering
note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
behaviour of the font engine is _unchanged_.
* include/freetype/ftimage.h
(FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
(FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
(FT_Raster_Span_Func): Renamed to ...
(FT_SpanFunc): This.
(FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
(FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
Updated all affected code.
* include/freetype/ftrender.h
(FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
to ...
(FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
(FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
(FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
This.
Updated all affected code.
* src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
pointers to the corresponding `*Rec' structures. All source files
have been updated accordingly.
* src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
* src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
* src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
(cid_face_compute_max_advance): This.
(CID_Load_Glyph): Renamed to...
(cid_slot_load_glyph): This.
* src/cid/cidload.c (CID_Open_Face): Renamed to...
(cid_face_open): This.
* src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
(cid_slot_{done,init}): This.
(CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
(cid_size_{get_globals_funcs,done,reset): This.
(CID_Face_{Done,Init}): Renamed to...
(cid_face_{done,init}): This.
(CID_Driver_{Done,Init}: Renamed to...
(cid_driver_{done,init}: This.
* src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
(cid_parser_{new,done}): This.
* src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
(cid_parser_skip_{spaces,alpha}): This.
(CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
to...
(cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
This.
(CID_Load_{Field,Field_Table): Renamed to...
(cid_parser_load_{field,field_table}): This.
* src/cid/cidriver.c (CID_Get_Interface): Renamed to...
(cid_get_interface): This.
Updated all affected code.
* src/psaux/psobjs.c (PS_Table_*): Renamed to...
(ps_table_*): This.
(T1_Builder_*): Renamed to...
(t1_builder_*): This.
* src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
(t1_decoder_*): This.
* src/psnames/psmodule.c (PS_*): Renamed to...
(ps_*): This.
Updated all affected code.
* src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
(sfnt_get_interface): This.
* src/sfnt/sfobjs.c (SFNT_*): Renamed to...
(sfnt_*): This.
* src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
(tt_face_{load,free}_charmap): This.
* src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
(tt_face_build_cmaps): This.
* src/sfnt/ttload.c (TT_*): Renamed to...
(tt_face_*): This.
* src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
(tt_post_default_names): This.
(Load_*): Renamed to...
(load_*): This.
(TT_*): Renamed to...
(tt_face_*): This.
* src/sfnt/ttsbit.c (TT_*): Renamed to...
(tt_face_*): This.
({Find,Load,Crop}_*): Renamed to...
({find,load,crop}_*): This.
Updated all affected code.
* src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
(ft_smooth_render_generic): This.
Make function more generic by adding vertical and horizontal scaling
factors.
(ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
New functions.
(ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
classes.
* src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
(tt_glyphzone_{done,new}): This.
(TT_{Face,Size,Driver}_*): Renamed to...
(tt_{face,size,driver}_*): This.
* src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
(tt_face_load_loca): This.
(TT_Load_Programs): Renamed to...
(tt_face_load_fpgm): This.
(TT_*): Renamed to...
(tt_face_*): This.
2002-08-27 Werner Lemberg <wl@gnu.org>
@ -58,28 +200,26 @@
2002-08-23 Graham Asher <graham.asher@btinternet.com>
* /src/cff/cffgload.c (cff_operator_seac)
[FT_CONFIG_OPTION_INCREMENTAL] incremental fonts (actually
not incremental in the case of CFF but just using callbacks
to get glyph recipes) pass the character code, not the glyph
index, to the get_glyph_data function; they have no
valid charset table.
* src/cff/cffgload.c (cff_operator_seac)
[FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
incremental in the case of CFF but just using callbacks to get glyph
recipes) pass the character code, not the glyph index, to the
get_glyph_data function; they have no valid charset table.
* /src/cff/cffload.c (cff_font_load) removed special cases
for FT_CONFIG_OPTION_INCREMENTAL, which are no longer
necessary; CFF fonts provided via the incremental interface
now have to conform more closely to the CFF font format.
* src/cff/cffload.c (cff_font_load): Removed special cases for
FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
fonts provided via the incremental interface now have to conform
more closely to the CFF font format.
* /src/cff/cffload.h (cff_font_load declaration)
removed argument now unneeded.
* src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
* /src/cff/cffobjs.c (cff_face_init) changed call to
cff_font_load to conform with new signature.
* src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
to conform with new signature.
2002-08-22 David Turner <david@freetype.org>
* src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
src/bdf/bdfdrivr.c: removed compiler warnings
* src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
src/bdf/bdfdrivr.c: Removed compiler warnings.
2002-08-21 Werner Lemberg <wl@gnu.org>

View File

@ -6,72 +6,69 @@ LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
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 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 when the
outline and metrics resolution defined in the font file were
different
- 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 returnes succesfully when called with
a FT_BitmapGlyph argument (it previously returned an error)
- 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.
- A bug in the Type 1 loader that prevented valid font bounding boxes to
be loaded from multiple master fonts.
- the SFNT validation code was rewritten. FreeType can now load
- 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
versions of the library.
- the computation of bearings in the BDF driver has been fixed
- The computation of bearings in the BDF driver has been fixed.
II. MISCELLANEOUS
- 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.
- 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.
- 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, 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 sever rounding errors, and treat bezier arcs directly. Still
work in progress
- 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.
- the massive re-formatting of sources and internal re-design is still
under-way. Many internal functions, constants, and types have been
- The massive re-formatting of sources and internal re-design is still
under-way. Many internal functions, constants, and types have been
renamed.
- the "load_flags" parameter of FT_Load_Glyph is now a 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.
- 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:
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_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_NORMAL :: Hint and render for normal anti-aliased
displays.
FT_LOAD_TARGET_MONO :: hint and render for 1-bit displays
FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays.
FT_LOAD_TARGET_LCD :: hint and render for horizontal RGB or BGR
FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or BGR
sub-pixel displays (like LCD screens).
THIS IS STILL EXPERIMENTAL
THIS IS STILL EXPERIMENTAL!
FT_LOAD_TARGET_LCD_V :: same a 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.
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.
========================================================================

View File

@ -403,17 +403,17 @@ FT_BEGIN_HEADER
/* should redefine this macro in case of problems to something like */
/* this: */
/* */
/* #define FT_ENC_TAG( value, _x1, _x2, _x3, _x4 ) (value) */
/* #define FT_ENC_TAG( value, a, b, c, d ) (value) */
/* */
/* to get a simple enumeration without assigning special numbers. */
/* */
#ifndef FT_ENC_TAG
#define FT_ENC_TAG(value,a,b,c,d) \
value = ( ( (FT_UInt32)(a) << 24 ) | \
( (FT_UInt32)(b) << 16 ) | \
( (FT_UInt32)(c) << 8 ) | \
(FT_UInt32)(d) )
#define FT_ENC_TAG( value, a, b, c, d ) \
value = ( ( (FT_UInt32)(a) << 24 ) | \
( (FT_UInt32)(b) << 16 ) | \
( (FT_UInt32)(c) << 8 ) | \
(FT_UInt32)(d) )
#endif /* FT_ENC_TAG */
@ -433,88 +433,85 @@ FT_BEGIN_HEADER
/* */
/* The values of this type correspond to specific character */
/* repertories (i.e. charsets), and not to text encoding methods */
/* (like UTF-8, UTF-16, GB2312_EUC, etc...) */
/* (like UTF-8, UTF-16, GB2312_EUC, etc.). */
/* */
/* Other encodings might be defined in the future. */
/* */
/* <Values> */
/* FT_ENCODING_NONE :: */
/* the encoding value 0 is reserved. */
/* The encoding value 0 is reserved. */
/* */
/* FT_ENCODING_UNICODE :: */
/* corresponds to the Unicode character set. This value covers */
/* Corresponds to the Unicode character set. This value covers */
/* all versions of the Unicode repertoire, including ASCII and */
/* Latin-1. Most fonts include a Unicode charmap, but not all */
/* Latin-1. Most fonts include a Unicode charmap, but not all */
/* of them. */
/* */
/* FT_ENCODING_MS_SYMBOL :: */
/* corresponds to the Microsoft Symbol encoding, used to encode */
/* mathematical symbols in the 32..255 character code range. For */
/* more information, see http://www.ceviz.net/symbol.htm */
/* Corresponds to the Microsoft Symbol encoding, used to encode */
/* mathematical symbols in the 32..255 character code range. For */
/* more information, see `http://www.ceviz.net/symbol.htm'. */
/* */
/* FT_ENCODING_MS_SJIS :: */
/* corresponds to Microsoft's Japanese SJIS encoding. More info */
/* at http://langsupport.japanreference.com/encoding.shtml. */
/* see note on multi-byte encodings below. */
/* Corresponds to Microsoft's Japanese SJIS encoding. More info */
/* at `http://langsupport.japanreference.com/encoding.shtml'. */
/* See note on multi-byte encodings below. */
/* */
/* FT_ENCODING_MS_GB2312 :: */
/* corresponds to the encoding system for Simplified Chinese, as */
/* used in China. Only found in some TrueType fonts */
/* Corresponds to the encoding system for Simplified Chinese, as */
/* used in China. Only found in some TrueType fonts. */
/* */
/* */
/* FT_ENCODING_MS_BIG5 :: */
/* corresponds to the encoding system for Simplified Chinese, as */
/* used in Taiwan and Hong Kong. Only found in some TrueType fonts */
/* Corresponds to the encoding system for Traditional Chinese, as */
/* used in Taiwan and Hong Kong. Only found in some TrueType fonts. */
/* */
/* FT_ENCODING_MS_WANSUNG :: */
/* corresponds to the Korean encoding system known as Wansung. */
/* Corresponds to the Korean encoding system known as Wansung. */
/* This is a Microsoft encoding that is only found in some TrueType */
/* fonts. For more information, see */
/* http://www.microsoft.com/typography/unicode/949.txt */
/* fonts. For more information, see */
/* `http://www.microsoft.com/typography/unicode/949.txt'. */
/* */
/* FT_ENCODING_MS_JOHAB :: */
/* The Korean standard character set (KS C-5601-1992), which */
/* corresponds to Windows code page 1361. This character set */
/* corresponds to Windows code page 1361. This character set */
/* includes all possible Hangeul character combinations. */
/* only found on some rare TrueType fonts. */
/* Only found on some rare TrueType fonts. */
/* */
/* FT_ENCODING_ADOBE_LATIN_1 :: */
/* corresponds to a Latin-1 encoding as defined in a Type 1 */
/* Postscript font. It is limited to no more than 256 character */
/* codes. */
/* Corresponds to a Latin-1 encoding as defined in a Type 1 */
/* Postscript font. It is limited to 256 character codes. */
/* */
/* FT_ENCODING_ADOBE_STANDARD :: */
/* corresponds to the Adobe Standard encoding, as found in Type 1, */
/* CFF and OpenType/CFF fonts. It is limited to no more than 256 */
/* character codes. */
/* Corresponds to the Adobe Standard encoding, as found in Type 1, */
/* CFF, and OpenType/CFF fonts. It is limited to 256character */
/* codes. */
/* */
/* FT_ENCODING_ADOBE_EXPERT :: */
/* corresponds to the Adobe Expert encoding, as found in Type 1, */
/* CFF and OpenType/CFF fonts. It is limited to no more than 256 */
/* character codes */
/* Corresponds to the Adobe Expert encoding, as found in Type 1, */
/* CFF, and OpenType/CFF fonts. It is limited to 256 character */
/* codes. */
/* */
/* FT_ENCODING_ADOBE_CUSTOM :: */
/* corresponds to a custom encoding, as found in Type 1, CFF and */
/* OpenType/CFF fonts. It is limited to no more than 256 character */
/* codes */
/* Corresponds to a custom encoding, as found in Type 1, CFF, and */
/* OpenType/CFF fonts. It is limited to 256 character codes. */
/* */
/* FT_ENCODING_APPLE_ROMAN :: */
/* corresponds to the 8-bit Apple roman encoding. Many TrueType and */
/* OpenType fonts contain a charmap for this encoding, since it */
/* older versions of Mac OS are able to use it. */
/* Corresponds to the 8-bit Apple roman encoding. Many TrueType and */
/* OpenType fonts contain a charmap for this encoding, since older */
/* versions of Mac OS are able to use it. */
/* */
/* FT_ENCODING_OLD_LATIN_2 :: */
/* this value is deprecated and was never used nor reported by */
/* FreeType. Don't use or test for it. */
/* This value is deprecated and was never used nor reported by */
/* FreeType. Don't use or test for it. */
/* */
/* <Note> */
/* By default, FreeType automatically synthetizes a Unicode charmap */
/* for Postscript fonts, using their glyph names dictionaries. */
/* However, it will also report the encodings defined explicitely */
/* in the font file, for the cases when they're needed, with the */
/* Adobe values as well */
/* However, it will also report the encodings defined explicitly in */
/* the font file, for the cases when they are needed, with the Adobe */
/* values as well. */
/* */
typedef enum FT_Encoding_
{
FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ),
@ -539,13 +536,14 @@ FT_BEGIN_HEADER
} FT_Encoding;
/*************************************************************************/
/* */
/* <Enum> */
/* ft_encoding_xxx */
/* */
/* <Description> */
/* These constants are deprecated, use the corresponding @FT_Encoding */
/* These constants are deprecated; use the corresponding @FT_Encoding */
/* values instead. */
/* */
/* <Values> */
@ -582,6 +580,7 @@ FT_BEGIN_HEADER
#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM
#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN
/*************************************************************************/
/* */
/* <Struct> */
@ -668,7 +667,8 @@ FT_BEGIN_HEADER
/* */
/* style_flags :: A set of bit flags indicating the style of */
/* the face (i.e., italic, bold, underline, */
/* etc). See the @FT_STYLE_FLAG_XXX constants */
/* etc). See the @FT_STYLE_FLAG_XXX */
/* constants. */
/* */
/* num_glyphs :: The total number of glyphs in the face. */
/* */
@ -858,73 +858,72 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* A list of bit flags used in the 'face_flags' field of the */
/* @FT_FaceRec structure. They inform client applications of */
/* @FT_FaceRec structure. They inform client applications of */
/* properties of the corresponding face. */
/* */
/* <Values> */
/* FT_FACE_FLAG_SCALABLE :: */
/* indicates that the face provides vectorial outlines. This doesn't */
/* prevent embedded bitmaps. I.e. a face can have both this bit and */
/* @FT_FACE_FLAG_FIXED_SIZES set */
/* FT_FACE_FLAG_SCALABLE :: */
/* Indicates that the face provides vectorial outlines. This */
/* doesn't prevent embedded bitmaps, i.e., a face can have both */
/* this bit and @FT_FACE_FLAG_FIXED_SIZES set */
/* */
/* FT_FACE_FLAG_FIXED_SIZES :: */
/* indicates that the face contains 'fixed sizes', i.e. bitmap */
/* strikes for some given pixel sizes. See the 'num_fixed_sizes' */
/* and 'available_sizes' fields of @FT_FaceRec */
/* FT_FACE_FLAG_FIXED_SIZES :: */
/* Indicates that the face contains `fixed sizes', i.e., bitmap */
/* strikes for some given pixel sizes. See the `num_fixed_sizes' */
/* and `available_sizes' fields of @FT_FaceRec. */
/* */
/* FT_FACE_FLAG_FIXED_WIDTH :: */
/* indicates that the face contains fixed-width characters (like */
/* Courier, Lucido, MonoType, etc..) */
/* FT_FACE_FLAG_FIXED_WIDTH :: */
/* Indicates that the face contains fixed-width characters (like */
/* Courier, Lucido, MonoType, etc.). */
/* */
/* FT_FACE_FLAG_SFNT :: */
/* indicates that the face uses the 'sfnt' storage scheme. For */
/* now, this means TrueType and OpenType */
/* FT_FACE_FLAG_SFNT :: */
/* Indicates that the face uses the `sfnt' storage scheme. For */
/* now, this means TrueType and OpenType. */
/* */
/* FT_FACE_FLAG_HORIZONTAL :: */
/* indicates that the face contains horizontal glyph metrics. */
/* This should be set for all common formats */
/* FT_FACE_FLAG_HORIZONTAL :: */
/* Indicates that the face contains horizontal glyph metrics. This */
/* should be set for all common formats. */
/* */
/* FT_FACE_FLAG_VERTICAL :: */
/* indicates that the face contains vertical glyph metrics. This */
/* is only available in some formats, not all of them */
/* FT_FACE_FLAG_VERTICAL :: */
/* Indicates that the face contains vertical glyph metrics. This */
/* is only available in some formats, not all of them. */
/* */
/* FT_FACE_FLAG_KERNING :: */
/* indicates that the face contains kerning information. When set, */
/* the kerning idstance can be retrieved through the function */
/* FT_Get_Kerning. Note that if unset, this function will always */
/* return the vector (0,0) */
/* FT_FACE_FLAG_KERNING :: */
/* Indicates that the face contains kerning information. If set, */
/* the kerning distance can be retrieved through the function */
/* @FT_Get_Kerning. Note that if unset, this function will always */
/* return the vector (0,0). */
/* */
/* FT_FACE_FLAG_FAST_GLYPHS :: */
/* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT */
/* FT_FACE_FLAG_FAST_GLYPHS :: */
/* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */
/* */
/* FT_FACE_FLAG_MULTIPLE_MASTERS :: */
/* indicates that the font contains multiple masters and is capable */
/* of interpolating between them. See the multiple-masters specific */
/* API for details */
/* FT_FACE_FLAG_MULTIPLE_MASTERS :: */
/* Indicates that the font contains multiple masters and is capable */
/* of interpolating between them. See the multiple-masters */
/* specific API for details. */
/* */
/* FT_FACE_FLAG_GLYPH_NAMES :: */
/* indicates that the font contains glyph names that can be */
/* retrieved through @FT_Get_Glyph_Names. Note that some TrueType */
/* fonts contain broken glyph name tables. Use the function */
/* use @FT_Has_PS_Glyph_Name when needed. */
/* FT_FACE_FLAG_GLYPH_NAMES :: */
/* Indicates that the font contains glyph names that can be */
/* retrieved through @FT_Get_Glyph_Names. Note that some TrueType */
/* fonts contain broken glyph name tables. Use the function */
/* @FT_Has_PS_Glyph_Name when needed. */
/* */
/* FT_FACE_FLAG_EXTERNAL_STREAM :: */
/* used internally by FreeType to indicate that a face's stream */
/* was provided by the client application and should not be */
/* destroyed when @FT_Done_Face is called. Don't read or test */
/* this flag. */
/* FT_FACE_FLAG_EXTERNAL_STREAM :: */
/* Used internally by FreeType to indicate that a face's stream was */
/* provided by the client application and should not be destroyed */
/* when @FT_Done_Face is called. Don't read or test this flag. */
/* */
#define FT_FACE_FLAG_SCALABLE (1L << 0)
#define FT_FACE_FLAG_FIXED_SIZES (1L << 1)
#define FT_FACE_FLAG_FIXED_WIDTH (1L << 2)
#define FT_FACE_FLAG_SFNT (1L << 3)
#define FT_FACE_FLAG_HORIZONTAL (1L << 4)
#define FT_FACE_FLAG_VERTICAL (1L << 5)
#define FT_FACE_FLAG_KERNING (1L << 6)
#define FT_FACE_FLAG_FAST_GLYPHS (1L << 7)
#define FT_FACE_FLAG_MULTIPLE_MASTERS (1L << 8)
#define FT_FACE_FLAG_GLYPH_NAMES (1L << 9)
#define FT_FACE_FLAG_EXTERNAL_STREAM (1L << 10)
#define FT_FACE_FLAG_SCALABLE ( 1L << 0 )
#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 )
#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 )
#define FT_FACE_FLAG_SFNT ( 1L << 3 )
#define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 )
#define FT_FACE_FLAG_VERTICAL ( 1L << 5 )
#define FT_FACE_FLAG_KERNING ( 1L << 6 )
#define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 )
#define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 )
#define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 )
#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 )
/* */
@ -1075,8 +1074,6 @@ FT_BEGIN_HEADER
( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
/*************************************************************************/
/* */
/* <Constant> */
@ -1084,17 +1081,17 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* A list of bit-flags used to indicate the style of a given face. */
/* These are used in the 'style_flags' field of @FT_FaceRec */
/* These are used in the `style_flags' field of @FT_FaceRec. */
/* */
/* <Values> */
/* FT_STYLE_FLAG_ITALIC :: */
/* indicates that a given face is italicized */
/* FT_STYLE_FLAG_ITALIC :: */
/* Indicates that a given face is italicized. */
/* */
/* FT_STYLE_FLAG_BOLD :: */
/* indicates that a given face is bold */
/* FT_STYLE_FLAG_BOLD :: */
/* Indicates that a given face is bold. */
/* */
#define FT_STYLE_FLAG_ITALIC (1 << 0)
#define FT_STYLE_FLAG_BOLD (1 << 1)
#define FT_STYLE_FLAG_ITALIC ( 1 << 0 )
#define FT_STYLE_FLAG_BOLD ( 1 << 1 )
/*************************************************************************/
@ -1524,6 +1521,7 @@ FT_BEGIN_HEADER
#define FT_OPEN_DRIVER FT_OPEN_DRIVER
#define FT_OPEN_PARAMS FT_OPEN_PARAMS
/*************************************************************************/
/* */
/* <Struct> */
@ -2235,13 +2233,15 @@ FT_BEGIN_HEADER
#define FT_LOAD_NO_AUTOHINT 0x8000U
/* */
#define FT_LOAD_TARGET_(x) ( (FT_Int32)((x) & 7) << 16 )
#define FT_LOAD_TARGET_MODE(x) ((FT_Render_Mode)( ((x) >> 16) & 7 ))
#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_(FT_RENDER_MODE_NORMAL)
#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_(FT_RENDER_MODE_MONO)
#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_(FT_RENDER_MODE_LCD)
#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_(FT_RENDER_MODE_LCD_V)
#define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 7 ) << 16 )
#define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 7 ) )
#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO )
#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD )
#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V )
/*************************************************************************/
/* */
@ -2295,34 +2295,34 @@ FT_BEGIN_HEADER
/* */
/* <Description> */
/* An enumeration type that lists the render modes supported by */
/* FreeType 2. Each mode corresponds to a specific type of scanline */
/* FreeType 2. Each mode corresponds to a specific type of scanline */
/* conversion performed on the outline, as well as specific */
/* hinting optimizations. */
/* */
/* <Fields> */
/* FT_RENDER_MODE_NORMAL :: */
/* this is the default render mode; it corresponds to 8-bit */
/* anti-aliased bitmaps, using 256 levels of opacity */
/* FT_RENDER_MODE_NORMAL :: */
/* This is the default render mode; it corresponds to 8-bit */
/* anti-aliased bitmaps, using 256 levels of opacity. */
/* */
/* FT_RENDER_MODE_MONO :: */
/* this mode corresponds to 1-bit bitmaps */
/* FT_RENDER_MODE_MONO :: */
/* This mode corresponds to 1-bit bitmaps. */
/* */
/* FT_RENDER_MODE_LCD :: */
/* this mode corresponds to horizontal RGB/BGR sub-pixel displays, */
/* like LCD-screens. It produces 8-bit bitmaps that are 3 times the */
/* width of the original glyph outline in pixels, and which use the */
/* @FT_PIXEL_MODE_LCD mode */
/* FT_RENDER_MODE_LCD :: */
/* This mode corresponds to horizontal RGB/BGR sub-pixel displays, */
/* like LCD-screens. It produces 8-bit bitmaps that are 3 times */
/* the width of the original glyph outline in pixels, and which use */
/* the @FT_PIXEL_MODE_LCD mode. */
/* */
/* FT_RENDER_MODE_LCD_V :: */
/* this mode corresponds to vertical RGB/BGR sub-pixel displays */
/* (like PDA screens, rotated LCD displays, etc..). It produces */
/* 8-bit bitmaps that are 3 times the height of the original */
/* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode */
/* FT_RENDER_MODE_LCD_V :: */
/* This mode corresponds to vertical RGB/BGR sub-pixel displays */
/* (like PDA screens, rotated LCD displays, etc.). It produces */
/* 8-bit bitmaps that are 3 times the height of the original */
/* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */
/* */
/* <Note> */
/* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph are */
/* _not_ _filtered_ to reduce color-fringes. It's up to the caller to */
/* perform this pass */
/* _not filtered_ to reduce color-fringes. It is up to the caller to */
/* perform this pass. */
/* */
typedef enum FT_Render_Mode_
{
@ -2342,15 +2342,15 @@ FT_BEGIN_HEADER
/* ft_render_mode_xxx */
/* */
/* <Description> */
/* these constats are deprecated. Use the corresponding */
/* @FT_Render_Mode values instead */
/* These constats are deprecated. Use the corresponding */
/* @FT_Render_Mode values instead. */
/* */
/* <Values> */
/* ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL */
/* ft_render_mode_mono :: see @FT_RENDER_MODE_MONO */
/* */
#define ft_render_mode_normal FT_RENDER_MODE_NORMAL
#define ft_render_mode_mono FT_RENDER_MODE_MONO
#define ft_render_mode_normal FT_RENDER_MODE_NORMAL
#define ft_render_mode_mono FT_RENDER_MODE_MONO
/*************************************************************************/
@ -2407,16 +2407,18 @@ FT_BEGIN_HEADER
} FT_Kerning_Mode;
/*************************************************************************/
/* */
/* <Const> */
/* ft_kerning_default */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_KERNING_DEFAULT */
/* This constant is deprecated. Please use @FT_KERNING_DEFAULT */
/* instead. */
/* */
#define ft_kerning_default FT_KERNING_DEFAULT
#define ft_kerning_default FT_KERNING_DEFAULT
/*************************************************************************/
/* */
@ -2424,10 +2426,11 @@ FT_BEGIN_HEADER
/* ft_kerning_unfitted */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_KERNING_UNFITTED */
/* This constant is deprecated. Please use @FT_KERNING_UNFITTED */
/* instead. */
/* */
#define ft_kerning_unfitted FT_KERNING_UNFITTED
#define ft_kerning_unfitted FT_KERNING_UNFITTED
/*************************************************************************/
/* */
@ -2435,10 +2438,10 @@ FT_BEGIN_HEADER
/* ft_kerning_unscaled */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_KERNING_UNSCALED */
/* This constant is deprecated. Please use @FT_KERNING_UNSCALED */
/* instead. */
/* */
#define ft_kerning_unscaled FT_KERNING_UNSCALED
#define ft_kerning_unscaled FT_KERNING_UNSCALED
/*************************************************************************/

View File

@ -115,39 +115,38 @@ FT_BEGIN_HEADER
/* future. */
/* */
/* <Fields> */
/* FT_PIXEL_MODE_MONO :: */
/* A monochrome bitmap, using 1 bit per pixel. Note that pixels */
/* are stored in most-significant order (MSB), which means that */
/* the left-most pixel in a byte has value 128 */
/* FT_PIXEL_MODE_MONO :: */
/* A monochrome bitmap, using 1 bit per pixel. Note that pixels */
/* are stored in most-significant order (MSB), which means that */
/* the left-most pixel in a byte has value 128. */
/* */
/* FT_PIXEL_MODE_GRAY :: */
/* An 8-bit bitmap, generally used to represent anti-aliased glyph */
/* images. Each pixel is stored in one byte. Note that the number */
/* of value "gray" levels is stored in the 'num_bytes' field of */
/* the @FT_Bitmap structure (it generally is 256) */
/* FT_PIXEL_MODE_GRAY :: */
/* An 8-bit bitmap, generally used to represent anti-aliased glyph */
/* images. Each pixel is stored in one byte. Note that the number */
/* of value "gray" levels is stored in the `num_bytes' field of */
/* the @FT_Bitmap structure (it generally is 256). */
/* */
/* FT_PIXEL_MODE_GRAY2 :: */
/* A 2-bit/pixel bitmap, used to represent embedded anti-aliased */
/* bitmaps in font files according to the OpenType specification. */
/* We haven't found a single font using this format however */
/* We haven't found a single font using this format, however. */
/* */
/* FT_PIXEL_MODE_GRAY4 :: */
/* A 4-bit/pixel bitmap, used to represent embedded anti-aliased */
/* bitmaps in font files according to the OpenType specification. */
/* We haven't found a single font using this format however */
/* We haven't found a single font using this format, however. */
/* */
/* */
/* FT_PIXEL_MODE_LCD :: */
/* FT_PIXEL_MODE_LCD :: */
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
/* images used for display on LCD displays; the bitmap's width is */
/* three times wider than the original glyph image. See also */
/* @FT_RENDER_MODE_LCD */
/* three times wider than the original glyph image. See also */
/* @FT_RENDER_MODE_LCD. */
/* */
/* FT_PIXEL_MODE_LCD_V :: */
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
/* images used for display on rotated LCD displays; the bitmap's */
/* height is three times taller than the original glyph image. */
/* See also @FT_RENDER_MODE_LCD_V */
/* See also @FT_RENDER_MODE_LCD_V. */
/* */
typedef enum FT_Pixel_Mode_
{
@ -170,31 +169,33 @@ FT_BEGIN_HEADER
/* ft_pixel_mode_xxx */
/* */
/* <Description> */
/* a list of deprecated constants. Use the corresponding */
/* @FT_Pixel_Mode values instead */
/* A list of deprecated constants. Use the corresponding */
/* @FT_Pixel_Mode values instead. */
/* */
/* <Values> */
/* ft_pixel_mode_none :: see @FT_PIXEL_MODE_NONE */
/* ft_pixel_mode_mono :: see @FT_PIXEL_MODE_MONO */
/* ft_pixel_mode_grays :: see @FT_PIXEL_MODE_GRAY */
/* ft_pixel_mode_pal2 :: see @FT_PIXEL_MODE_GRAY2 */
/* ft_pixel_mode_pal4 :: see @FT_PIXEL_MODE_GRAY4 */
/* ft_pixel_mode_none :: see @FT_PIXEL_MODE_NONE */
/* ft_pixel_mode_mono :: see @FT_PIXEL_MODE_MONO */
/* ft_pixel_mode_grays :: see @FT_PIXEL_MODE_GRAY */
/* ft_pixel_mode_pal2 :: see @FT_PIXEL_MODE_GRAY2 */
/* ft_pixel_mode_pal4 :: see @FT_PIXEL_MODE_GRAY4 */
/* */
#define ft_pixel_mode_none FT_PIXEL_MODE_NONE
#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO
#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
#define ft_pixel_mode_none FT_PIXEL_MODE_NONE
#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO
#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
/* */
#if 0
/*************************************************************************/
/* */
/* <Enum> */
/* FT_Palette_Mode */
/* */
/* <Description> */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT !! */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT! */
/* */
/* An enumeration type used to describe the format of a bitmap */
/* palette, used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */
@ -220,8 +221,10 @@ FT_BEGIN_HEADER
} FT_Palette_Mode;
/* */
#endif
/*************************************************************************/
/* */
/* <Struct> */
@ -249,7 +252,7 @@ FT_BEGIN_HEADER
/* most cases. */
/* */
/* num_grays :: This field is only used with */
/* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */
/* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */
/* levels used in the bitmap. */
/* */
/* pixel_mode :: The pixel_mode, i.e., how pixel bits are stored. */
@ -415,16 +418,18 @@ FT_BEGIN_HEADER
} FT_Outline_Flags;
/*************************************************************************/
/* */
/* <Const> */
/* FT_OUTLINE_NONE */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_NONE */
/* This constant is deprecated. Please use @FT_OUTLINE_NONE */
/* instead. */
/* */
#define zft_outline_none FT_OUTLINE_NONE
#define zft_outline_none FT_OUTLINE_NONE
/*************************************************************************/
/* */
@ -432,10 +437,11 @@ FT_BEGIN_HEADER
/* FT_OUTLINE_OWNER */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_OWNER */
/* This constant is deprecated. Please use @FT_OUTLINE_OWNER */
/* instead. */
/* */
#define zft_outline_owner FT_OUTLINE_OWNER
#define zft_outline_owner FT_OUTLINE_OWNER
/*************************************************************************/
/* */
@ -443,10 +449,11 @@ FT_BEGIN_HEADER
/* ft_outline_even_odd_fill */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_EVEN_ODD_FILL */
/* This constant is deprecated. Please use @FT_OUTLINE_EVEN_ODD_FILL */
/* instead. */
/* */
#define zft_outline_even_off_fill FT_OUTLINE_EVEN_ODD_FILL
#define zft_outline_even_off_fill FT_OUTLINE_EVEN_ODD_FILL
/*************************************************************************/
/* */
@ -454,10 +461,11 @@ FT_BEGIN_HEADER
/* FT_OUTLINE_REVERSE_FILL */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_REVERSE_FILL */
/* This constant is deprecated. Please use @FT_OUTLINE_REVERSE_FILL */
/* instead. */
/* */
#define zft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL
#define zft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL
/*************************************************************************/
/* */
@ -465,10 +473,11 @@ FT_BEGIN_HEADER
/* FT_OUTLINE_IGNORE_DROPOUTS */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_IGNORE_DROPOUTS */
/* instead. */
/* This constant is deprecated. Please use */
/* @FT_OUTLINE_IGNORE_DROPOUTS instead. */
/* */
#define zft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS
#define zft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS
/*************************************************************************/
/* */
@ -476,10 +485,11 @@ FT_BEGIN_HEADER
/* FT_OUTLINE_HIGH_PRECISION */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_HIGH_PRECISION */
/* instead. */
/* This constant is deprecated. Please use */
/* @FT_OUTLINE_HIGH_PRECISION instead. */
/* */
#define zft_outline_high_precision FT_OUTLINE_HIGH_PRECISION
#define zft_outline_high_precision FT_OUTLINE_HIGH_PRECISION
/*************************************************************************/
/* */
@ -487,10 +497,10 @@ FT_BEGIN_HEADER
/* FT_OUTLINE_SINGLE_PASS */
/* */
/* <Description> */
/* this constant is deprecated. Please use @FT_OUTLINE_SINGLE_PASS */
/* instead. */
/* This constant is deprecated. Please use @FT_OUTLINE_SINGLE_PASS */
/* instead. */
/* */
#define zft_outline_single_pass FT_OUTLINE_SINGLE_PASS
#define zft_outline_single_pass FT_OUTLINE_SINGLE_PASS
/* */
@ -724,28 +734,28 @@ FT_BEGIN_HEADER
/* */
/* <Values> */
/* FT_GLYPH_FORMAT_NONE :: */
/* the value 0 is reserved and does describe a glyph format */
/* The value 0 is reserved and does describe a glyph format. */
/* */
/* FT_GLYPH_FORMAT_COMPOSITE :: */
/* the glyph image is a composite of several other images. This */
/* The glyph image is a composite of several other images. This */
/* format is _only_ used with @FT_LOAD_FLAG_NO_RECURSE, and is */
/* used to report compound glyphs (like accented characters) */
/* used to report compound glyphs (like accented characters). */
/* */
/* FT_GLYPH_FORMAT_BITMAP :: */
/* the glyph image is a bitmap, and can be described as a */
/* @FT_Bitmap. You'll generally need to access the 'bitmap' field */
/* of the @FT_GlyphSlotRec structure to read it. */
/* FT_GLYPH_FORMAT_BITMAP :: */
/* The glyph image is a bitmap, and can be described as an */
/* @FT_Bitmap. You generally need to access the `bitmap' field of */
/* the @FT_GlyphSlotRec structure to read it. */
/* */
/* FT_GLYPH_FORMAT_OUTLINE :: The glyph image is a vectorial image */
/* the glyph image is a vertorial outline made of line segments */
/* and bezier arcs; it can be described as a @FT_Outline and you'll */
/* generally want to access the 'outline' field of the */
/* FT_GLYPH_FORMAT_OUTLINE :: */
/* The glyph image is a vertorial outline made of line segments */
/* and Bezier arcs; it can be described as an @FT_Outline; you */
/* generally want to access the `outline' field of the */
/* @FT_GlyphSlotRec structure to read it. */
/* */
/* FT_GLYPH_FORMAT_PLOTTER :: */
/* the glyph image is a vectorial path with no inside/outside */
/* contours. Some Type 1 fonts, like those in the Hershy family, */
/* contain glyphs in this format. These are described as */
/* FT_GLYPH_FORMAT_PLOTTER :: */
/* The glyph image is a vectorial path with no inside/outside */
/* contours. Some Type 1 fonts, like those in the Hershey family, */
/* contain glyphs in this format. These are described as */
/* @FT_Outline, but FreeType isn't currently capable of rendering */
/* them correctly. */
/* */
@ -760,13 +770,14 @@ FT_BEGIN_HEADER
} FT_Glyph_Format;
/*************************************************************************/
/* */
/* <Enum> */
/* ft_glyph_format_xxx */
/* */
/* <Description> */
/* A list of decprecated constants. Use the corresponding */
/* A list of decprecated constants. Use the corresponding */
/* @FT_Glyph_Format values instead. */
/* */
/* <Values> */
@ -776,11 +787,12 @@ FT_BEGIN_HEADER
/* ft_glyph_format_outline :: see @FT_GLYPH_FORMAT_OUTLINE */
/* ft_glyph_format_plotter :: see @FT_GLYPH_FORMAT_PLOTTER */
/* */
#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE
#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE
#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP
#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE
#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER
#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE
#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE
#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP
#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE
#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER
/*************************************************************************/
/*************************************************************************/
@ -854,7 +866,7 @@ FT_BEGIN_HEADER
/* */
/* <Note> */
/* This structure is used by the span drawing callback type named */
/* FT_SpanFunc which takes the y-coordinate of the span as */
/* FT_SpanFunc which takes the y-coordinate of the span as a */
/* a parameter. */
/* */
/* The coverage value is always between 0 and 255, even if the number */
@ -911,7 +923,8 @@ FT_BEGIN_HEADER
FT_Span* spans,
void* user );
#define FT_Raster_Span_Func FT_SpanFunc
#define FT_Raster_Span_Func FT_SpanFunc
/*************************************************************************/
/* */
@ -919,7 +932,7 @@ FT_BEGIN_HEADER
/* FT_Raster_BitTest_Func */
/* */
/* <Description> */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
/* */
/* A function used as a call-back by the monochrome scan-converter */
/* to test whether a given target pixel is already set to the drawing */
@ -948,7 +961,7 @@ FT_BEGIN_HEADER
/* FT_Raster_BitSet_Func */
/* */
/* <Description> */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT */
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
/* */
/* A function used as a call-back by the monochrome scan-converter */
/* to set an individual target pixel. This is crucial to implement */
@ -969,6 +982,7 @@ FT_BEGIN_HEADER
int x,
void* user );
/*************************************************************************/
/* */
/* <Enum> */
@ -1018,10 +1032,10 @@ FT_BEGIN_HEADER
} FT_Raster_Flag;
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
#define ft_raster_flag_aa FT_RASTER_FLAG_AA
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT
#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
#define ft_raster_flag_aa FT_RASTER_FLAG_AA
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT
#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP
/*************************************************************************/
@ -1045,9 +1059,9 @@ FT_BEGIN_HEADER
/* */
/* black_spans :: The black span drawing callback. */
/* */
/* bit_test :: The bit test callback. UNIMPLEMENTED !! */
/* bit_test :: The bit test callback. UNIMPLEMENTED! */
/* */
/* bit_set :: The bit set callback. UNIMPLEMENTED !! */
/* bit_set :: The bit set callback. UNIMPLEMENTED! */
/* */
/* user :: User-supplied data that is passed to each drawing */
/* callback. */
@ -1081,8 +1095,8 @@ FT_BEGIN_HEADER
int flags;
FT_SpanFunc gray_spans;
FT_SpanFunc black_spans;
FT_Raster_BitTest_Func bit_test; /* doesn't work !! */
FT_Raster_BitSet_Func bit_set; /* doesn't work !! */
FT_Raster_BitTest_Func bit_test; /* doesn't work! */
FT_Raster_BitSet_Func bit_set; /* doesn't work! */
void* user;
FT_BBox clip_box;

View File

@ -63,12 +63,13 @@ FT_BEGIN_HEADER
FT_GlyphSlot slot );
/* deprecated */
#define FT_Glyph_Init_Func FT_Glyph_InitFunc
#define FT_Glyph_Done_Func FT_Glyph_DoneFunc
#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc
#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc
#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc
#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc
#define FT_Glyph_Init_Func FT_Glyph_InitFunc
#define FT_Glyph_Done_Func FT_Glyph_DoneFunc
#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc
#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc
#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc
#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc
struct FT_Glyph_Class_
{
@ -108,11 +109,10 @@ FT_BEGIN_HEADER
FT_Pointer mode_ptr );
/* deprecated identifiers */
#define FTRenderer_render FT_Renderer_RenderFunc
#define FTRenderer_transform FT_Renderer_TransformFunc
#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc
#define FTRenderer_setMode FT_Renderer_SetModeFunc
#define FTRenderer_render FT_Renderer_RenderFunc
#define FTRenderer_transform FT_Renderer_TransformFunc
#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc
#define FTRenderer_setMode FT_Renderer_SetModeFunc
/*************************************************************************/

View File

@ -556,14 +556,14 @@ FT_BEGIN_HEADER
typedef struct FT_RendererRec_
{
FT_ModuleRec root;
FT_Renderer_Class* clazz;
FT_Glyph_Format glyph_format;
FT_Glyph_Class glyph_class;
FT_ModuleRec root;
FT_Renderer_Class* clazz;
FT_Glyph_Format glyph_format;
FT_Glyph_Class glyph_class;
FT_Raster raster;
FT_Raster_Render_Func raster_render;
FT_Renderer_RenderFunc render;
FT_Raster raster;
FT_Raster_Render_Func raster_render;
FT_Renderer_RenderFunc render;
} FT_RendererRec;

View File

@ -4,7 +4,7 @@
/* */
/* TrueType name ID definitions (specification only). */
/* */
/* Copyright 1996-2001 by */
/* Copyright 1996-2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -31,48 +31,51 @@ FT_BEGIN_HEADER
/* Possible values for the `platform' identifier code in the name */
/* records of the TTF `name' table. */
/* */
/*************************************************************************/
/***********************************************************************
*
* @enum:
* TT_PLATFORM_XXX
*
* @description:
* A list of valid values for the `platform_id' identifier code in
* @FT_CharmapRec and @FT_SfntName structures.
*
* @values:
* TT_PLATFORM_APPLE_UNICODE ::
* Used by Apple to indicate a Unicode character map and/or name entry.
* See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note
* that name entries in this format are coded as big-endian UCS-2
* character codes _only_.
*
* TT_PLATFORM_MACINTOSH ::
* Used by Apple to indicate a MacOS-specific charmap and/or name entry.
* See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that
* most TrueType fonts contain an Apple roman charmap to be usable on
* MacOS systems (even if they contain a Microsoft charmap as well).
*
* TT_PLATFORM_ISO ::
* This value was used to specify Unicode charmaps. It is however
* now deprecated. See @TT_ISO_ID_XXX for a list of corresponding
* `encoding_id' values.
*
* TT_PLATFORM_MICROSOFT ::
* Used by Microsoft to indicate Windows-specific charmaps. See
* @TT_MS_ID_XXX for a list of corresponding `encoding_id' values.
* Note that most fonts contain a Unicode charmap using
* (@TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS).
*
* TT_PLATFORM_CUSTOM ::
* Used to indicate application-specific charmaps.
*
* TT_PLATFORM_ADOBE ::
* This value isn't part of any font format specification, but is used
* by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec
* structure. See @TT_ADOBE_ID_XXX.
*/
/***********************************************************************
*
* @enum:
* TT_PLATFORM_XXX
*
* @description:
* a list of valie values for the 'platform_d' identifier code in
* @FT_CharmapRec and @FT_SfntName structures
*
* @values:
* TT_PLATFORM_APPLE_UNICODE ::
* used by Apple to indicate a Unicode character map and/or name entry.
* see @TT_APPLE_ID_XXX for corresponding 'encoding_id' values. Note that
* name entries in this format are coded as big-endian UCS-2 character
* codes _only_ .
*
* TT_PLATFORM_MACINTOSH ::
* used by Apple to indicate a MacOS-specific charmap and/or name entry.
* see @TT_MAC_ID_XXX for corresponding 'encoding_id' values. Note that
* most TrueType fonts contain an Apple roman charmap to be usable on
* MacOS systems (even when they contain a Microsoft charmap as well)
*
* TT_PLATFORM_ISO ::
* this value was used to specify Unicode charmaps. It is however
* now deprecated. See @TT_ISO_ID_XXX for a list of
* corresponding 'encoding_id' values
*
* TT_PLATFORM_MICROSOFT ::
* used by Microsoft to indicate Windows-specific charmaps. See
* @TT_MS_ID_XXX for a list of corresponding 'encoding_id' values.
* note that most fonts contain a Unicode charmap using
* ( @@TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS )
*
* TT_PLATFORM_CUSTOM ::
* used to indicate application-specific charmaps.
*
* TT_PLATFORM_ADOBE ::
* this value isn't part of any font format specification, but is used
* by FreeType to report Adobe-specific charmaps in a @FT_CharMapRec
* structure. See @TT_ADOBE_ID_XXX
*/
#define TT_PLATFORM_APPLE_UNICODE 0
#define TT_PLATFORM_MACINTOSH 1
#define TT_PLATFORM_ISO 2 /* deprecated */
@ -81,22 +84,28 @@ FT_BEGIN_HEADER
#define TT_PLATFORM_ADOBE 7 /* artificial */
/***********************************************************************
*
* @enum:
* TT_APPLE_ID_XXX
*
* @description:
* a list of valid values for the 'encoding_id' for
* @TT_PLATFORM_APPLE_UNICODE charmaps and name entries
*
* @values:
* TT_APPLE_ID_DEFAULT :: Unicode 1.0
* TT_APPLE_ID_UNICODE_1_1 :: Unicode 1.1, specifies Hangul at U+34xx
* TT_APPLE_ID_ISO_10646 :: deprecated
* TT_APPLE_ID_UNICODE_2_0 :: Unicode 2.0 and beyond (UTF-16 BMP only)
* TT_APPLE_ID_UNICODE_32 :: UTF-32 (Adobe proposal for OpenType)
*/
/***********************************************************************
*
* @enum:
* TT_APPLE_ID_XXX
*
* @description:
* A list of valid values for the `encoding_id' for
* @TT_PLATFORM_APPLE_UNICODE charmaps and name entries.
*
* @values:
* TT_APPLE_ID_DEFAULT ::
* Unicode version 1.0.
* TT_APPLE_ID_UNICODE_1_1 ::
* Unicode 1.1; specifies Hangul characters starting at U+34xx.
* TT_APPLE_ID_ISO_10646 ::
* Deprecated.
* TT_APPLE_ID_UNICODE_2_0 ::
* Unicode 2.0 and beyond (UTF-16 BMP only).
* TT_APPLE_ID_UNICODE_32 ::
* UTF-32 (Adobe proposal for OpenType).
*/
#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */
#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */
#define TT_APPLE_ID_ISO_10646 2 /* deprecated */
@ -104,51 +113,52 @@ FT_BEGIN_HEADER
#define TT_APPLE_ID_UNICODE_32 4 /* Adobe proposal */
/***********************************************************************
*
* @enum:
* TT_MAC_ID_XXX
*
* @description:
* a list of valid values for the 'encoding_id' for
* @TT_PLATFORM_MACINTOSH charmaps and name entries
*
* @values:
* TT_MAC_ID_ROMAN ::
* TT_MAC_ID_JAPANESE ::
* TT_MAC_ID_TRADITIONAL_CHINESE ::
* TT_MAC_ID_KOREAN ::
* TT_MAC_ID_ARABIC ::
* TT_MAC_ID_HEBREW ::
* TT_MAC_ID_GREEK ::
* TT_MAC_ID_RUSSIAN ::
* TT_MAC_ID_RSYMBOL ::
* TT_MAC_ID_DEVANAGARI ::
* TT_MAC_ID_GURMUKHI ::
* TT_MAC_ID_GUJARATI ::
* TT_MAC_ID_ORIYA ::
* TT_MAC_ID_BENGALI ::
* TT_MAC_ID_TAMIL ::
* TT_MAC_ID_TELUGU ::
* TT_MAC_ID_KANNADA ::
* TT_MAC_ID_MALAYALAM ::
* TT_MAC_ID_SINHALESE ::
* TT_MAC_ID_BURMESE ::
* TT_MAC_ID_KHMER ::
* TT_MAC_ID_THAI ::
* TT_MAC_ID_LAOTIAN ::
* TT_MAC_ID_GEORGIAN ::
* TT_MAC_ID_ARMENIAN ::
* TT_MAC_ID_MALDIVIAN ::
* TT_MAC_ID_SIMPLIFIED_CHINESE ::
* TT_MAC_ID_TIBETAN ::
* TT_MAC_ID_MONGOLIAN ::
* TT_MAC_ID_GEEZ ::
* TT_MAC_ID_SLAVIC ::
* TT_MAC_ID_VIETNAMESE ::
* TT_MAC_ID_SINDHI ::
* TT_MAC_ID_UNINTERP ::
*/
/***********************************************************************
*
* @enum:
* TT_MAC_ID_XXX
*
* @description:
* A list of valid values for the `encoding_id' for
* @TT_PLATFORM_MACINTOSH charmaps and name entries.
*
* @values:
* TT_MAC_ID_ROMAN ::
* TT_MAC_ID_JAPANESE ::
* TT_MAC_ID_TRADITIONAL_CHINESE ::
* TT_MAC_ID_KOREAN ::
* TT_MAC_ID_ARABIC ::
* TT_MAC_ID_HEBREW ::
* TT_MAC_ID_GREEK ::
* TT_MAC_ID_RUSSIAN ::
* TT_MAC_ID_RSYMBOL ::
* TT_MAC_ID_DEVANAGARI ::
* TT_MAC_ID_GURMUKHI ::
* TT_MAC_ID_GUJARATI ::
* TT_MAC_ID_ORIYA ::
* TT_MAC_ID_BENGALI ::
* TT_MAC_ID_TAMIL ::
* TT_MAC_ID_TELUGU ::
* TT_MAC_ID_KANNADA ::
* TT_MAC_ID_MALAYALAM ::
* TT_MAC_ID_SINHALESE ::
* TT_MAC_ID_BURMESE ::
* TT_MAC_ID_KHMER ::
* TT_MAC_ID_THAI ::
* TT_MAC_ID_LAOTIAN ::
* TT_MAC_ID_GEORGIAN ::
* TT_MAC_ID_ARMENIAN ::
* TT_MAC_ID_MALDIVIAN ::
* TT_MAC_ID_SIMPLIFIED_CHINESE ::
* TT_MAC_ID_TIBETAN ::
* TT_MAC_ID_MONGOLIAN ::
* TT_MAC_ID_GEEZ ::
* TT_MAC_ID_SLAVIC ::
* TT_MAC_ID_VIETNAMESE ::
* TT_MAC_ID_SINDHI ::
* TT_MAC_ID_UNINTERP ::
*/
#define TT_MAC_ID_ROMAN 0
#define TT_MAC_ID_JAPANESE 1
#define TT_MAC_ID_TRADITIONAL_CHINESE 2
@ -185,67 +195,72 @@ FT_BEGIN_HEADER
#define TT_MAC_ID_UNINTERP 32
/***********************************************************************
*
* @enum:
* TT_ISO_ID_XXX
*
* @description:
* a list of valid values for the 'encoding_id' for
* @TT_PLATFORM_ISO charmaps and name entries
*
* their use is now deprecated
*
* @values:
* TT_ISO_ID_7BIT_ASCII :: ASCII
* TT_ISO_ID_10646 :: ISO/10646
* TT_ISO_ID_8859_1 :: a.k.a. Latin-1
*/
/***********************************************************************
*
* @enum:
* TT_ISO_ID_XXX
*
* @description:
* A list of valid values for the `encoding_id' for
* @TT_PLATFORM_ISO charmaps and name entries.
*
* Their use is now deprecated.
*
* @values:
* TT_ISO_ID_7BIT_ASCII ::
* ASCII.
* TT_ISO_ID_10646 ::
* ISO/10646.
* TT_ISO_ID_8859_1 ::
* Also known as Latin-1.
*/
#define TT_ISO_ID_7BIT_ASCII 0
#define TT_ISO_ID_10646 1
#define TT_ISO_ID_8859_1 2
/***********************************************************************
*
* @enum:
* TT_MS_ID_XXX
*
* @description:
* a list of valid values for the 'encoding_id' for
* @TT_PLATFORM_MICROSOFT charmaps and name entries
*
* @values:
* TT_MS_ID_SYMBOLS_CS ::
* correspond to symbol encodings. see @FT_ENCODING_MS_SYMBOL
*
* TT_MS_ID_UNICODE_CS ::
* correspond to a Microsoft WGL4 charmap, matching Unicode. See
* @FT_ENCODING_UNICODE
*
* TT_MS_ID_SJIS ::
* corresponds to Microsoft S-JIS Japanese encoding.
* See @FT_ENCODING_MS_SJIS
*
* TT_MS_ID_GB2312 ::
* corresponds to Microsoft Simplified Chinese as used in China. See
* @FT_ENCODING_MS_GB2312
*
* TT_MS_ID_BIG_5 ::
* corresponds to Microsoft Simplified Chinese as used in Taiwan and
* Hong Kong. See @FT_ENCODING_MS_BIG5
*
* TT_MS_ID_WANSUNG ::
* corresponds to Microsoft Korean Wansung encoding. See
* @FT_ENCODING_MS_WANSUNG
*
* TT_MS_ID_JOHAB ::
* corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB
*
* TT_MS_ID_UCS_4 ::
* corresponds to UCS-4 or UTF-32 charmaps. This is a recent Adobe proposal
* for OpenType.
*/
/***********************************************************************
*
* @enum:
* TT_MS_ID_XXX
*
* @description:
* A list of valid values for the `encoding_id' for
* @TT_PLATFORM_MICROSOFT charmaps and name entries.
*
* @values:
* TT_MS_ID_SYMBOLS_CS ::
* Corresponds to symbol encodings. see @FT_ENCODING_MS_SYMBOL.
*
* TT_MS_ID_UNICODE_CS ::
* Corresponds to a Microsoft WGL4 charmap, matching Unicode. See
* @FT_ENCODING_UNICODE.
*
* TT_MS_ID_SJIS ::
* Corresponds to Microsoft SJIS Japanese encoding.
* See @FT_ENCODING_MS_SJIS.
*
* TT_MS_ID_GB2312 ::
* Corresponds to Microsoft Simplified Chinese as used in Mainland
* China. See @FT_ENCODING_MS_GB2312.
*
* TT_MS_ID_BIG_5 ::
* Corresponds to Microsoft Traditional Chinese as used in Taiwan and
* Hong Kong. See @FT_ENCODING_MS_BIG5.
*
* TT_MS_ID_WANSUNG ::
* Corresponds to Microsoft Korean Wansung encoding. See
* @FT_ENCODING_MS_WANSUNG.
*
* TT_MS_ID_JOHAB ::
* Corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB.
*
* TT_MS_ID_UCS_4 ::
* Corresponds to UCS-4 or UTF-32 charmaps. This is a recent Adobe
* proposal for OpenType.
*/
#define TT_MS_ID_SYMBOL_CS 0
#define TT_MS_ID_UNICODE_CS 1
#define TT_MS_ID_SJIS 2
@ -256,28 +271,24 @@ FT_BEGIN_HEADER
#define TT_MS_ID_UCS_4 10
/*************************************************************************/
/* */
/* possible values of the platform specific encoding identifier field in */
/* the name records of the TTF `name' table if the `platform' identifier */
/* code is TT_PLATFORM_ADOBE. */
/* */
/* These are artificial values defined ad-hoc by FreeType. */
/* */
/***********************************************************************
*
* @enum:
* TT_ADOBE_ID_XXX
*
* @description:
* a list of valid values for the 'encoding_id' for
* @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific list !!
*
* @values:
* TT_ADOBE_ID_STANDARD :: Adobe standard encoding
* TT_ADOBE_ID_EXPERT :: Adobe expert encoding
* TT_ADOBE_ID_CUSTOM :: Adobe custom encoding
*/
/***********************************************************************
*
* @enum:
* TT_ADOBE_ID_XXX
*
* @description:
* A list of valid values for the `encoding_id' for
* @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension!
*
* @values:
* TT_ADOBE_ID_STANDARD ::
* Adobe standard encoding.
* TT_ADOBE_ID_EXPERT ::
* Adobe expert encoding.
* TT_ADOBE_ID_CUSTOM ::
* Adobe custom encoding.
*/
#define TT_ADOBE_ID_STANDARD 0
#define TT_ADOBE_ID_EXPERT 1
#define TT_ADOBE_ID_CUSTOM 2

View File

@ -289,15 +289,15 @@
ah_hinter_compute_widths( AH_Hinter hinter )
{
/* scan the array of segments in each direction */
AH_Outline outline = hinter->glyph;
AH_Segment segments;
AH_Segment limit;
AH_Globals globals = &hinter->globals->design;
FT_Pos* widths;
FT_Int dimension;
FT_Int* p_num_widths;
FT_Error error = 0;
FT_Pos edge_distance_threshold = 32000;
AH_Outline outline = hinter->glyph;
AH_Segment segments;
AH_Segment limit;
AH_Globals globals = &hinter->globals->design;
FT_Pos* widths;
FT_Int dimension;
FT_Int* p_num_widths;
FT_Error error = 0;
FT_Pos edge_distance_threshold = 32000;
globals->num_widths = 0;
@ -334,9 +334,9 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Segment seg = segments;
AH_Segment link;
FT_Int num_widths = 0;
AH_Segment seg = segments;
AH_Segment link;
FT_Int num_widths = 0;
for ( ; seg < limit; seg++ )

View File

@ -32,12 +32,12 @@
#include <stdio.h>
void
ah_dump_edges( AH_Outline outline )
ah_dump_edges( AH_Outline outline )
{
AH_Edge edges;
AH_Edge edge_limit;
AH_Segment segments;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Segment segments;
FT_Int dimension;
edges = outline->horz_edges;
@ -84,12 +84,12 @@
/* A function used to dump the array of linked segments */
void
ah_dump_segments( AH_Outline outline )
ah_dump_segments( AH_Outline outline )
{
AH_Segment segments;
AH_Segment segment_limit;
AH_Point points;
FT_Int dimension;
AH_Segment segments;
AH_Segment segment_limit;
AH_Point points;
FT_Int dimension;
points = outline->points;
@ -98,7 +98,7 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Segment seg;
AH_Segment seg;
printf ( "Table of %s segments:\n",
@ -298,11 +298,11 @@
/* ah_outline_new */
/* */
/* <Description> */
/* Creates a new and empty AH_OutlineRec object. */
/* Creates a new and empty AH_OutlineRec object. */
/* */
FT_LOCAL_DEF( FT_Error )
ah_outline_new( FT_Memory memory,
AH_Outline * aoutline )
ah_outline_new( FT_Memory memory,
AH_Outline* aoutline )
{
FT_Error error;
AH_Outline outline;
@ -324,10 +324,10 @@
/* ah_outline_done */
/* */
/* <Description> */
/* Destroys a given AH_OutlineRec object. */
/* Destroys a given AH_OutlineRec object. */
/* */
FT_LOCAL_DEF( void )
ah_outline_done( AH_Outline outline )
ah_outline_done( AH_Outline outline )
{
FT_Memory memory = outline->memory;
@ -347,12 +347,12 @@
/* ah_outline_save */
/* */
/* <Description> */
/* Saves the content of a given AH_OutlineRec object into a face's glyph */
/* slot. */
/* Saves the contents of a given AH_OutlineRec object into a face's */
/* glyph slot. */
/* */
FT_LOCAL_DEF( void )
ah_outline_save( AH_Outline outline,
AH_Loader gloader )
ah_outline_save( AH_Outline outline,
AH_Loader gloader )
{
AH_Point point = outline->points;
AH_Point point_limit = point + outline->num_points;
@ -382,19 +382,19 @@
/* ah_outline_load */
/* */
/* <Description> */
/* Loads an unscaled outline from a glyph slot into an AH_OutlineRec */
/* Loads an unscaled outline from a glyph slot into an AH_OutlineRec */
/* object. */
/* */
FT_LOCAL_DEF( FT_Error )
ah_outline_load( AH_Outline outline,
FT_Face face )
ah_outline_load( AH_Outline outline,
FT_Face face )
{
FT_Memory memory = outline->memory;
FT_Error error = AH_Err_Ok;
FT_Outline* source = &face->glyph->outline;
FT_Int num_points = source->n_points;
FT_Int num_contours = source->n_contours;
AH_Point points;
FT_Memory memory = outline->memory;
FT_Error error = AH_Err_Ok;
FT_Outline* source = &face->glyph->outline;
FT_Int num_points = source->n_points;
FT_Int num_contours = source->n_contours;
AH_Point points;
/* check arguments */
@ -469,8 +469,8 @@
{
/* do one thing at a time -- it is easier to understand, and */
/* the code is clearer */
AH_Point point;
AH_Point point_limit = points + outline->num_points;
AH_Point point;
AH_Point point_limit = points + outline->num_points;
/* compute coordinates */
@ -512,10 +512,10 @@
/* compute `next' and `prev' */
{
FT_Int contour_index;
AH_Point prev;
AH_Point first;
AH_Point end;
FT_Int contour_index;
AH_Point prev;
AH_Point first;
AH_Point end;
contour_index = 0;
@ -548,10 +548,10 @@
/* set-up the contours array */
{
AH_Point * contour = outline->contours;
AH_Point * contour_limit = contour + outline->num_contours;
short* end = source->contours;
short idx = 0;
AH_Point* contour = outline->contours;
AH_Point* contour_limit = contour + outline->num_contours;
short* end = source->contours;
short idx = 0;
for ( ; contour < contour_limit; contour++, end++ )
@ -622,11 +622,11 @@
FT_LOCAL_DEF( void )
ah_setup_uv( AH_Outline outline,
AH_UV source )
ah_setup_uv( AH_Outline outline,
AH_UV source )
{
AH_Point point = outline->points;
AH_Point point_limit = point + outline->num_points;
AH_Point point = outline->points;
AH_Point point_limit = point + outline->num_points;
for ( ; point < point_limit; point++ )
@ -677,10 +677,10 @@
/* compute all inflex points in a given glyph */
static void
ah_outline_compute_inflections( AH_Outline outline )
ah_outline_compute_inflections( AH_Outline outline )
{
AH_Point * contour = outline->contours;
AH_Point * contour_limit = contour + outline->num_contours;
AH_Point* contour = outline->contours;
AH_Point* contour_limit = contour + outline->num_contours;
/* load original coordinates in (u,v) */
@ -792,7 +792,7 @@
FT_LOCAL_DEF( void )
ah_outline_compute_segments( AH_Outline outline )
ah_outline_compute_segments( AH_Outline outline )
{
int dimension;
AH_Segment segments;
@ -811,28 +811,28 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Point * contour = outline->contours;
AH_Point * contour_limit = contour + outline->num_contours;
AH_Segment segment = segments;
FT_Int num_segments = 0;
AH_Point* contour = outline->contours;
AH_Point* contour_limit = contour + outline->num_contours;
AH_Segment segment = segments;
FT_Int num_segments = 0;
#ifdef AH_HINT_METRICS
AH_Point min_point = 0;
AH_Point max_point = 0;
FT_Pos min_coord = 32000;
FT_Pos max_coord = -32000;
AH_Point min_point = 0;
AH_Point max_point = 0;
FT_Pos min_coord = 32000;
FT_Pos max_coord = -32000;
#endif
/* do each contour separately */
for ( ; contour < contour_limit; contour++ )
{
AH_Point point = contour[0];
AH_Point last = point->prev;
int on_edge = 0;
FT_Pos min_pos = +32000; /* minimum segment pos != min_coord */
FT_Pos max_pos = -32000; /* maximum segment pos != max_coord */
FT_Bool passed;
AH_Point point = contour[0];
AH_Point last = point->prev;
int on_edge = 0;
FT_Pos min_pos = +32000; /* minimum segment pos != min_coord */
FT_Pos max_pos = -32000; /* maximum segment pos != max_coord */
FT_Bool passed;
#ifdef AH_HINT_METRICS
@ -961,11 +961,11 @@
/* we do this by inserting fake segments when needed */
if ( dimension == 0 )
{
AH_Point point = outline->points;
AH_Point point_limit = point + outline->num_points;
AH_Point point = outline->points;
AH_Point point_limit = point + outline->num_points;
FT_Pos min_pos = 32000;
FT_Pos max_pos = -32000;
FT_Pos min_pos = 32000;
FT_Pos max_pos = -32000;
min_point = 0;
@ -1034,11 +1034,11 @@
FT_LOCAL_DEF( void )
ah_outline_link_segments( AH_Outline outline )
ah_outline_link_segments( AH_Outline outline )
{
AH_Segment segments;
AH_Segment segment_limit;
int dimension;
AH_Segment segments;
AH_Segment segment_limit;
int dimension;
ah_setup_uv( outline, AH_UV_FYX );
@ -1048,14 +1048,16 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Segment seg1;
AH_Segment seg2;
AH_Segment seg1;
AH_Segment seg2;
/* now compare each segment to the others */
for ( seg1 = segments; seg1 < segment_limit; seg1++ )
{
FT_Pos best_score;
AH_Segment best_segment;
FT_Pos best_score;
AH_Segment best_segment;
/* the fake segments are introduced to hint the metrics -- */
/* we must never link them to anything */
@ -1148,7 +1150,7 @@
static void
ah_outline_compute_edges( AH_Outline outline )
ah_outline_compute_edges( AH_Outline outline )
{
AH_Edge edges;
AH_Segment segments;
@ -1169,9 +1171,9 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Edge edge;
AH_Edge edge_limit; /* really == edge + num_edges */
AH_Segment seg;
AH_Edge edge;
AH_Edge edge_limit; /* really == edge + num_edges */
AH_Segment seg;
/*********************************************************************/
@ -1198,7 +1200,7 @@
edge_limit = edges;
for ( seg = segments; seg < segment_limit; seg++ )
{
AH_Edge found = 0;
AH_Edge found = 0;
/* look for an edge corresponding to the segment */
@ -1313,8 +1315,8 @@
if ( seg->link || is_serif )
{
AH_Edge edge2;
AH_Segment seg2;
AH_Edge edge2;
AH_Segment seg2;
edge2 = edge->link;
@ -1398,10 +1400,10 @@
/* ah_outline_detect_features */
/* */
/* <Description> */
/* Performs feature detection on a given AH_OutlineRec object. */
/* Performs feature detection on a given AH_OutlineRec object. */
/* */
FT_LOCAL_DEF( void )
ah_outline_detect_features( AH_Outline outline )
ah_outline_detect_features( AH_Outline outline )
{
ah_outline_compute_segments ( outline );
ah_outline_link_segments ( outline );
@ -1420,15 +1422,15 @@
/* be snapped to a blue zone edge (top or bottom). */
/* */
FT_LOCAL_DEF( void )
ah_outline_compute_blue_edges( AH_Outline outline,
AH_Face_Globals face_globals )
ah_outline_compute_blue_edges( AH_Outline outline,
AH_Face_Globals face_globals )
{
AH_Edge edge = outline->horz_edges;
AH_Edge edge_limit = edge + outline->num_hedges;
AH_Globals globals = &face_globals->design;
FT_Fixed y_scale = outline->y_scale;
AH_Edge edge = outline->horz_edges;
AH_Edge edge_limit = edge + outline->num_hedges;
AH_Globals globals = &face_globals->design;
FT_Fixed y_scale = outline->y_scale;
FT_Bool blue_active[AH_BLUE_MAX];
FT_Bool blue_active[AH_BLUE_MAX];
/* compute which blue zones are active, i.e. have their scaled */
@ -1554,12 +1556,12 @@
/* edge' pointer from `design units' to `scaled ones'). */
/* */
FT_LOCAL_DEF( void )
ah_outline_scale_blue_edges( AH_Outline outline,
AH_Face_Globals globals )
ah_outline_scale_blue_edges( AH_Outline outline,
AH_Face_Globals globals )
{
AH_Edge edge = outline->horz_edges;
AH_Edge edge_limit = edge + outline->num_hedges;
FT_Int delta;
AH_Edge edge = outline->horz_edges;
AH_Edge edge_limit = edge + outline->num_hedges;
FT_Int delta;
delta = globals->scaled.blue_refs - globals->design.blue_refs;

View File

@ -46,43 +46,43 @@ FT_BEGIN_HEADER
FT_LOCAL( void )
ah_setup_uv( AH_Outline outline,
AH_UV source );
ah_setup_uv( AH_Outline outline,
AH_UV source );
/* AH_OutlineRec functions - they should be typically called in this order */
FT_LOCAL( FT_Error )
ah_outline_new( FT_Memory memory,
AH_Outline * aoutline );
ah_outline_new( FT_Memory memory,
AH_Outline* aoutline );
FT_LOCAL( FT_Error )
ah_outline_load( AH_Outline outline,
FT_Face face );
ah_outline_load( AH_Outline outline,
FT_Face face );
FT_LOCAL( void )
ah_outline_compute_segments( AH_Outline outline );
ah_outline_compute_segments( AH_Outline outline );
FT_LOCAL( void )
ah_outline_link_segments( AH_Outline outline );
ah_outline_link_segments( AH_Outline outline );
FT_LOCAL( void )
ah_outline_detect_features( AH_Outline outline );
ah_outline_detect_features( AH_Outline outline );
FT_LOCAL( void )
ah_outline_compute_blue_edges( AH_Outline outline,
AH_Face_Globals globals );
ah_outline_compute_blue_edges( AH_Outline outline,
AH_Face_Globals globals );
FT_LOCAL( void )
ah_outline_scale_blue_edges( AH_Outline outline,
AH_Face_Globals globals );
ah_outline_scale_blue_edges( AH_Outline outline,
AH_Face_Globals globals );
FT_LOCAL( void )
ah_outline_save( AH_Outline outline,
AH_Loader loader );
ah_outline_save( AH_Outline outline,
AH_Loader loader );
FT_LOCAL( void )
ah_outline_done( AH_Outline outline );
ah_outline_done( AH_Outline outline );
FT_END_HEADER

View File

@ -27,7 +27,7 @@
#include FT_OUTLINE_H
#define FACE_GLOBALS( face ) ((AH_Face_Globals )(face)->autohint.data)
#define FACE_GLOBALS( face ) ((AH_Face_Globals)(face)->autohint.data)
#define AH_USE_IUP
#define OPTIM_STEM_SNAP
@ -89,13 +89,13 @@
/* compute the snapped width of a given stem */
static FT_Pos
ah_compute_stem_width( AH_Hinter hinter,
int vertical,
FT_Pos width )
ah_compute_stem_width( AH_Hinter hinter,
int vertical,
FT_Pos width )
{
AH_Globals globals = &hinter->globals->scaled;
FT_Pos dist = width;
FT_Int sign = 0;
AH_Globals globals = &hinter->globals->scaled;
FT_Pos dist = width;
FT_Int sign = 0;
if ( dist < 0 )
@ -202,9 +202,9 @@
/* align one stem edge relative to the previous stem edge */
static void
ah_align_linked_edge( AH_Hinter hinter,
AH_Edge base_edge,
AH_Edge stem_edge,
int vertical )
AH_Edge base_edge,
AH_Edge stem_edge,
int vertical )
{
FT_Pos dist = stem_edge->opos - base_edge->opos;
@ -216,9 +216,9 @@
static void
ah_align_serif_edge( AH_Hinter hinter,
AH_Edge base,
AH_Edge serif,
int vertical )
AH_Edge base,
AH_Edge serif,
int vertical )
{
FT_Pos dist;
FT_Pos sign = 1;
@ -269,10 +269,10 @@
static void
ah_hint_edges_3( AH_Hinter hinter )
{
AH_Edge edges;
AH_Edge edge_limit;
AH_Outline outline = hinter->glyph;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Outline outline = hinter->glyph;
FT_Int dimension;
edges = outline->horz_edges;
@ -280,9 +280,9 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Edge edge;
AH_Edge anchor = 0;
int has_serifs = 0;
AH_Edge edge;
AH_Edge anchor = 0;
int has_serifs = 0;
if ( hinter->no_horz_hints && !dimension )
@ -297,7 +297,7 @@
{
for ( edge = edges; edge < edge_limit; edge++ )
{
FT_Pos* blue;
FT_Pos* blue;
AH_EdgeRec *edge1, *edge2;
@ -340,7 +340,7 @@
/* relative order of stems in the glyph.. */
for ( edge = edges; edge < edge_limit; edge++ )
{
AH_EdgeRec *edge2;
AH_EdgeRec* edge2;
if ( edge->flags & AH_EDGE_DONE )
@ -498,10 +498,10 @@
static void
ah_hinter_align_edge_points( AH_Hinter hinter )
{
AH_Outline outline = hinter->glyph;
AH_Edge edges;
AH_Edge edge_limit;
FT_Int dimension;
AH_Outline outline = hinter->glyph;
AH_Edge edges;
AH_Edge edge_limit;
FT_Int dimension;
edges = outline->horz_edges;
@ -509,7 +509,7 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Edge edge;
AH_Edge edge;
edge = edges;
@ -517,12 +517,12 @@
{
/* move the points of each segment */
/* in each edge to the edge's position */
AH_Segment seg = edge->first;
AH_Segment seg = edge->first;
do
{
AH_Point point = seg->first;
AH_Point point = seg->first;
for (;;)
@ -559,13 +559,13 @@
static void
ah_hinter_align_strong_points( AH_Hinter hinter )
{
AH_Outline outline = hinter->glyph;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Point points;
AH_Point point_limit;
AH_Flags touch_flag;
AH_Outline outline = hinter->glyph;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Point points;
AH_Point point_limit;
AH_Flags touch_flag;
points = outline->points;
@ -577,8 +577,8 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Point point;
AH_Edge edge;
AH_Point point;
AH_Edge edge;
if ( edges < edge_limit )
@ -632,8 +632,8 @@
/* otherwise, interpolate the point in between */
{
AH_Edge before = 0;
AH_Edge after = 0;
AH_Edge before = 0;
AH_Edge after = 0;
for ( edge = edges; edge < edge_limit; edge++ )
@ -687,12 +687,12 @@
#ifndef AH_OPTION_NO_WEAK_INTERPOLATION
static void
ah_iup_shift( AH_Point p1,
AH_Point p2,
AH_Point ref )
ah_iup_shift( AH_Point p1,
AH_Point p2,
AH_Point ref )
{
AH_Point p;
FT_Pos delta = ref->u - ref->v;
AH_Point p;
FT_Pos delta = ref->u - ref->v;
for ( p = p1; p < ref; p++ )
@ -704,17 +704,17 @@
static void
ah_iup_interp( AH_Point p1,
AH_Point p2,
AH_Point ref1,
AH_Point ref2 )
ah_iup_interp( AH_Point p1,
AH_Point p2,
AH_Point ref1,
AH_Point ref2 )
{
AH_Point p;
FT_Pos u;
FT_Pos v1 = ref1->v;
FT_Pos v2 = ref2->v;
FT_Pos d1 = ref1->u - v1;
FT_Pos d2 = ref2->u - v2;
AH_Point p;
FT_Pos u;
FT_Pos v1 = ref1->v;
FT_Pos v2 = ref2->v;
FT_Pos d1 = ref1->u - v1;
FT_Pos d2 = ref2->u - v2;
if ( p1 > p2 )
@ -775,12 +775,12 @@
static void
ah_hinter_align_weak_points( AH_Hinter hinter )
{
AH_Outline outline = hinter->glyph;
FT_Int dimension;
AH_Point points;
AH_Point point_limit;
AH_Point * contour_limit;
AH_Flags touch_flag;
AH_Outline outline = hinter->glyph;
FT_Int dimension;
AH_Point points;
AH_Point point_limit;
AH_Point* contour_limit;
AH_Flags touch_flag;
points = outline->points;
@ -796,10 +796,10 @@
for ( dimension = 1; dimension >= 0; dimension-- )
{
AH_Point point;
AH_Point end_point;
AH_Point first_point;
AH_Point * contour;
AH_Point point;
AH_Point end_point;
AH_Point first_point;
AH_Point* contour;
point = points;
@ -816,8 +816,8 @@
if ( point <= end_point )
{
AH_Point first_touched = point;
AH_Point cur_touched = point;
AH_Point first_touched = point;
AH_Point cur_touched = point;
point++;
@ -907,13 +907,13 @@
/* scale and fit the global metrics */
static void
ah_hinter_scale_globals( AH_Hinter hinter,
FT_Fixed x_scale,
FT_Fixed y_scale )
FT_Fixed x_scale,
FT_Fixed y_scale )
{
FT_Int n;
AH_Face_Globals globals = hinter->globals;
AH_Globals design = &globals->design;
AH_Globals scaled = &globals->scaled;
FT_Int n;
AH_Face_Globals globals = hinter->globals;
AH_Globals design = &globals->design;
AH_Globals scaled = &globals->scaled;
/* copy content */
@ -994,12 +994,12 @@
/* create a new empty hinter object */
FT_LOCAL_DEF( FT_Error )
ah_hinter_new( FT_Library library,
AH_Hinter* ahinter )
ah_hinter_new( FT_Library library,
AH_Hinter *ahinter )
{
AH_Hinter hinter = 0;
FT_Memory memory = library->memory;
FT_Error error;
FT_Memory memory = library->memory;
FT_Error error;
*ahinter = 0;
@ -1030,13 +1030,13 @@
/* create a face's autohint globals */
FT_LOCAL_DEF( FT_Error )
ah_hinter_new_face_globals( AH_Hinter hinter,
FT_Face face,
AH_Globals globals )
ah_hinter_new_face_globals( AH_Hinter hinter,
FT_Face face,
AH_Globals globals )
{
FT_Error error;
FT_Memory memory = hinter->memory;
AH_Face_Globals face_globals;
FT_Error error;
FT_Memory memory = hinter->memory;
AH_Face_Globals face_globals;
if ( FT_NEW( face_globals ) )
@ -1062,7 +1062,7 @@
/* discard a face's autohint globals */
FT_LOCAL_DEF( void )
ah_hinter_done_face_globals( AH_Face_Globals globals )
ah_hinter_done_face_globals( AH_Face_Globals globals )
{
FT_Face face = globals->face;
FT_Memory memory = face->memory;
@ -1073,10 +1073,10 @@
static FT_Error
ah_hinter_load( AH_Hinter hinter,
FT_UInt glyph_index,
FT_Int32 load_flags,
FT_UInt depth )
ah_hinter_load( AH_Hinter hinter,
FT_UInt glyph_index,
FT_Int32 load_flags,
FT_UInt depth )
{
FT_Face face = hinter->face;
FT_GlyphSlot slot = face->glyph;
@ -1087,6 +1087,7 @@
AH_Outline outline = hinter->glyph;
AH_Loader gloader = hinter->loader;
/* load the glyph */
error = FT_Load_Glyph( face, glyph_index, load_flags );
if ( error )
@ -1184,10 +1185,10 @@
/* we now need to hint the metrics according to the change in */
/* width/positioning that occured during the hinting process */
{
FT_Pos old_advance, old_rsb, old_lsb, new_lsb;
AH_Edge edge1 = outline->vert_edges; /* leftmost edge */
AH_Edge edge2 = edge1 +
outline->num_vedges - 1; /* rightmost edge */
FT_Pos old_advance, old_rsb, old_lsb, new_lsb;
AH_Edge edge1 = outline->vert_edges; /* leftmost edge */
AH_Edge edge2 = edge1 +
outline->num_vedges - 1; /* rightmost edge */
old_advance = hinter->pp2.x;
@ -1404,12 +1405,12 @@
FT_UInt glyph_index,
FT_Int32 load_flags )
{
FT_Face face = slot->face;
FT_Error error;
FT_Fixed x_scale = size->metrics.x_scale;
FT_Fixed y_scale = size->metrics.y_scale;
AH_Face_Globals face_globals = FACE_GLOBALS( face );
FT_Render_Mode hint_mode = FT_LOAD_TARGET_MODE(load_flags);
FT_Face face = slot->face;
FT_Error error;
FT_Fixed x_scale = size->metrics.x_scale;
FT_Fixed y_scale = size->metrics.y_scale;
AH_Face_Globals face_globals = FACE_GLOBALS( face );
FT_Render_Mode hint_mode = FT_LOAD_TARGET_MODE(load_flags);
/* first of all, we need to check that we're using the correct face and */
@ -1443,16 +1444,16 @@
#ifdef DEBUG_HINTER
hinter->no_horz_hints = ah_debug_disable_vert; /* not a bug, the meaning */
hinter->no_vert_hints = ah_debug_disable_horz; /* of h/v is inverted !! */
hinter->no_vert_hints = ah_debug_disable_horz; /* of h/v is inverted! */
#endif
/* we snap the width of vertical stems for the monochrome and horizontal */
/* LCD rendering targets only. Corresponds to X snapping */
/* we snap the width of vertical stems for the monochrome and */
/* horizontal LCD rendering targets only. Corresponds to X snapping. */
hinter->no_horz_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_NORMAL ||
hint_mode == FT_RENDER_MODE_LCD_V );
/* we snap the width of horizontal stems for the monochrome and vertical */
/* LCD rendering targets only. Corresponds to Y snapping */
/* we snap the width of horizontal stems for the monochrome and */
/* vertical LCD rendering targets only. Corresponds to Y snapping. */
hinter->no_vert_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_NORMAL ||
hint_mode == FT_RENDER_MODE_LCD );
@ -1473,13 +1474,13 @@
/* retrieve a face's autohint globals for client applications */
FT_LOCAL_DEF( void )
ah_hinter_get_global_hints( AH_Hinter hinter,
FT_Face face,
void** global_hints,
long* global_len )
FT_Face face,
void** global_hints,
long* global_len )
{
AH_Globals globals = 0;
FT_Memory memory = hinter->memory;
FT_Error error;
AH_Globals globals = 0;
FT_Memory memory = hinter->memory;
FT_Error error;
/* allocate new master globals */
@ -1510,7 +1511,7 @@
FT_LOCAL_DEF( void )
ah_hinter_done_global_hints( AH_Hinter hinter,
void* global_hints )
void* global_hints )
{
FT_Memory memory = hinter->memory;

View File

@ -38,7 +38,7 @@ FT_BEGIN_HEADER
/* create a new empty hinter object */
FT_LOCAL( FT_Error )
ah_hinter_new( FT_Library library,
ah_hinter_new( FT_Library library,
AH_Hinter* ahinter );
/* Load a hinted glyph in the hinter */
@ -54,13 +54,13 @@ FT_BEGIN_HEADER
ah_hinter_done( AH_Hinter hinter );
FT_LOCAL( void )
ah_hinter_done_face_globals( AH_Face_Globals globals );
ah_hinter_done_face_globals( AH_Face_Globals globals );
FT_LOCAL( void )
ah_hinter_get_global_hints( AH_Hinter hinter,
FT_Face face,
void** global_hints,
long* global_len );
ah_hinter_get_global_hints( AH_Hinter hinter,
FT_Face face,
void** global_hints,
long* global_len );
FT_LOCAL( void )
ah_hinter_done_global_hints( AH_Hinter hinter,

View File

@ -25,15 +25,15 @@
#ifdef DEBUG_HINTER
AH_Hinter ah_debug_hinter = NULL;
FT_Bool ah_debug_disable_horz = 0;
FT_Bool ah_debug_disable_vert = 0;
AH_Hinter ah_debug_hinter = NULL;
FT_Bool ah_debug_disable_horz = 0;
FT_Bool ah_debug_disable_vert = 0;
#endif
typedef struct FT_AutoHinterRec_
{
FT_ModuleRec root;
AH_Hinter hinter;
AH_Hinter hinter;
} FT_AutoHinterRec;
@ -83,7 +83,7 @@
FT_UNUSED( module );
if ( face->autohint.data )
ah_hinter_done_face_globals( (AH_Face_Globals )(face->autohint.data) );
ah_hinter_done_face_globals( (AH_Face_Globals)(face->autohint.data) );
}

View File

@ -157,8 +157,8 @@
static int
valid_stem_segments( AH_Segment seg1,
AH_Segment seg2 )
valid_stem_segments( AH_Segment seg1,
AH_Segment seg2 )
{
return seg1->serif == 0 &&
seg2 &&
@ -173,15 +173,15 @@
static int
optim_compute_stems( AH_Optimizer* optimizer )
{
AH_Outline outline = optimizer->outline;
FT_Fixed scale;
FT_Memory memory = optimizer->memory;
FT_Error error = 0;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Stem** p_stems;
FT_Int* p_num_stems;
AH_Outline outline = optimizer->outline;
FT_Fixed scale;
FT_Memory memory = optimizer->memory;
FT_Error error = 0;
FT_Int dimension;
AH_Edge edges;
AH_Edge edge_limit;
AH_Stem** p_stems;
FT_Int* p_num_stems;
edges = outline->horz_edges;
@ -201,7 +201,7 @@
/* first of all, count the number of stems in this direction */
for ( edge = edges; edge < edge_limit; edge++ )
{
AH_Segment seg = edge->first;
AH_Segment seg = edge->first;
do
@ -226,8 +226,8 @@
stem = stems;
for ( edge = edges; edge < edge_limit; edge++ )
{
AH_Segment seg = edge->first;
AH_Segment seg2;
AH_Segment seg = edge->first;
AH_Segment seg2;
do
@ -235,8 +235,8 @@
seg2 = seg->link;
if ( valid_stem_segments( seg, seg2 ) )
{
AH_Edge edge1 = seg->edge;
AH_Edge edge2 = seg2->edge;
AH_Edge edge1 = seg->edge;
AH_Edge edge2 = seg2->edge;
stem->edge1 = edge1;

View File

@ -37,22 +37,22 @@ FT_BEGIN_HEADER
typedef struct AH_Stem_
{
FT_Pos pos; /* current position */
FT_Pos velocity; /* current velocity */
FT_Pos force; /* sum of current forces */
FT_Pos width; /* normalized width */
FT_Pos pos; /* current position */
FT_Pos velocity; /* current velocity */
FT_Pos force; /* sum of current forces */
FT_Pos width; /* normalized width */
FT_Pos min_pos; /* minimum grid position */
FT_Pos max_pos; /* maximum grid position */
FT_Pos min_pos; /* minimum grid position */
FT_Pos max_pos; /* maximum grid position */
AH_Edge edge1; /* left/bottom edge */
AH_Edge edge2; /* right/top edge */
AH_Edge edge1; /* left/bottom edge */
AH_Edge edge2; /* right/top edge */
FT_Pos opos; /* original position */
FT_Pos owidth; /* original width */
FT_Pos opos; /* original position */
FT_Pos owidth; /* original width */
FT_Pos min_coord; /* minimum coordinate */
FT_Pos max_coord; /* maximum coordinate */
FT_Pos min_coord; /* minimum coordinate */
FT_Pos max_coord; /* maximum coordinate */
} AH_Stem;

View File

@ -183,7 +183,8 @@ FT_BEGIN_HEADER
/* AH_PointRec */
/* */
/* <Description> */
/* A structure used to model an outline point to the AH_OutlineRec type. */
/* A structure used to model an outline point to the AH_OutlineRec */
/* type. */
/* */
/* <Fields> */
/* flags :: The current point hint flags. */
@ -266,14 +267,14 @@ FT_BEGIN_HEADER
/* */
/* score :: Used to score the segment when selecting them. */
/* */
typedef struct AH_SegmentRec_
typedef struct AH_SegmentRec_
{
AH_Edge_Flags flags;
AH_Direction dir;
AH_Point first; /* first point in edge segment */
AH_Point last; /* last point in edge segment */
AH_Point * contour; /* ptr to first point of segment's contour */
AH_Point* contour; /* ptr to first point of segment's contour */
FT_Pos pos; /* position of segment */
FT_Pos min_coord; /* minimum coordinate of segment */
@ -327,7 +328,7 @@ FT_BEGIN_HEADER
/* Only set for some of the horizontal edges in a Latin */
/* font. */
/* */
typedef struct AH_EdgeRec_
typedef struct AH_EdgeRec_
{
AH_Edge_Flags flags;
AH_Direction dir;

View File

@ -215,7 +215,7 @@
(FT_Glyph_DoneFunc) ft_bitmap_glyph_done,
(FT_Glyph_CopyFunc) ft_bitmap_glyph_copy,
(FT_Glyph_TransformFunc)0,
(FT_Glyph_GetBBoxFunc) ft_bitmap_glyph_bbox,
(FT_Glyph_GetBBoxFunc) ft_bitmap_glyph_bbox,
(FT_Glyph_PrepareFunc) 0
};
@ -336,7 +336,7 @@
(FT_Glyph_DoneFunc) ft_outline_glyph_done,
(FT_Glyph_CopyFunc) ft_outline_glyph_copy,
(FT_Glyph_TransformFunc)ft_outline_glyph_transform,
(FT_Glyph_GetBBoxFunc) ft_outline_glyph_bbox,
(FT_Glyph_GetBBoxFunc) ft_outline_glyph_bbox,
(FT_Glyph_PrepareFunc) ft_outline_glyph_prepare
};

View File

@ -404,9 +404,9 @@
/* documentation is in freetype.h */
FT_EXPORT_DEF( FT_Error )
FT_Load_Glyph( FT_Face face,
FT_UInt glyph_index,
FT_Int32 load_flags )
FT_Load_Glyph( FT_Face face,
FT_UInt glyph_index,
FT_Int32 load_flags )
{
FT_Error error;
FT_Driver driver;

View File

@ -308,7 +308,7 @@ THE SOFTWARE.
prop = bdf_get_font_property( font, (char *)"AVERAGE_WIDTH" );
if ( ( prop != NULL ) && ( prop->value.int32 >= 10 ) )
root->available_sizes->width = (short)( prop->value.int32 / 10 );
root->available_sizes->width = (short)( prop->value.int32 / 10 );
prop = bdf_get_font_property( font, (char *)"PIXEL_SIZE" );
if ( prop != NULL )

View File

@ -573,13 +573,17 @@
/* For incremental fonts get the character data using the */
/* callback function. */
if ( face->root.internal->incremental_interface )
{
FT_Data data;
FT_Error error = face->root.internal->incremental_interface->funcs->get_glyph_data(
face->root.internal->incremental_interface->object,
glyph_index, &data );
{
FT_Data data;
FT_Error error =
face->root.internal->incremental_interface->funcs->get_glyph_data(
face->root.internal->incremental_interface->object,
glyph_index, &data );
*pointer = (FT_Byte*)data.pointer;
*length = data.length;
return error;
}
else
@ -587,6 +591,8 @@
{
CFF_Font cff = (CFF_Font)(face->extra.data);
return cff_index_access_element( &cff->charstrings_index, glyph_index,
pointer, length );
}
@ -606,10 +612,13 @@
/* For incremental fonts get the character data using the */
/* callback function. */
if ( face->root.internal->incremental_interface )
{
{
FT_Data data;
data.pointer = *pointer;
data.length = length;
data.pointer = *pointer;
data.length = length;
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,&data );
}
@ -617,7 +626,9 @@
#endif /* FT_CONFIG_OPTION_INCREMENTAL */
{
CFF_Font cff = (CFF_Font)(face->extra.data);
CFF_Font cff = (CFF_Font)(face->extra.data);
cff_index_forget_element( &cff->charstrings_index, pointer );
}
}
@ -638,11 +649,12 @@
FT_Byte* charstring;
FT_ULong charstring_len;
#ifdef FT_CONFIG_OPTION_INCREMENTAL
/* Incremental fonts don't necessarily have valid charsets. */
/* They use the character code, not the glyph index, in this case. */
/* Incremental fonts don't necessarily have valid charsets. */
/* They use the character code, not the glyph index, in this case. */
if ( face->root.internal->incremental_interface )
{
{
bchar_index = bchar;
achar_index = achar;
}
@ -651,9 +663,10 @@
{
CFF_Font cff = (CFF_Font)(face->extra.data);
bchar_index = cff_lookup_glyph_by_stdcharcode( cff, bchar );
achar_index = cff_lookup_glyph_by_stdcharcode( cff, achar );
}
}
if ( bchar_index < 0 || achar_index < 0 )
{
@ -2320,7 +2333,7 @@
#ifdef FT_CONFIG_OPTION_INCREMENTAL
/* Control data and length may not be available for incremental */
/* Control data and length may not be available for incremental */
/* fonts. */
if ( face->root.internal->incremental_interface )
{
@ -2334,11 +2347,13 @@
/* See how charstring loads at cff_index_access_element() in */
/* cffload.c. */
{
CFF_IndexRec csindex = cff->charstrings_index;
glyph->root.control_data =
csindex.bytes + csindex.offsets[glyph_index] - 1;
glyph->root.control_len =
charstring_len;
CFF_IndexRec csindex = cff->charstrings_index;
glyph->root.control_data =
csindex.bytes + csindex.offsets[glyph_index] - 1;
glyph->root.control_len =
charstring_len;
}
}

View File

@ -123,7 +123,7 @@
FT_LOCAL_DEF( FT_Error )
CID_Size_Init( CID_Size size )
cid_size_init( CID_Size size )
{
FT_Error error = 0;
PSH_Globals_Funcs funcs = cid_size_get_globals_funcs( size );

View File

@ -123,7 +123,7 @@ FT_BEGIN_HEADER
FT_LOCAL( FT_Error )
CID_Size_Init( CID_Size size );
cid_size_init( CID_Size size );
FT_LOCAL( FT_Error )

View File

@ -93,7 +93,7 @@
(FT_Face_InitFunc) cid_face_init,
(FT_Face_DoneFunc) cid_face_done,
(FT_Size_InitFunc) CID_Size_Init,
(FT_Size_InitFunc) cid_size_init,
(FT_Size_DoneFunc) cid_size_done,
(FT_Slot_InitFunc) cid_slot_init,
(FT_Slot_DoneFunc) cid_slot_done,

View File

@ -58,7 +58,7 @@
t1_builder_done,
t1_builder_check_points,
t1_builder_add_point,
T1_Builder_Add_Point1,
t1_builder_add_point1,
t1_builder_add_contour,
t1_builder_start_point,
t1_builder_close_contour

View File

@ -1270,7 +1270,7 @@
/* check space for a new on-curve point, then add it */
FT_LOCAL_DEF( FT_Error )
T1_Builder_Add_Point1( T1_Builder builder,
t1_builder_add_point1( T1_Builder builder,
FT_Pos x,
FT_Pos y )
{
@ -1328,7 +1328,7 @@
builder->path_begun = 1;
error = t1_builder_add_contour( builder );
if ( !error )
error = T1_Builder_Add_Point1( builder, x, y );
error = t1_builder_add_point1( builder, x, y );
}
return error;
}

View File

@ -164,7 +164,7 @@ FT_BEGIN_HEADER
FT_Byte flag );
FT_LOCAL( FT_Error )
T1_Builder_Add_Point1( T1_Builder builder,
t1_builder_add_point1( T1_Builder builder,
FT_Pos x,
FT_Pos y );

View File

@ -350,7 +350,7 @@
#define start_point t1_builder_start_point
#define check_points t1_builder_check_points
#define add_point t1_builder_add_point
#define add_point1 T1_Builder_Add_Point1
#define add_point1 t1_builder_add_point1
#define add_contour t1_builder_add_contour
#define close_contour t1_builder_close_contour

View File

@ -50,7 +50,7 @@
PSH3_Hint hint2 )
{
return ( hint1->org_pos + hint1->org_len >= hint2->org_pos &&
hint2->org_pos + hint2->org_len >= hint1->org_pos );
hint2->org_pos + hint2->org_len >= hint1->org_pos );
}
@ -503,18 +503,18 @@
/* the stem is less than one pixel, we will center it */
/* around the nearest pixel center */
/* */
pos = ( pos + (len >> 1) & -64 );
pos = ( pos + ( (len >> 1) & -64 ) );
len = 64;
}
else
{
FT_Pos delta = len - dim->stdw.widths[0].cur;
FT_Pos Delta = len - dim->stdw.widths[0].cur;
if ( delta < 0 )
delta = -delta;
if ( Delta < 0 )
Delta = -Delta;
if ( delta < 40 )
if ( Delta < 40 )
{
len = dim->stdw.widths[0].cur;
if ( len < 32 )
@ -523,20 +523,20 @@
if ( len < 3 * 64 )
{
delta = ( len & 63 );
Delta = ( len & 63 );
len &= -64;
if ( delta < 10 )
len += delta;
if ( Delta < 10 )
len += Delta;
else if ( delta < 32 )
else if ( Delta < 32 )
len += 10;
else if ( delta < 54 )
else if ( Delta < 54 )
len += 54;
else
len += delta;
len += Delta;
}
else
len = ( len + 32 ) & -64;

View File

@ -559,8 +559,8 @@
/* */
static FT_Error
tt_face_load_generic_header( TT_Face face,
FT_Stream stream,
FT_ULong tag )
FT_Stream stream,
FT_ULong tag )
{
FT_Error error;
TT_Header* header;

View File

@ -622,9 +622,9 @@
FT_LOCAL_DEF( FT_Error )
tt_face_set_sbit_strike( TT_Face face,
FT_Int x_ppem,
FT_Int y_ppem,
FT_ULong *astrike_index )
FT_Int x_ppem,
FT_Int y_ppem,
FT_ULong *astrike_index )
{
FT_Int i;

View File

@ -153,7 +153,7 @@
pitch = width;
if ( hmul )
{
width = width*hmul;
width = width * hmul;
pitch = ( width + 3 ) & -4;
}
@ -184,6 +184,7 @@
FT_Int n;
FT_Vector* vec;
if ( hmul )
for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
vec->x *= hmul;
@ -201,6 +202,7 @@
FT_Int n;
FT_Vector* vec;
if ( hmul )
for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
vec->x /= hmul;
@ -210,7 +212,6 @@
vec->y /= vmul;
}
FT_Outline_Translate( outline, cbox.xMin, cbox.yMin );
if ( error )
@ -228,7 +229,6 @@
}
/* convert a slot's glyph image into a bitmap */
static FT_Error
ft_smooth_render( FT_Renderer render,
@ -268,7 +268,6 @@
}
FT_CALLBACK_TABLE_DEF
const FT_Renderer_Class ft_smooth_renderer_class =
{

View File

@ -93,7 +93,7 @@
FT_UShort k = header->number_Of_HMetrics;
if (k == 0)
if ( k == 0 )
{
*bearing = *advance = 0;
return;

View File

@ -164,7 +164,7 @@
(FT_Byte**)type1->glyph_names,
face->blend,
0,
0,
FT_RENDER_MODE_NORMAL,
T1_Parse_Glyph );
if ( error )
return error;