Home | History | Annotate | Download | only in type1
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  t1objs.h                                                               */
      4 /*                                                                         */
      5 /*    Type 1 objects manager (specification).                              */
      6 /*                                                                         */
      7 /*  Copyright 1996-2015 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_Int           max_points;
    124     FT_Int           max_contours;
    125 
    126     FT_Fixed         x_scale;
    127     FT_Fixed         y_scale;
    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