Ignore:
Timestamp:
Jun 30, 2008, 6:26:14 PM (13 years ago)
Author:
Eugene Romanenko
Message:

PDF plugin: freetype library updated to version 2.3.5

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/poppler/freetype2/include/freetype/freetype.h

    r209 r251  
    55/*    FreeType high-level API and common types (specification only).       */
    66/*                                                                         */
    7 /*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by             */
     7/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by       */
    88/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    99/*                                                                         */
     
    8787  /*                                                                       */
    8888  /* <Abstract>                                                            */
    89   /*    The FreeType 2 base font interface.                                */
    90   /*                                                                       */
    91   /* <Description>                                                         */
    92   /*    This section describes the public high-level API of FreeType 2.    */
     89  /*    The FreeType~2 base font interface.                                */
     90  /*                                                                       */
     91  /* <Description>                                                         */
     92  /*    This section describes the public high-level API of FreeType~2.    */
    9393  /*                                                                       */
    9494  /* <Order>                                                               */
     
    486486  /*                                                                       */
    487487  /* <Note>                                                                */
    488   /*    Since many 16bit compilers don't like 32bit enumerations, you      */
     488  /*    Since many 16-bit compilers don't like 32-bit enumerations, you    */
    489489  /*    should redefine this macro in case of problems to something like   */
    490490  /*    this:                                                              */
     
    528528  /* <Values>                                                              */
    529529  /*   FT_ENCODING_NONE ::                                                 */
    530   /*     The encoding value 0 is reserved.                                 */
     530  /*     The encoding value~0 is reserved.                                 */
    531531  /*                                                                       */
    532532  /*   FT_ENCODING_UNICODE ::                                              */
     
    560560  /*                                                                       */
    561561  /*   FT_ENCODING_JOHAB ::                                                */
    562   /*     The Korean standard character set (KS C-5601-1992), which         */
     562  /*     The Korean standard character set (KS~C 5601-1992), which         */
    563563  /*     corresponds to MS Windows code page 1361.  This character set     */
    564564  /*     includes all possible Hangeul character combinations.             */
    565565  /*                                                                       */
    566566  /*   FT_ENCODING_ADOBE_LATIN_1 ::                                        */
    567   /*     Corresponds to a Latin-1 encoding as defined in a Type 1          */
    568   /*     Postscript font.  It is limited to 256 character codes.           */
     567  /*     Corresponds to a Latin-1 encoding as defined in a Type~1          */
     568  /*     PostScript font.  It is limited to 256 character codes.           */
    569569  /*                                                                       */
    570570  /*   FT_ENCODING_ADOBE_STANDARD ::                                       */
    571   /*     Corresponds to the Adobe Standard encoding, as found in Type 1,   */
     571  /*     Corresponds to the Adobe Standard encoding, as found in Type~1,   */
    572572  /*     CFF, and OpenType/CFF fonts.  It is limited to 256 character      */
    573573  /*     codes.                                                            */
    574574  /*                                                                       */
    575575  /*   FT_ENCODING_ADOBE_EXPERT ::                                         */
    576   /*     Corresponds to the Adobe Expert encoding, as found in Type 1,     */
     576  /*     Corresponds to the Adobe Expert encoding, as found in Type~1,     */
    577577  /*     CFF, and OpenType/CFF fonts.  It is limited to 256 character      */
    578578  /*     codes.                                                            */
    579579  /*                                                                       */
    580580  /*   FT_ENCODING_ADOBE_CUSTOM ::                                         */
    581   /*     Corresponds to a custom encoding, as found in Type 1, CFF, and    */
     581  /*     Corresponds to a custom encoding, as found in Type~1, CFF, and    */
    582582  /*     OpenType/CFF fonts.  It is limited to 256 character codes.        */
    583583  /*                                                                       */
     
    608608  /* <Note>                                                                */
    609609  /*   By default, FreeType automatically synthetizes a Unicode charmap    */
    610   /*   for Postscript fonts, using their glyph names dictionaries.         */
     610  /*   for PostScript fonts, using their glyph names dictionaries.         */
    611611  /*   However, it also reports the encodings defined explicitly in the    */
    612612  /*   font file, for the cases when they are needed, with the Adobe       */
     
    631631  /*   FT_ENCODING_APPLE_ROMAN).                                           */
    632632  /*                                                                       */
    633   /*   If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function  c     */
     633  /*   If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function        */
    634634  /*   @FT_Get_CMap_Language_ID  to query the Mac language ID which may be */
    635635  /*   needed to be able to distinguish Apple encoding variants.  See      */
     
    637637  /*     http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT   */
    638638  /*                                                                       */
    639   /*   to get an idea how to do that.  Basically, if the language ID is 0, */
     639  /*   to get an idea how to do that.  Basically, if the language ID is~0, */
    640640  /*   don't use it, otherwise subtract 1 from the language ID.  Then      */
    641641  /*   examine `encoding_id'.  If, for example, `encoding_id' is           */
    642   /*   @TT_MAC_ID_ROMAN and the language ID (minus 1) is                   */
     642  /*   @TT_MAC_ID_ROMAN and the language ID (minus~1) is                   */
    643643  /*   `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman.         */
    644644  /*   @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi        */
     
    754754  /*    model private data of a given @FT_Face object.                     */
    755755  /*                                                                       */
    756   /*    This structure might change between releases of FreeType 2 and is  */
     756  /*    This structure might change between releases of FreeType~2 and is  */
    757757  /*    not generally available to client applications.                    */
    758758  /*                                                                       */
     
    775775  /*                                                                       */
    776776  /*    face_index          :: The index of the face in the font file.  It */
    777   /*                           is set to 0 if there is only one face in    */
     777  /*                           is set to~0 if there is only one face in    */
    778778  /*                           the font file.                              */
    779779  /*                                                                       */
     
    790790  /*                           `num_fixed_sizes'), it is set to the number */
    791791  /*                           of outline glyphs.                          */
     792  /*                                                                       */
     793  /*                           For CID-keyed fonts, this value gives the   */
     794  /*                           highest CID used in the font.               */
    792795  /*                                                                       */
    793796  /*    family_name         :: The face's family name.  This is an ASCII   */
     
    800803  /*                           this string.  Applications should use the   */
    801804  /*                           format specific interface to access them.   */
     805  /*                           Can be NULL (e.g., in fonts embedded in a   */
     806  /*                           PDF file).                                  */
    802807  /*                                                                       */
    803808  /*    style_name          :: The face's style name.  This is an ASCII    */
     
    837842  /*                           formats.                                    */
    838843  /*                                                                       */
     844  /*                           Note that the bounding box might be off by  */
     845  /*                           (at least) one pixel for hinted fonts.  See */
     846  /*                           @FT_Size_Metrics for further discussion.    */
     847  /*                                                                       */
    839848  /*    units_per_EM        :: The number of font units per EM square for  */
    840849  /*                           this face.  This is typically 2048 for      */
    841   /*                           TrueType fonts, and 1000 for Type 1 fonts.  */
     850  /*                           TrueType fonts, and 1000 for Type~1 fonts.  */
    842851  /*                           Only relevant for scalable formats.         */
    843852  /*                                                                       */
     
    10191028  /*      the SFNT `gasp' table only if the native TrueType hinting engine */
    10201029  /*      (with the bytecode interpreter) is available and active.         */
     1030  /*                                                                       */
     1031  /*    FT_FACE_FLAG_CID_KEYED ::                                          */
     1032  /*      Set if the font is CID-keyed.  In that case, the font is not     */
     1033  /*      accessed by glyph indices but by CID values.  For subsetted      */
     1034  /*      CID-keyed fonts this has the consequence that not all index      */
     1035  /*      values are a valid argument to FT_Load_Glyph.  Only the CID      */
     1036  /*      values for which corresponding glyphs in the subsetted font      */
     1037  /*      exist make FT_Load_Glyph return successfully; in all other cases */
     1038  /*      you get an `FT_Err_Invalid_Argument' error.                      */
    10211039  /*                                                                       */
    10221040#define FT_FACE_FLAG_SCALABLE          ( 1L <<  0 )
     
    10321050#define FT_FACE_FLAG_EXTERNAL_STREAM   ( 1L << 10 )
    10331051#define FT_FACE_FLAG_HINTER            ( 1L << 11 )
     1052#define FT_FACE_FLAG_CID_KEYED         ( 1L << 12 )
    10341053
    10351054  /* */
     
    10881107   * @description:
    10891108   *   A macro that returns true whenever a face object contains a scalable
    1090    *   font face (true for TrueType, Type 1, Type 42, CID, OpenType/CFF,
     1109   *   font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF,
    10911110   *   and PFR font formats.
    10921111   *
     
    11881207
    11891208
     1209  /*************************************************************************
     1210   *
     1211   * @macro:
     1212   *   FT_IS_CID_KEYED( face )
     1213   *
     1214   * @description:
     1215   *   A macro that returns true whenever a face object contains a CID-keyed
     1216   *   font.  See the discussion of @FT_FACE_FLAG_CID_KEYED for more
     1217   *   details.
     1218   *
     1219   *   If this macro is true, all functions defined in @FT_CID_H are
     1220   *   available.
     1221   *
     1222   */
     1223#define FT_IS_CID_KEYED( face ) \
     1224          ( face->face_flags & FT_FACE_FLAG_CID_KEYED )
     1225
     1226
    11901227  /*************************************************************************/
    11911228  /*                                                                       */
     
    11991236  /* <Values>                                                              */
    12001237  /*    FT_STYLE_FLAG_ITALIC ::                                            */
    1201   /*      Indicates that a given face is italicized.                       */
     1238  /*      Indicates that a given face style is italic or oblique.          */
    12021239  /*                                                                       */
    12031240  /*    FT_STYLE_FLAG_BOLD ::                                              */
    12041241  /*      Indicates that a given face is bold.                             */
    12051242  /*                                                                       */
     1243  /* <Note>                                                                */
     1244  /*    The style information as provided by FreeType is very basic.  More */
     1245  /*    details are beyond the scope and should be done on a higher level  */
     1246  /*    (for example, by analyzing various fields of the `OS/2' table in   */
     1247  /*    SFNT based fonts).                                                 */
     1248  /*                                                                       */
    12061249#define FT_STYLE_FLAG_ITALIC  ( 1 << 0 )
    12071250#define FT_STYLE_FLAG_BOLD    ( 1 << 1 )
     
    12151258  /* <Description>                                                         */
    12161259  /*    An opaque handle to an `FT_Size_InternalRec' structure, used to    */
    1217   /*    model private data of a given FT_Size object.                      */
     1260  /*    model private data of a given @FT_Size object.                     */
    12181261  /*                                                                       */
    12191262  typedef struct FT_Size_InternalRec_*  FT_Size_Internal;
     
    13461389  /* <Description>                                                         */
    13471390  /*    An opaque handle to an `FT_Slot_InternalRec' structure, used to    */
    1348   /*    model private data of a given FT_GlyphSlot object.                 */
     1391  /*    model private data of a given @FT_GlyphSlot object.                */
    13491392  /*                                                                       */
    13501393  typedef struct FT_Slot_InternalRec_*  FT_Slot_Internal;
     
    14261469  /*                         integer pixels.  Remember that this is the    */
    14271470  /*                         distance from the baseline to the top-most    */
    1428   /*                         glyph scanline, upwards y-coordinates being   */
     1471  /*                         glyph scanline, upwards y~coordinates being   */
    14291472  /*                         *positive*.                                   */
    14301473  /*                                                                       */
     
    14491492  /*    control_data      :: Certain font drivers can also return the      */
    14501493  /*                         control data for a given glyph image (e.g.    */
    1451   /*                         TrueType bytecode, Type 1 charstrings, etc.). */
     1494  /*                         TrueType bytecode, Type~1 charstrings, etc.). */
    14521495  /*                         This field is a pointer to such data.         */
    14531496  /*                                                                       */
     
    14711514  /*    If @FT_Load_Glyph is called with default flags (see                */
    14721515  /*    @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in   */
    1473   /*    its native format (e.g., an outline glyph for TrueType and Type 1  */
     1516  /*    its native format (e.g., an outline glyph for TrueType and Type~1  */
    14741517  /*    formats).                                                          */
    14751518  /*                                                                       */
     
    15741617  /*                                                                       */
    15751618  /* <Return>                                                              */
    1576   /*    FreeType error code.  0 means success.                             */
     1619  /*    FreeType error code.  0~means success.                             */
    15771620  /*                                                                       */
    15781621  FT_EXPORT( FT_Error )
     
    15931636  /*                                                                       */
    15941637  /* <Return>                                                              */
    1595   /*    FreeType error code.  0 means success.                             */
     1638  /*    FreeType error code.  0~means success.                             */
    15961639  /*                                                                       */
    15971640  FT_EXPORT( FT_Error )
     
    16131656  /*    FT_OPEN_STREAM      :: Copy the stream from the `stream' field.    */
    16141657  /*                                                                       */
    1615   /*    FT_OPEN_PATHNAME    :: Create a new input stream from a C          */
    1616   /*                           path name.                                  */
     1658  /*    FT_OPEN_PATHNAME    :: Create a new input stream from a C~path     */
     1659  /*                           name.                                       */
    16171660  /*                                                                       */
    16181661  /*    FT_OPEN_DRIVER      :: Use the `driver' field.                     */
     
    16961739  /*    driver      :: This field is exclusively used by @FT_Open_Face;    */
    16971740  /*                   it simply specifies the font driver to use to open  */
    1698   /*                   the face.  If set to 0, FreeType tries to load the  */
     1741  /*                   the face.  If set to~0, FreeType tries to load the  */
    16991742  /*                   face with each one of the drivers in its list.      */
    17001743  /*                                                                       */
     
    17591802  /*                                                                       */
    17601803  /*    face_index :: The index of the face within the font.  The first    */
    1761   /*                  face has index 0.                                    */
     1804  /*                  face has index~0.                                    */
    17621805  /*                                                                       */
    17631806  /* <Output>                                                              */
     
    17671810  /*                                                                       */
    17681811  /* <Return>                                                              */
    1769   /*    FreeType error code.  0 means success.                             */
     1812  /*    FreeType error code.  0~means success.                             */
    17701813  /*                                                                       */
    17711814  FT_EXPORT( FT_Error )
     
    17941837  /*                                                                       */
    17951838  /*    face_index :: The index of the face within the font.  The first    */
    1796   /*                  face has index 0.                                    */
     1839  /*                  face has index~0.                                    */
    17971840  /*                                                                       */
    17981841  /* <Output>                                                              */
     
    18021845  /*                                                                       */
    18031846  /* <Return>                                                              */
    1804   /*    FreeType error code.  0 means success.                             */
     1847  /*    FreeType error code.  0~means success.                             */
    18051848  /*                                                                       */
    18061849  /* <Note>                                                                */
     
    18321875  /*                                                                       */
    18331876  /*    face_index :: The index of the face within the font.  The first    */
    1834   /*                  face has index 0.                                    */
     1877  /*                  face has index~0.                                    */
    18351878  /*                                                                       */
    18361879  /* <Output>                                                              */
     
    18401883  /*                                                                       */
    18411884  /* <Return>                                                              */
    1842   /*    FreeType error code.  0 means success.                             */
     1885  /*    FreeType error code.  0~means success.                             */
    18431886  /*                                                                       */
    18441887  /* <Note>                                                                */
     
    18491892  /*    FT_Open_Face can be used to quickly check whether the font         */
    18501893  /*    format of a given font resource is supported by FreeType.  If the  */
    1851   /*    `face_index' field is negative, the function's return value is 0   */
     1894  /*    `face_index' field is negative, the function's return value is~0   */
    18521895  /*    if the font format is recognized, or non-zero otherwise;           */
    18531896  /*    the function returns a more or less empty face handle in `*aface'  */
     
    18821925  /*                                                                       */
    18831926  /* <Return>                                                              */
    1884   /*    FreeType error code.  0 means success.                             */
     1927  /*    FreeType error code.  0~means success.                             */
    18851928  /*                                                                       */
    18861929  FT_EXPORT( FT_Error )
     
    18971940  /*    `Attach' data to a face object.  Normally, this is used to read    */
    18981941  /*    additional information for the face object.  For example, you can  */
    1899   /*    attach an AFM file that comes with a Type 1 font to get the        */
     1942  /*    attach an AFM file that comes with a Type~1 font to get the        */
    19001943  /*    kerning values and other metrics.                                  */
    19011944  /*                                                                       */
     
    19081951  /*                                                                       */
    19091952  /* <Return>                                                              */
    1910   /*    FreeType error code.  0 means success.                             */
     1953  /*    FreeType error code.  0~means success.                             */
    19111954  /*                                                                       */
    19121955  /* <Note>                                                                */
     
    19371980  /*                                                                       */
    19381981  /* <Return>                                                              */
    1939   /*    FreeType error code.  0 means success.                             */
     1982  /*    FreeType error code.  0~means success.                             */
    19401983  /*                                                                       */
    19411984  FT_EXPORT( FT_Error )
     
    19592002  /*                                                                       */
    19602003  /* <Return>                                                              */
    1961   /*    FreeType error code.  0 means success.                             */
     2004  /*    FreeType error code.  0~means success.                             */
    19622005  /*                                                                       */
    19632006  FT_EXPORT( FT_Error )
     
    20562099    FT_UInt               vertResolution;
    20572100
    2058   } FT_Size_RequestRec, *FT_Size_Request;
     2101  } FT_Size_RequestRec;
     2102
     2103
     2104  /*************************************************************************/
     2105  /*                                                                       */
     2106  /* <Struct>                                                              */
     2107  /*    FT_Size_Request                                                    */
     2108  /*                                                                       */
     2109  /* <Description>                                                         */
     2110  /*    A handle to a size request structure.                              */
     2111  /*                                                                       */
     2112  typedef struct FT_Size_RequestRec_  *FT_Size_Request;
    20592113
    20602114
     
    20742128  /*                                                                       */
    20752129  /* <Return>                                                              */
    2076   /*    FreeType error code.  0 means success.                             */
     2130  /*    FreeType error code.  0~means success.                             */
    20772131  /*                                                                       */
    20782132  /* <Note>                                                                */
     
    21092163  /*                                                                       */
    21102164  /* <Return>                                                              */
    2111   /*    FreeType error code.  0 means success.                             */
     2165  /*    FreeType error code.  0~means success.                             */
    21122166  /*                                                                       */
    21132167  /* <Note>                                                                */
     
    21482202  /*                                                                       */
    21492203  /* <Return>                                                              */
    2150   /*    FreeType error code.  0 means success.                             */
     2204  /*    FreeType error code.  0~means success.                             */
    21512205  /*                                                                       */
    21522206  FT_EXPORT( FT_Error )
     
    21812235  /*                                                                       */
    21822236  /* <Return>                                                              */
    2183   /*    FreeType error code.  0 means success.                             */
     2237  /*    FreeType error code.  0~means success.                             */
    21842238  /*                                                                       */
    21852239  /* <Note>                                                                */
    21862240  /*    The loaded glyph may be transformed.  See @FT_Set_Transform for    */
    21872241  /*    the details.                                                       */
     2242  /*                                                                       */
     2243  /*    For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument' is        */
     2244  /*    returned for invalid CID values (this is, for CID values which     */
     2245  /*    don't have a corresponding glyph in the font).  See the discussion */
     2246  /*    of the @FT_FACE_FLAG_CID_KEYED flag for more details.              */
    21882247  /*                                                                       */
    21892248  FT_EXPORT( FT_Error )
     
    22172276  /*                                                                       */
    22182277  /* <Return>                                                              */
    2219   /*    FreeType error code.  0 means success.                             */
     2278  /*    FreeType error code.  0~means success.                             */
    22202279  /*                                                                       */
    22212280  /* <Note>                                                                */
     
    22392298   * @values:
    22402299   *   FT_LOAD_DEFAULT ::
    2241    *     Corresponding to 0, this value is used as the default glyph load
     2300   *     Corresponding to~0, this value is used as the default glyph load
    22422301   *     operation.  In this case, the following happens:
    22432302   *
     
    23292388   *     This flag is used with @FT_LOAD_RENDER to indicate that you want to
    23302389   *     render an outline glyph to a 1-bit monochrome bitmap glyph, with
    2331    *     8 pixels packed into each byte of the bitmap data.
     2390   *     8~pixels packed into each byte of the bitmap data.
    23322391   *
    23332392   *     Note that this has no effect on the hinting algorithm used.  You
     
    23682427#define FT_LOAD_MONOCHROME                   0x1000
    23692428#define FT_LOAD_LINEAR_DESIGN                0x2000
    2370 
    2371   /* temporary hack! */
    2372 #define FT_LOAD_SBITS_ONLY                   0x4000
     2429#define FT_LOAD_SBITS_ONLY                   0x4000   /* temporary hack! */
    23732430#define FT_LOAD_NO_AUTOHINT                  0x8000U
    23742431
     
    24022459   *     A lighter hinting algorithm for non-monochrome modes.  Many
    24032460   *     generated glyphs are more fuzzy but better resemble its original
    2404    *     shape.  A bit like rendering on Mac OS X.
     2461   *     shape.  A bit like rendering on Mac OS~X.
    24052462   *
    24062463   *     As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT.
     
    24492506
    24502507
    2451   /*
     2508  /**************************************************************************
     2509   *
    24522510   * @macro:
    24532511   *   FT_LOAD_TARGET_MODE
     
    24562514   *   Return the @FT_Render_Mode corresponding to a given
    24572515   *   @FT_LOAD_TARGET_XXX value.
     2516   *
    24582517   */
    24592518
    24602519#define FT_LOAD_TARGET_MODE( x )  ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
    2461 
    2462   /* */
    24632520
    24642521
     
    24772534  /*                                                                       */
    24782535  /* <Input>                                                               */
    2479   /*    matrix :: A pointer to the transformation's 2x2 matrix.  Use 0 for */
     2536  /*    matrix :: A pointer to the transformation's 2x2 matrix.  Use~0 for */
    24802537  /*              the identity matrix.                                     */
    2481   /*    delta  :: A pointer to the translation vector.  Use 0 for the null */
     2538  /*    delta  :: A pointer to the translation vector.  Use~0 for the null */
    24822539  /*              vector.                                                  */
    24832540  /*                                                                       */
     
    25042561  /* <Description>                                                         */
    25052562  /*    An enumeration type that lists the render modes supported by       */
    2506   /*    FreeType 2.  Each mode corresponds to a specific type of scanline  */
     2563  /*    FreeType~2.  Each mode corresponds to a specific type of scanline  */
    25072564  /*    conversion performed on the outline.                               */
    25082565  /*                                                                       */
     
    25112568  /*    bitmap.                                                            */
    25122569  /*                                                                       */
     2570  /*    All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity.   */
     2571  /*                                                                       */
    25132572  /* <Values>                                                              */
    25142573  /*    FT_RENDER_MODE_NORMAL ::                                           */
    25152574  /*      This is the default render mode; it corresponds to 8-bit         */
    2516   /*      anti-aliased bitmaps, using 256 levels of opacity.               */
     2575  /*      anti-aliased bitmaps.                                            */
    25172576  /*                                                                       */
    25182577  /*    FT_RENDER_MODE_LIGHT ::                                            */
     
    25232582  /*                                                                       */
    25242583  /*    FT_RENDER_MODE_MONO ::                                             */
    2525   /*      This mode corresponds to 1-bit bitmaps.                          */
     2584  /*      This mode corresponds to 1-bit bitmaps (with 2~levels of         */
     2585  /*      opacity).                                                        */
    25262586  /*                                                                       */
    25272587  /*    FT_RENDER_MODE_LCD ::                                              */
    25282588  /*      This mode corresponds to horizontal RGB and BGR sub-pixel        */
    25292589  /*      displays, like LCD-screens.  It produces 8-bit bitmaps that are  */
    2530   /*      3 times the width of the original glyph outline in pixels, and   */
     2590  /*      3~times the width of the original glyph outline in pixels, and   */
    25312591  /*      which use the @FT_PIXEL_MODE_LCD mode.                           */
    25322592  /*                                                                       */
     
    25342594  /*      This mode corresponds to vertical RGB and BGR sub-pixel displays */
    25352595  /*      (like PDA screens, rotated LCD displays, etc.).  It produces     */
    2536   /*      8-bit bitmaps that are 3 times the height of the original        */
     2596  /*      8-bit bitmaps that are 3~times the height of the original        */
    25372597  /*      glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode.   */
    25382598  /*                                                                       */
    25392599  /* <Note>                                                                */
    2540   /*   The LCD-optimized glyph bitmaps produced by FT_Render_Glyph are     */
    2541   /*   _not_ _filtered_ to reduce color-fringes.  It is up to the caller   */
    2542   /*   to perform this pass.                                               */
     2600  /*   The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be  */
     2601  /*   filtered to reduce color-fringes by using @FT_Library_SetLcdFilter  */
     2602  /*   (not active in the default builds).  It is up to the caller to      */
     2603  /*   either call @FT_Library_SetLcdFilter (if available) or do the       */
     2604  /*   filtering itself.                                                   */
    25432605  /*                                                                       */
    25442606  typedef enum  FT_Render_Mode_
     
    25922654  /*                                                                       */
    25932655  /* <Return>                                                              */
    2594   /*    FreeType error code.  0 means success.                             */
     2656  /*    FreeType error code.  0~means success.                             */
    25952657  /*                                                                       */
    25962658  FT_EXPORT( FT_Error )
     
    26102672  /* <Values>                                                              */
    26112673  /*    FT_KERNING_DEFAULT  :: Return scaled and grid-fitted kerning       */
    2612   /*                           distances (value is 0).                     */
     2674  /*                           distances (value is~0).                     */
    26132675  /*                                                                       */
    26142676  /*    FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning    */
     
    26882750  /*                                                                       */
    26892751  /* <Return>                                                              */
    2690   /*    FreeType error code.  0 means success.                             */
     2752  /*    FreeType error code.  0~means success.                             */
    26912753  /*                                                                       */
    26922754  /* <Note>                                                                */
     
    27232785  /*                                                                       */
    27242786  /* <Return>                                                              */
    2725   /*    FreeType error code.  0 means success.                             */
     2787  /*    FreeType error code.  0~means success.                             */
    27262788  /*                                                                       */
    27272789  FT_EXPORT( FT_Error )
     
    27392801  /* <Description>                                                         */
    27402802  /*    Retrieve the ASCII name of a given glyph in a face.  This only     */
    2741   /*    works for those faces where @FT_HAS_GLYPH_NAMES(face) returns 1.   */
     2803  /*    works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1.   */
    27422804  /*                                                                       */
    27432805  /* <Input>                                                               */
     
    27542816  /*                                                                       */
    27552817  /* <Return>                                                              */
    2756   /*    FreeType error code.  0 means success.                             */
     2818  /*    FreeType error code.  0~means success.                             */
    27572819  /*                                                                       */
    27582820  /* <Note>                                                                */
    27592821  /*    An error is returned if the face doesn't provide glyph names or if */
    27602822  /*    the glyph index is invalid.  In all cases of failure, the first    */
    2761   /*    byte of `buffer' is set to 0 to indicate an empty name.            */
     2823  /*    byte of `buffer' is set to~0 to indicate an empty name.            */
    27622824  /*                                                                       */
    27632825  /*    The glyph name is truncated to fit within the buffer if it is too  */
     
    27812843  /*                                                                       */
    27822844  /* <Description>                                                         */
    2783   /*    Retrieve the ASCII Postscript name of a given face, if available.  */
    2784   /*    This only works with Postscript and TrueType fonts.                */
     2845  /*    Retrieve the ASCII PostScript name of a given face, if available.  */
     2846  /*    This only works with PostScript and TrueType fonts.                */
    27852847  /*                                                                       */
    27862848  /* <Input>                                                               */
     
    27882850  /*                                                                       */
    27892851  /* <Return>                                                              */
    2790   /*    A pointer to the face's Postscript name.  NULL if unavailable.     */
     2852  /*    A pointer to the face's PostScript name.  NULL if unavailable.     */
    27912853  /*                                                                       */
    27922854  /* <Note>                                                                */
     
    28142876  /*                                                                       */
    28152877  /* <Return>                                                              */
    2816   /*    FreeType error code.  0 means success.                             */
     2878  /*    FreeType error code.  0~means success.                             */
    28172879  /*                                                                       */
    28182880  /* <Note>                                                                */
     
    28222884  /*    Because many fonts contain more than a single cmap for Unicode     */
    28232885  /*    encoding, this function has some special code to select the one    */
    2824   /*    which covers Unicode best.  It is thus preferable to               */
     2886  /*    which covers Unicode best (`best' in the sense that a UCS-4 cmap   */
     2887  /*    is preferred to a UCS-2 cmap).  It is thus preferable to           */
    28252888  /*    @FT_Set_Charmap in this case.                                      */
    28262889  /*                                                                       */
     
    28452908  /*                                                                       */
    28462909  /* <Return>                                                              */
    2847   /*    FreeType error code.  0 means success.                             */
     2910  /*    FreeType error code.  0~means success.                             */
    28482911  /*                                                                       */
    28492912  /* <Note>                                                                */
     
    28522915  /*    table).                                                            */
    28532916  /*                                                                       */
     2917  /*    It also fails if a type~14 charmap is selected.                    */
     2918  /*                                                                       */
    28542919  FT_EXPORT( FT_Error )
    28552920  FT_Set_Charmap( FT_Face     face,
     
    28932958  /*                                                                       */
    28942959  /* <Return>                                                              */
    2895   /*    The glyph index.  0 means `undefined character code'.              */
     2960  /*    The glyph index.  0~means `undefined character code'.              */
    28962961  /*                                                                       */
    28972962  /* <Note>                                                                */
     
    28992964  /*    directly, be aware that the glyph index returned by this function  */
    29002965  /*    doesn't always correspond to the internal indices used within      */
    2901   /*    the file.  This is done to ensure that value 0 always corresponds  */
     2966  /*    the file.  This is done to ensure that value~0 always corresponds  */
    29022967  /*    to the `missing glyph'.                                            */
    29032968  /*                                                                       */
     
    29212986  /*                                                                       */
    29222987  /* <Output>                                                              */
    2923   /*    agindex :: Glyph index of first character code.  0 if charmap is   */
     2988  /*    agindex :: Glyph index of first character code.  0~if charmap is   */
    29242989  /*               empty.                                                  */
    29252990  /*                                                                       */
     
    29463011  /*    }                                                                  */
    29473012  /*                                                                       */
    2948   /*    Note that `*agindex' is set to 0 if the charmap is empty.  The     */
    2949   /*    result itself can be 0 in two cases: if the charmap is empty or    */
    2950   /*    when the value 0 is the first valid character code.                */
     3013  /*    Note that `*agindex' is set to~0 if the charmap is empty.  The     */
     3014  /*    result itself can be~0 in two cases: if the charmap is empty or    */
     3015  /*    when the value~0 is the first valid character code.                */
    29513016  /*                                                                       */
    29523017  FT_EXPORT( FT_ULong )
     
    29703035  /*                                                                       */
    29713036  /* <Output>                                                              */
    2972   /*    agindex   :: Glyph index of first character code.  0 if charmap    */
     3037  /*    agindex   :: Glyph index of first character code.  0~if charmap    */
    29733038  /*                 is empty.                                             */
    29743039  /*                                                                       */
     
    29813046  /*    note for this function for a simple code example.                  */
    29823047  /*                                                                       */
    2983   /*    Note that `*agindex' is set to 0 when there are no more codes in   */
     3048  /*    Note that `*agindex' is set to~0 when there are no more codes in   */
    29843049  /*    the charmap.                                                       */
    29853050  /*                                                                       */
     
    30053070  /*                                                                       */
    30063071  /* <Return>                                                              */
    3007   /*    The glyph index.  0 means `undefined character code'.              */
     3072  /*    The glyph index.  0~means `undefined character code'.              */
    30083073  /*                                                                       */
    30093074  FT_EXPORT( FT_UInt )
     
    30743139   *
    30753140   * @return:
    3076    *   FreeType error code.  0 means success.
     3141   *   FreeType error code.  0~means success.
    30773142   *
    30783143   * @note:
     
    30903155                        FT_Int       *p_arg2,
    30913156                        FT_Matrix    *p_transform );
     3157
     3158
     3159  /*************************************************************************/
     3160  /*                                                                       */
     3161  /* <Section>                                                             */
     3162  /*    glyph_variants                                                     */
     3163  /*                                                                       */
     3164  /* <Title>                                                               */
     3165  /*    Glyph Variants                                                     */
     3166  /*                                                                       */
     3167  /* <Abstract>                                                            */
     3168  /*    The FreeType~2 interface to Unicode Ideographic Variation          */
     3169  /*    Sequences (IVS), using the SFNT cmap format~14.                    */
     3170  /*                                                                       */
     3171  /* <Description>                                                         */
     3172  /*    Many CJK characters have variant forms.  They are a sort of grey   */
     3173  /*    area somewhere between being totally irrelevant and semantically   */
     3174  /*    distinct; for this reason, the Unicode consortium decided to       */
     3175  /*    introduce Ideographic Variation Sequences (IVS), consisting of a   */
     3176  /*    Unicode base character and one of 240 variant selectors            */
     3177  /*    (U+E0100-U+E01EF), instead of further extending the already huge   */
     3178  /*    code range for CJK characters.                                     */
     3179  /*                                                                       */
     3180  /*    An IVS is registered and unique; for further details please refer  */
     3181  /*    to Unicode Technical Report #37, the Ideographic Variation         */
     3182  /*    Database.  To date (October 2007), the character with the most     */
     3183  /*    variants is U+908A, having 8~such IVS.                             */
     3184  /*                                                                       */
     3185  /*    Adobe and MS decided to support IVS with a new cmap subtable       */
     3186  /*    (format~14).  It is an odd subtable because it is not a mapping of */
     3187  /*    input code points to glyphs, but contains lists of all variants    */
     3188  /*    supported by the font.                                             */
     3189  /*                                                                       */
     3190  /*    A variant may be either `default' or `non-default'.  A default     */
     3191  /*    variant is the one you will get for that code point if you look it */
     3192  /*    up in the standard Unicode cmap.  A non-default variant is a       */
     3193  /*    different glyph.                                                   */
     3194  /*                                                                       */
     3195  /*************************************************************************/
     3196
     3197
     3198  /*************************************************************************/
     3199  /*                                                                       */
     3200  /* <Function>                                                            */
     3201  /*    FT_Face_GetCharVariantIndex                                        */
     3202  /*                                                                       */
     3203  /* <Description>                                                         */
     3204  /*    Return the glyph index of a given character code as modified by    */
     3205  /*    the variation selector.                                            */
     3206  /*                                                                       */
     3207  /* <Input>                                                               */
     3208  /*    face ::                                                            */
     3209  /*      A handle to the source face object.                              */
     3210  /*                                                                       */
     3211  /*    charcode ::                                                        */
     3212  /*      The character code point in Unicode.                             */
     3213  /*                                                                       */
     3214  /*    variantSelector ::                                                 */
     3215  /*      The Unicode code point of the variation selector.                */
     3216  /*                                                                       */
     3217  /* <Return>                                                              */
     3218  /*    The glyph index.  0~means either `undefined character code', or    */
     3219  /*    `undefined selector code', or `no variation selector cmap          */
     3220  /*    subtable', or `current CharMap is not Unicode'.                    */
     3221  /*                                                                       */
     3222  /* <Note>                                                                */
     3223  /*    If you use FreeType to manipulate the contents of font files       */
     3224  /*    directly, be aware that the glyph index returned by this function  */
     3225  /*    doesn't always correspond to the internal indices used within      */
     3226  /*    the file.  This is done to ensure that value~0 always corresponds  */
     3227  /*    to the `missing glyph'.                                            */
     3228  /*                                                                       */
     3229  /*    This function is only meaningful if                                */
     3230  /*      a) the font has a variation selector cmap sub table,             */
     3231  /*    and                                                                */
     3232  /*      b) the current charmap has a Unicode encoding.                   */
     3233  /*                                                                       */
     3234  /* <Since>                                                               */
     3235  /*    2.3.6                                                              */
     3236  /*                                                                       */
     3237  FT_EXPORT( FT_UInt )
     3238  FT_Face_GetCharVariantIndex( FT_Face   face,
     3239                               FT_ULong  charcode,
     3240                               FT_ULong  variantSelector );
     3241
     3242
     3243  /*************************************************************************/
     3244  /*                                                                       */
     3245  /* <Function>                                                            */
     3246  /*    FT_Face_GetCharVariantIsDefault                                    */
     3247  /*                                                                       */
     3248  /* <Description>                                                         */
     3249  /*    Check whether this variant of this Unicode character is the one to */
     3250  /*    be found in the `cmap'.                                            */
     3251  /*                                                                       */
     3252  /* <Input>                                                               */
     3253  /*    face ::                                                            */
     3254  /*      A handle to the source face object.                              */
     3255  /*                                                                       */
     3256  /*    charcode ::                                                        */
     3257  /*      The character codepoint in Unicode.                              */
     3258  /*                                                                       */
     3259  /*    variantSelector ::                                                 */
     3260  /*      The Unicode codepoint of the variation selector.                 */
     3261  /*                                                                       */
     3262  /* <Return>                                                              */
     3263  /*    1~if found in the standard (Unicode) cmap, 0~if found in the       */
     3264  /*    variation selector cmap, or -1 if it is not a variant.             */
     3265  /*                                                                       */
     3266  /* <Note>                                                                */
     3267  /*    This function is only meaningful if the font has a variation       */
     3268  /*    selector cmap subtable.                                            */
     3269  /*                                                                       */
     3270  /* <Since>                                                               */
     3271  /*    2.3.6                                                              */
     3272  /*                                                                       */
     3273  FT_EXPORT( FT_Int )
     3274  FT_Face_GetCharVariantIsDefault( FT_Face   face,
     3275                                   FT_ULong  charcode,
     3276                                   FT_ULong  variantSelector );
     3277
     3278
     3279  /*************************************************************************/
     3280  /*                                                                       */
     3281  /* <Function>                                                            */
     3282  /*    FT_Face_GetVariantSelectors                                        */
     3283  /*                                                                       */
     3284  /* <Description>                                                         */
     3285  /*    Return a zero-terminated list of Unicode variant selectors found   */
     3286  /*    in the font.                                                       */
     3287  /*                                                                       */
     3288  /* <Input>                                                               */
     3289  /*    face ::                                                            */
     3290  /*      A handle to the source face object.                              */
     3291  /*                                                                       */
     3292  /* <Return>                                                              */
     3293  /*    A pointer to an array of selector code points, or NULL if there is */
     3294  /*    no valid variant selector cmap subtable.                           */
     3295  /*                                                                       */
     3296  /* <Note>                                                                */
     3297  /*    The last item in the array is~0; the array is owned by the         */
     3298  /*    @FT_Face object but can be overwritten or released on the next     */
     3299  /*    call to a FreeType function.                                       */
     3300  /*                                                                       */
     3301  /* <Since>                                                               */
     3302  /*    2.3.6                                                              */
     3303  /*                                                                       */
     3304  FT_EXPORT( FT_UInt32* )
     3305  FT_Face_GetVariantSelectors( FT_Face  face );
     3306
     3307
     3308  /*************************************************************************/
     3309  /*                                                                       */
     3310  /* <Function>                                                            */
     3311  /*    FT_Face_GetVariantsOfChar                                          */
     3312  /*                                                                       */
     3313  /* <Description>                                                         */
     3314  /*    Return a zero-terminated list of Unicode variant selectors found   */
     3315  /*    for the specified character code.                                  */
     3316  /*                                                                       */
     3317  /* <Input>                                                               */
     3318  /*    face ::                                                            */
     3319  /*      A handle to the source face object.                              */
     3320  /*                                                                       */
     3321  /*    charcode ::                                                        */
     3322  /*      The character codepoint in Unicode.                              */
     3323  /*                                                                       */
     3324  /* <Return>                                                              */
     3325  /*    A pointer to an array of variant selector code points which are    */
     3326  /*    active for the given character, or NULL if the corresponding list  */
     3327  /*    is empty.                                                          */
     3328  /*                                                                       */
     3329  /* <Note>                                                                */
     3330  /*    The last item in the array is~0; the array is owned by the         */
     3331  /*    @FT_Face object but can be overwritten or released on the next     */
     3332  /*    call to a FreeType function.                                       */
     3333  /*                                                                       */
     3334  /* <Since>                                                               */
     3335  /*    2.3.6                                                              */
     3336  /*                                                                       */
     3337  FT_EXPORT( FT_UInt32* )
     3338  FT_Face_GetVariantsOfChar( FT_Face   face,
     3339                             FT_ULong  charcode );
     3340
     3341
     3342  /*************************************************************************/
     3343  /*                                                                       */
     3344  /* <Function>                                                            */
     3345  /*    FT_Face_GetCharsOfVariant                                          */
     3346  /*                                                                       */
     3347  /* <Description>                                                         */
     3348  /*    Return a zero-terminated list of Unicode character codes found for */
     3349  /*    the specified variant selector.                                    */
     3350  /*                                                                       */
     3351  /* <Input>                                                               */
     3352  /*    face ::                                                            */
     3353  /*      A handle to the source face object.                              */
     3354  /*                                                                       */
     3355  /*    variantSelector ::                                                 */
     3356  /*      The variant selector code point in Unicode.                      */
     3357  /*                                                                       */
     3358  /* <Return>                                                              */
     3359  /*    A list of all the code points which are specified by this selector */
     3360  /*    (both default and non-default codes are returned) or NULL if there */
     3361  /*    is no valid cmap or the variant selector is invalid.               */
     3362  /*                                                                       */
     3363  /* <Note>                                                                */
     3364  /*    The last item in the array is~0; the array is owned by the         */
     3365  /*    @FT_Face object but can be overwritten or released on the next     */
     3366  /*    call to a FreeType function.                                       */
     3367  /*                                                                       */
     3368  /* <Since>                                                               */
     3369  /*    2.3.6                                                              */
     3370  /*                                                                       */
     3371  FT_EXPORT( FT_UInt32* )
     3372  FT_Face_GetCharsOfVariant( FT_Face   face,
     3373                             FT_ULong  variantSelector );
    30923374
    30933375
     
    32033485  /*                                                                       */
    32043486  /* <Note>                                                                */
    3205   /*    The optimization for FT_DivFix() is simple: If (a << 16) fits in   */
    3206   /*    32 bits, then the division is computed directly.  Otherwise, we    */
     3487  /*    The optimization for FT_DivFix() is simple: If (a~<<~16) fits in   */
     3488  /*    32~bits, then the division is computed directly.  Otherwise, we    */
    32073489  /*    use a specialized version of @FT_MulDiv.                           */
    32083490  /*                                                                       */
     
    33303612#define FREETYPE_MAJOR  2
    33313613#define FREETYPE_MINOR  3
    3332 #define FREETYPE_PATCH  5
     3614#define FREETYPE_PATCH  7
    33333615
    33343616
     
    33873669  /*                                                                       */
    33883670  /* <Return>                                                              */
    3389   /*    1 if this is a TrueType font that uses one of the patented         */
    3390   /*    opcodes, 0 otherwise.                                              */
     3671  /*    1~if this is a TrueType font that uses one of the patented         */
     3672  /*    opcodes, 0~otherwise.                                              */
    33913673  /*                                                                       */
    33923674  /* <Since>                                                               */
Note: See TracChangeset for help on using the changeset viewer.