Home | History | Annotate | Download | only in type1
      1 /****************************************************************************
      2  *
      3  * t1objs.h
      4  *
      5  *   Type 1 objects manager (specification).
      6  *
      7  * Copyright 1996-2018 by
      8  * 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 #ifndef T1OBJS_H_
     20 #define T1OBJS_H_
     21 
     22 
     23 #include <ft2build.h>
     24 #include FT_INTERNAL_OBJECTS_H
     25 #include FT_CONFIG_CONFIG_H
     26 #include FT_INTERNAL_TYPE1_TYPES_H
     27 
     28 
     29 FT_BEGIN_HEADER
     30 
     31 
     32   /* The following structures must be defined by the hinter */
     33   typedef struct T1_Size_Hints_   T1_Size_Hints;
     34   typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;
     35 
     36 
     37   /**************************************************************************
     38    *
     39    * @Type:
     40    *   T1_Size
     41    *
     42    * @Description:
     43    *   A handle to a Type 1 size object.
     44    */
     45   typedef struct T1_SizeRec_*  T1_Size;
     46 
     47 
     48   /**************************************************************************
     49    *
     50    * @Type:
     51    *   T1_GlyphSlot
     52    *
     53    * @Description:
     54    *   A handle to a Type 1 glyph slot object.
     55    */
     56   typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
     57 
     58 
     59   /**************************************************************************
     60    *
     61    * @Type:
     62    *   T1_CharMap
     63    *
     64    * @Description:
     65    *   A handle to a Type 1 character mapping object.
     66    *
     67    * @Note:
     68    *   The Type 1 format doesn't use a charmap but an encoding table.
     69    *   The driver is responsible for making up charmap objects
     70    *   corresponding to these tables.
     71    */
     72   typedef struct T1_CharMapRec_*   T1_CharMap;
     73 
     74 
     75   /**************************************************************************
     76    *
     77    *                 HERE BEGINS THE TYPE1 SPECIFIC STUFF
     78    *
     79    */
     80 
     81 
     82   /**************************************************************************
     83    *
     84    * @Type:
     85    *   T1_SizeRec
     86    *
     87    * @Description:
     88    *   Type 1 size record.
     89    */
     90   typedef struct  T1_SizeRec_
     91   {
     92     FT_SizeRec  root;
     93 
     94   } T1_SizeRec;
     95 
     96 
     97   FT_LOCAL( void )
     98   T1_Size_Done( FT_Size  size );
     99 
    100   FT_LOCAL( FT_Error )
    101   T1_Size_Request( FT_Size          size,
    102                    FT_Size_Request  req );
    103 
    104   FT_LOCAL( FT_Error )
    105   T1_Size_Init( FT_Size  size );
    106 
    107 
    108   /**************************************************************************
    109    *
    110    * @Type:
    111    *   T1_GlyphSlotRec
    112    *
    113    * @Description:
    114    *   Type 1 glyph slot record.
    115    */
    116   typedef struct  T1_GlyphSlotRec_
    117   {
    118     FT_GlyphSlotRec  root;
    119 
    120     FT_Bool          hint;
    121     FT_Bool          scaled;
    122 
    123     FT_Fixed         x_scale;
    124     FT_Fixed         y_scale;
    125 
    126     FT_Int           max_points;
    127     FT_Int           max_contours;
    128 
    129   } T1_GlyphSlotRec;
    130 
    131 
    132   FT_LOCAL( FT_Error )
    133   T1_Face_Init( FT_Stream      stream,
    134                 FT_Face        face,
    135                 FT_Int         face_index,
    136                 FT_Int         num_params,
    137                 FT_Parameter*  params );
    138 
    139   FT_LOCAL( void )
    140   T1_Face_Done( FT_Face  face );
    141 
    142   FT_LOCAL( FT_Error )
    143   T1_GlyphSlot_Init( FT_GlyphSlot  slot );
    144 
    145   FT_LOCAL( void )
    146   T1_GlyphSlot_Done( FT_GlyphSlot  slot );
    147 
    148   FT_LOCAL( FT_Error )
    149   T1_Driver_Init( FT_Module  driver );
    150 
    151   FT_LOCAL( void )
    152   T1_Driver_Done( FT_Module  driver );
    153 
    154 
    155 FT_END_HEADER
    156 
    157 #endif /* T1OBJS_H_ */
    158 
    159 
    160 /* END */
    161