tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ftmac.h (7771B)


      1 /****************************************************************************
      2 *
      3 * ftmac.h
      4 *
      5 *   Additional Mac-specific API.
      6 *
      7 * Copyright (C) 1996-2025 by
      8 * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.
      9 *
     10 * This file is part of the FreeType project, and may only be used,
     11 * modified, and distributed under the terms of the FreeType project
     12 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
     13 * this file you indicate that you have read the license and
     14 * understand and accept it fully.
     15 *
     16 */
     17 
     18 
     19 /****************************************************************************
     20 *
     21 * NOTE: Include this file after `FT_FREETYPE_H` and after any
     22 *       Mac-specific headers (because this header uses Mac types such as
     23 *       'Handle', 'FSSpec', 'FSRef', etc.)
     24 *
     25 */
     26 
     27 
     28 #ifndef FTMAC_H_
     29 #define FTMAC_H_
     30 
     31 
     32 
     33 
     34 FT_BEGIN_HEADER
     35 
     36 
     37  /* gcc-3.1 and later can warn about functions tagged as deprecated */
     38 #ifndef FT_DEPRECATED_ATTRIBUTE
     39 #if defined( __GNUC__ )                                     && \
     40    ( ( __GNUC__ >= 4 )                                  ||    \
     41      ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) )
     42 #define FT_DEPRECATED_ATTRIBUTE  __attribute__(( deprecated ))
     43 #else
     44 #define FT_DEPRECATED_ATTRIBUTE
     45 #endif
     46 #endif
     47 
     48 
     49  /**************************************************************************
     50   *
     51   * @section:
     52   *   mac_specific
     53   *
     54   * @title:
     55   *   Mac Specific Interface
     56   *
     57   * @abstract:
     58   *   Only available on the Macintosh.
     59   *
     60   * @description:
     61   *   The following definitions are only available if FreeType is compiled
     62   *   on a Macintosh.
     63   *
     64   */
     65 
     66 
     67  /**************************************************************************
     68   *
     69   * @function:
     70   *   FT_New_Face_From_FOND
     71   *
     72   * @description:
     73   *   Create a new face object from a FOND resource.
     74   *
     75   * @inout:
     76   *   library ::
     77   *     A handle to the library resource.
     78   *
     79   * @input:
     80   *   fond ::
     81   *     A FOND resource.
     82   *
     83   *   face_index ::
     84   *     Only supported for the -1 'sanity check' special case.
     85   *
     86   * @output:
     87   *   aface ::
     88   *     A handle to a new face object.
     89   *
     90   * @return:
     91   *   FreeType error code.  0~means success.
     92   *
     93   * @example:
     94   *   This function can be used to create @FT_Face objects from fonts that
     95   *   are installed in the system as follows.
     96   *
     97   *   ```
     98   *     fond  = GetResource( 'FOND', fontName );
     99   *     error = FT_New_Face_From_FOND( library, fond, 0, &face );
    100   *   ```
    101   */
    102  FT_EXPORT( FT_Error )
    103  FT_New_Face_From_FOND( FT_Library  library,
    104                         Handle      fond,
    105                         FT_Long     face_index,
    106                         FT_Face    *aface )
    107                       FT_DEPRECATED_ATTRIBUTE;
    108 
    109 
    110  /**************************************************************************
    111   *
    112   * @function:
    113   *   FT_GetFile_From_Mac_Name
    114   *
    115   * @description:
    116   *   Return an FSSpec for the disk file containing the named font.
    117   *
    118   * @input:
    119   *   fontName ::
    120   *     Mac OS name of the font (e.g., Times New Roman Bold).
    121   *
    122   * @output:
    123   *   pathSpec ::
    124   *     FSSpec to the file.  For passing to @FT_New_Face_From_FSSpec.
    125   *
    126   *   face_index ::
    127   *     Index of the face.  For passing to @FT_New_Face_From_FSSpec.
    128   *
    129   * @return:
    130   *   FreeType error code.  0~means success.
    131   */
    132  FT_EXPORT( FT_Error )
    133  FT_GetFile_From_Mac_Name( const char*  fontName,
    134                            FSSpec*      pathSpec,
    135                            FT_Long*     face_index )
    136                          FT_DEPRECATED_ATTRIBUTE;
    137 
    138 
    139  /**************************************************************************
    140   *
    141   * @function:
    142   *   FT_GetFile_From_Mac_ATS_Name
    143   *
    144   * @description:
    145   *   Return an FSSpec for the disk file containing the named font.
    146   *
    147   * @input:
    148   *   fontName ::
    149   *     Mac OS name of the font in ATS framework.
    150   *
    151   * @output:
    152   *   pathSpec ::
    153   *     FSSpec to the file. For passing to @FT_New_Face_From_FSSpec.
    154   *
    155   *   face_index ::
    156   *     Index of the face. For passing to @FT_New_Face_From_FSSpec.
    157   *
    158   * @return:
    159   *   FreeType error code.  0~means success.
    160   */
    161  FT_EXPORT( FT_Error )
    162  FT_GetFile_From_Mac_ATS_Name( const char*  fontName,
    163                                FSSpec*      pathSpec,
    164                                FT_Long*     face_index )
    165                              FT_DEPRECATED_ATTRIBUTE;
    166 
    167 
    168  /**************************************************************************
    169   *
    170   * @function:
    171   *   FT_GetFilePath_From_Mac_ATS_Name
    172   *
    173   * @description:
    174   *   Return a pathname of the disk file and face index for given font name
    175   *   that is handled by ATS framework.
    176   *
    177   * @input:
    178   *   fontName ::
    179   *     Mac OS name of the font in ATS framework.
    180   *
    181   * @output:
    182   *   path ::
    183   *     Buffer to store pathname of the file.  For passing to @FT_New_Face.
    184   *     The client must allocate this buffer before calling this function.
    185   *
    186   *   maxPathSize ::
    187   *     Lengths of the buffer `path` that client allocated.
    188   *
    189   *   face_index ::
    190   *     Index of the face.  For passing to @FT_New_Face.
    191   *
    192   * @return:
    193   *   FreeType error code.  0~means success.
    194   */
    195  FT_EXPORT( FT_Error )
    196  FT_GetFilePath_From_Mac_ATS_Name( const char*  fontName,
    197                                    UInt8*       path,
    198                                    UInt32       maxPathSize,
    199                                    FT_Long*     face_index )
    200                                  FT_DEPRECATED_ATTRIBUTE;
    201 
    202 
    203  /**************************************************************************
    204   *
    205   * @function:
    206   *   FT_New_Face_From_FSSpec
    207   *
    208   * @description:
    209   *   Create a new face object from a given resource and typeface index
    210   *   using an FSSpec to the font file.
    211   *
    212   * @inout:
    213   *   library ::
    214   *     A handle to the library resource.
    215   *
    216   * @input:
    217   *   spec ::
    218   *     FSSpec to the font file.
    219   *
    220   *   face_index ::
    221   *     The index of the face within the resource.  The first face has
    222   *     index~0.
    223   * @output:
    224   *   aface ::
    225   *     A handle to a new face object.
    226   *
    227   * @return:
    228   *   FreeType error code.  0~means success.
    229   *
    230   * @note:
    231   *   @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it
    232   *   accepts an FSSpec instead of a path.
    233   */
    234  FT_EXPORT( FT_Error )
    235  FT_New_Face_From_FSSpec( FT_Library     library,
    236                           const FSSpec  *spec,
    237                           FT_Long        face_index,
    238                           FT_Face       *aface )
    239                         FT_DEPRECATED_ATTRIBUTE;
    240 
    241 
    242  /**************************************************************************
    243   *
    244   * @function:
    245   *   FT_New_Face_From_FSRef
    246   *
    247   * @description:
    248   *   Create a new face object from a given resource and typeface index
    249   *   using an FSRef to the font file.
    250   *
    251   * @inout:
    252   *   library ::
    253   *     A handle to the library resource.
    254   *
    255   * @input:
    256   *   spec ::
    257   *     FSRef to the font file.
    258   *
    259   *   face_index ::
    260   *     The index of the face within the resource.  The first face has
    261   *     index~0.
    262   * @output:
    263   *   aface ::
    264   *     A handle to a new face object.
    265   *
    266   * @return:
    267   *   FreeType error code.  0~means success.
    268   *
    269   * @note:
    270   *   @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts
    271   *   an FSRef instead of a path.
    272   */
    273  FT_EXPORT( FT_Error )
    274  FT_New_Face_From_FSRef( FT_Library    library,
    275                          const FSRef  *ref,
    276                          FT_Long       face_index,
    277                          FT_Face      *aface )
    278                        FT_DEPRECATED_ATTRIBUTE;
    279 
    280  /* */
    281 
    282 
    283 FT_END_HEADER
    284 
    285 
    286 #endif /* FTMAC_H_ */
    287 
    288 
    289 /* END */