1 /****************************************************************************
   2  *
   3  * cidobjs.h
   4  *
   5  *   CID objects manager (specification).
   6  *
   7  * Copyright (C) 1996-2019 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 */