1 /****************************************************************************
   2  *
   3  * t1cmap.h
   4  *
   5  *   Type 1 character map support (specification).
   6  *
   7  * Copyright (C) 2002-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 T1CMAP_H_
  20 #define T1CMAP_H_
  21 
  22 #include <ft2build.h>
  23 #include FT_INTERNAL_OBJECTS_H
  24 #include FT_INTERNAL_TYPE1_TYPES_H
  25 
  26 FT_BEGIN_HEADER
  27 
  28 
  29   /*************************************************************************/
  30   /*************************************************************************/
  31   /*****                                                               *****/
  32   /*****          TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS           *****/
  33   /*****                                                               *****/
  34   /*************************************************************************/
  35   /*************************************************************************/
  36 
  37   /* standard (and expert) encoding cmaps */
  38   typedef struct T1_CMapStdRec_*  T1_CMapStd;
  39 
  40   typedef struct  T1_CMapStdRec_
  41   {
  42     FT_CMapRec                cmap;
  43 
  44     const FT_UShort*          code_to_sid;
  45     PS_Adobe_Std_StringsFunc  sid_to_string;
  46 
  47     FT_UInt                   num_glyphs;
  48     const char* const*        glyph_names;
  49 
  50   } T1_CMapStdRec;
  51 
  52 
  53   FT_CALLBACK_TABLE const FT_CMap_ClassRec
  54   t1_cmap_standard_class_rec;
  55 
  56   FT_CALLBACK_TABLE const FT_CMap_ClassRec
  57   t1_cmap_expert_class_rec;
  58 
  59 
  60   /*************************************************************************/
  61   /*************************************************************************/
  62   /*****                                                               *****/
  63   /*****                  TYPE1 CUSTOM ENCODING CMAP                   *****/
  64   /*****                                                               *****/
  65   /*************************************************************************/
  66   /*************************************************************************/
  67 
  68   typedef struct T1_CMapCustomRec_*  T1_CMapCustom;
  69 
  70   typedef struct  T1_CMapCustomRec_
  71   {
  72     FT_CMapRec  cmap;
  73     FT_UInt     first;
  74     FT_UInt     count;
  75     FT_UShort*  indices;
  76 
  77   } T1_CMapCustomRec;
  78 
  79 
  80   FT_CALLBACK_TABLE const FT_CMap_ClassRec
  81   t1_cmap_custom_class_rec;
  82 
  83 
  84   /*************************************************************************/
  85   /*************************************************************************/
  86   /*****                                                               *****/
  87   /*****             TYPE1 SYNTHETIC UNICODE ENCODING CMAP             *****/
  88   /*****                                                               *****/
  89   /*************************************************************************/
  90   /*************************************************************************/
  91 
  92   /* unicode (synthetic) cmaps */
  93 
  94   FT_CALLBACK_TABLE const FT_CMap_ClassRec
  95   t1_cmap_unicode_class_rec;
  96 
  97  /* */
  98 
  99 
 100 FT_END_HEADER
 101 
 102 #endif /* T1CMAP_H_ */
 103 
 104 
 105 /* END */