Home | History | Annotate | Download | only in cid
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  cidobjs.h                                                              */
      4 /*                                                                         */
      5 /*    CID 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 CIDOBJS_H_
     20 #define CIDOBJS_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 CID_Size_Hints_   CID_Size_Hints;
     34   typedef struct CID_Glyph_Hints_  CID_Glyph_Hints;
     35 
     36 
     37   /*************************************************************************/
     38   /*                                                                       */
     39   /* <Type>                                                                */
     40   /*    CID_Driver                                                         */
     41   /*                                                                       */
     42   /* <Description>                                                         */
     43   /*    A handle to a Type 1 driver object.                                */
     44   /*                                                                       */
     45   typedef struct CID_DriverRec_*  CID_Driver;
     46 
     47 
     48   /*************************************************************************/
     49   /*                                                                       */
     50   /* <Type>                                                                */
     51   /*    CID_Size                                                           */
     52   /*                                                                       */
     53   /* <Description>                                                         */
     54   /*    A handle to a Type 1 size object.                                  */
     55   /*                                                                       */
     56   typedef struct CID_SizeRec_*  CID_Size;
     57 
     58 
     59   /*************************************************************************/
     60   /*                                                                       */
     61   /* <Type>                                                                */
     62   /*    CID_GlyphSlot                                                      */
     63   /*                                                                       */
     64   /* <Description>                                                         */
     65   /*    A handle to a Type 1 glyph slot object.                            */
     66   /*                                                                       */
     67   typedef struct CID_GlyphSlotRec_*  CID_GlyphSlot;
     68 
     69 
     70   /*************************************************************************/
     71   /*                                                                       */
     72   /* <Type>                                                                */
     73   /*    CID_CharMap                                                        */
     74   /*                                                                       */
     75   /* <Description>                                                         */
     76   /*    A handle to a Type 1 character mapping object.                     */
     77   /*                                                                       */
     78   /* <Note>                                                                */
     79   /*    The Type 1 format doesn't use a charmap but an encoding table.     */
     80   /*    The driver is responsible for making up charmap objects            */
     81   /*    corresponding to these tables.                                     */
     82   /*                                                                       */
     83   typedef struct CID_CharMapRec_*  CID_CharMap;
     84 
     85 
     86   /*************************************************************************/
     87   /*                                                                       */
     88   /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF                                 */
     89   /*                                                                       */
     90   /*************************************************************************/
     91 
     92 
     93   typedef struct  CID_SizeRec_
     94   {
     95     FT_SizeRec  root;
     96     FT_Bool     valid;
     97 
     98   } CID_SizeRec;
     99 
    100 
    101   typedef struct  CID_GlyphSlotRec_
    102   {
    103     FT_GlyphSlotRec  root;
    104 
    105     FT_Bool          hint;
    106     FT_Bool          scaled;
    107 
    108     FT_Fixed         x_scale;
    109     FT_Fixed         y_scale;
    110 
    111   } CID_GlyphSlotRec;
    112 
    113 
    114   FT_LOCAL( void )
    115   cid_slot_done( FT_GlyphSlot  slot );
    116 
    117   FT_LOCAL( FT_Error )
    118   cid_slot_init( FT_GlyphSlot  slot );
    119 
    120 
    121   FT_LOCAL( void )
    122   cid_size_done( FT_Size  size );       /* CID_Size */
    123 
    124   FT_LOCAL( FT_Error )
    125   cid_size_init( FT_Size  size );       /* CID_Size */
    126 
    127   FT_LOCAL( FT_Error )
    128   cid_size_request( FT_Size          size,      /* CID_Size */
    129                     FT_Size_Request  req );
    130 
    131   FT_LOCAL( FT_Error )
    132   cid_face_init( FT_Stream      stream,
    133                  FT_Face        face,           /* CID_Face */
    134                  FT_Int         face_index,
    135                  FT_Int         num_params,
    136                  FT_Parameter*  params );
    137 
    138   FT_LOCAL( void )
    139   cid_face_done( FT_Face  face );               /* CID_Face */
    140 
    141 
    142   FT_LOCAL( FT_Error )
    143   cid_driver_init( FT_Module  driver );
    144 
    145   FT_LOCAL( void )
    146   cid_driver_done( FT_Module  driver );
    147 
    148 
    149 FT_END_HEADER
    150 
    151 #endif /* CIDOBJS_H_ */
    152 
    153 
    154 /* END */
    155